There was a class I took in college called “Software Development”. In it I worked with a group of four other students on a project we eventually wrote in PHP. One of the students was an especially good programmer, and I once asked him about his background and what he was doing with his skills. He was working on a PHP framework of his own, and had been for several years. Since then I have come across hundreds of programmers building frameworks, CRMs, CMSes, etc. Over the years, I have begun to realize that the programming community as a whole seems to waste vast amounts of time building the holy grail of “hammers”. That is exactly what most of these tools are, just fancy hammers with which you can build a business. The problem is that there are many people who can make a similiar hammer, or make a better hammer, and your hammer is not necessarily built for every need. If you go to http://opensourcecms.com/ you will find out a sample of the vast number of image galleries, blog tools, wikis, forums there are available. And there are probably over 10 times more that never got recognized or died mid-flight.
You need to recognize what it is you are building. Before programming anything, find out what business need you are fulfilling. Don’t get attached to the technology, because 99.9999999% of the time (random number of nines) there is someone who has more resources, skill, and time than you do and could produce a far superior tool if they put their mind to it. There are too many swiss-army knife web apps out there, and not enough that simply fill single business needs. It is amazing how few free PHP scripts there are out there that simply do file management. Instead, you have 10,000 which attempt to do everything including preparing your food. I love the way Firefox has done it, there is the core browser, and it is extensible to whatever I want. I build my core websites, and like to plugin an email manager, and poll system. I don’t want someone who puts everything into one piece and then makes you hack it until you are satisfied.
What we need in the programming community, is more people to make extensions, and fewer people to make the cores. So many businesses have different needs and processes, that one core can rarely fit the needs of everyone. That is why web APIs are so popular. They work regardless of the technology used by the site and can be fit into any system. Now I am going slightly off subject, but it begs mentioning.
Bottom line, is that technology is simply the vehicle for your business. You could spend 3 years building your own perfect framework, cms, image manager and other pieces and go broke, or get bought out by a company that doesn’t even use your language and all your work is gone. Better in my opinion, is that you could build things that simply fill the needs of your business by combining existing tools as well as your own customized code….and nothing more! The marketing, sales, and the actual way businesses use technology is their greatest asset. The actual technology behind the business might be average and/or similiar to those used by hundreds of others ie (YouTube, Ebay, Amazon), but these businesses thrive and grow.
Well said.
Jimmy Zimmerman
June 27th, 2006
I think Richard MacManus would agree. He notes the growth in “widgets” — components that you can plug into your website:
http://www.readwriteweb.com/archives/widgets_are_the.php
Richard K Miller
June 28th, 2006