Welcome Guest, Not a member yet? Register   Sign In
pitching codeigniter to your boss or within your organization
#1

[eluser]Nir Gavish[/eluser]
greetings -

i am currently formulating a pitch to "sell" codeigniter to a client. i've got *some* support within the organization, but i am mostly met with refusal to understand even the basic benefits of using codeigniter (or any framework, for that matter).

i have come up with a few points, but i really need the input, as i suspect the project will fail if not executed correctly.

my points:

1. using MVC is important to maintaining order in the application: MVC allows for separation of logic from presentation, allowing DBA, programmer and designer to work in tangent on the same project without interfering with other's work. also, a formal and well documented MVC structure helps new developers join the project with minimal friction.

2. caching is important: a traffic intensive application simply requires caching, codeigniter provides excellent caching mechanisms, and if any functionality is missing from it, it can be developed easily. I also developed a fragment caching library to augment codeigniter's already superb caching mechanism.

3. performance is a big issue: using a framework that outperforms others in various tests is logical. codigniter is such a framework. (http://leftblank.nl/php-framework-benchm...p-481.html) - the problem i'm facing here is that there's an inclination to use baseline (procedural) PHP, which is decidedly faster (in benchmarking tests, that is, no-one understands that once you start developing, procedural can and is dragging performance down, not up)

i'd really appreciate input, tips and even links to help me make this pitch.

thanks all
#2

[eluser]MiklosK[/eluser]
Tell them about the business benefits, they usually don't care about technical advantages.

* CI is free
* CI is supported by a large professional community
* Future-safe development: it's easy to find CI developers if the project needs to be expanded or the developer has to be replaced
* CI can dramatically increase developer productivity (once the basics are understood)

Good luckSmile
#3

[eluser]Nir Gavish[/eluser]
thanks for your reply, my response:
* price is irrelevant, since the client already has a few in-house developers claiming spaghetti-code is also free, there is also a wide spaghetti codebase already running.
* this is a good point, generally speaking, but again, some devs resist it saying they don't care for outside developers looking into their code anyway.
* good point
* is there any study you're aware of that can be quoted?
#4

[eluser]MiklosK[/eluser]
Productivity: not aware of any study, it is just my personal experience. And it is specific to CI only, other frameworks may not have this advantage.

And one more advise: try to convince business decision makers, not tech seniors. In every organization there is a person who is resposible for spending development costs in an efficient way. He/She is your targetSmile Keywords: maintainability, productivity, cost efficiency. They will understand these termsSmile
#5

[eluser]Nir Gavish[/eluser]
yes, i do target the business layer of my client, but the dev layer consists (partially) of individuals who would defend their bad practices to the death. it is very frustrating, but what can i say to someone who "can't see why MVC is in any way 'better' than spaghetti ? if i can't even sell them MVC, how can i even hope to introduce codeigniter ?

anyway, thank you so much.

if ANYONE has any input at all, i'm pretty keen on hearing it.
#6

[eluser]Mareshal[/eluser]
Do you want to know how do I sell CodeIgniter on my projects?

baseline PHP:
1. must create the entire code from scratch
2. there can be several bugs, I am saying I can't fix theme, but human errors can appear
3. Is harder to extend

CodeIgniter:
1. lightning fast development, your app will be ready in X days, not X weeks like with baseline PHP(and from this point my client is ready to let me code in CI)
2. CI is managed by a very experienced team, with several years of experience
3. protection against most common malicious attacks
4. very easy to maintain, extend and debug(if needed)

And I am done Smile
#7

[eluser]n0xie[/eluser]
1. Open Source.
2. Codebase thoroughly tested by an active community: self written code can be buggy.
3. Active development of the codebase by a company which has an economic interest in keeping the code lean,mean and clean. Their own core product expression engine runs on CI.
4. Security through many eyes: 0-day security issues will be spotted quickly. The fact that there hasn't been a security patch in a long long time is contest of the quality of the security. This doesn't mean it's flawless: it means that by default, if you know what you're doing, it's very very hard to find an exploit.
5. Rapid development: write less code. Less code means less chance of bugs, easier to maintain, easier to understand, easier to refactor.
6. MVC (this should really be a no brainer tbh). In all fairness, the MVC design pattern is thrown around while most frameworks use PAC including CI but that's just semantics.
7. Make a lot of task easy with use of basic helpers and libraries. Does not force you to use them (i.e. the procedural coders could just as easily write code the way they're used to).
8. Routes will save your life once someone in management hears this new buzz word called SEO.
9. Re-inventing the wheel is stupid
10. CodeIgniter is fast. Very very fast.

Fact is most arguments can be made for any open source framework be it Cake, Symphony, Zend or CodeIgniter (or any of the other PHP frameworks). Not using any of them is just plain silly if you're a webdeveloper. The reason I choose CodeIgniter is because the Core basically just gives you routes and a database abstraction. That's it. Which is great if you're experienced enough to write your own code. The power of CI is mostly how easy it is to overwrite default behaviour (extend core classes) and how little it gets in the way of you completing a task (hell even models are optional).

This gives you a tremendous amount of freedom, whilst making basic tasks very simple.
#8

[eluser]farinspace[/eluser]
The biggest benefit is maintenance ... I've built large in-house apps from scratch, even though you do your best to create good underlying concepts and architecture, in the end its none standard, will become hard to follow and troubleshoot.

Because our human thought process is always evolving, what we thought was a good concept/convention today, isn't at all good tomorrow.

Upgrading apps is always time consuming, frameworks help in this department also.




Theme © iAndrew 2016 - Forum software by © MyBB