Arrogance is Limiting Framework Adoption
“…Frameworks! I don’t need no stickin’ PHP Frameworks!!!” – anonymous twitterer
The arrogance embodied in the sentiment form the above tweet is amusing. It conjures up memories of young programmers thinking they can own the world. Some of them can, no doubt. However, if your goal is to build systems for customers or your company, you will need a framework. The truth of the matter is, to build modern systems, you do need a framework. What I really think what the tweeter was trying to say is:
“…Frameworks, I don’t understand no stinkin frameworks.”
Modern-day PHP frameworks are huge beasts. The top-tier frameworks have procedures in place to make sure that not only every line of code is vetted but every idea entering the framework passes a rigorous inspection. Once the concept has been approved, though, the code is designed and coded by a single developer or a very small team. What sets these developers apart is that they are “subject matter experts.” They understand their piece of the puzzle intimately. They have thought it through, hashed it out and defended their design publically in order to get their solution
accepted by the community at large.
It is because of these small teams of one or more that modern frameworks can be complex while still being useful. If one developer attempts to write a framework by him/her self, the result is not as good because one developer cannot be an expert in all the problem spaces that have to be solved. Quite simply put, “all of us are smarter than one of us.” Or, as James Surowiecki, author of The Wisdom of Crowds put it:
“The wisdom of crowds comes not from the consensus decision of the group, but from the aggregation of the ideas/thoughts/decisions of each individual in the group.”
More important than the size of the framework though is the fact that they are designed to solve complex problems. If you are trying to build your own blog, give up and install WordPress, save your energy for problems that can’t easily be solved.
If you do your homework and find a framework you can trust, then you don’t have to solve problems that others have already solved: you have the building blocks for complex systems at your fingertips.
The problem is, like the tweet above points out, that many developers are arrogant. They don’t believe in the Wisdom of the crowds or the Wisdom of the community, they believe in their own code.
By adopting one of the top-tier PHP frameworks and spending the time to climb the learning curve, you can spend more time doing what you do best, solving problems for clients. You can write the 20% of the code that makes your client’s applications special instead of the 80% that is common across all applications. It’s rare that a client will pay you to build a better mail client; they want just want you to help them communicate better with their customers.
Frameworks have come a long way and, if you have not mastered one yet, you may find yourself lagging behind your peers. In any job market, that’s not a good thing—but, in a difficult market, that can make the difference between employment and unemployment.
Pick a framework that has a thriving community and then spend the time to learn it. Quit re-inventing the wheel, start using the wheel to solve your client’s problems. Get out there and build them a car.