-
Brian Jamison
Founder, CEO
One of the major reasons I believe in open source is efficiency. Leveraging open source software should allow you to spend your time and money on customization or innovative new features.
For example, it doesn't make sense to build a content management system from scratch when you can leverage the efforts of hundreds of thousands of programmer hours for free. And yet, developers do this all the time.
Open source developers aren't exempt. And simply using open source tools doesn't automatically guarantee the wheel isn't wastefully being re-invented. You have to leverage an open source project to do that.
What's the difference between tools and projects?
Tools are just what they sound like; they allow you to build, but they're not the end product. PHP and Ruby on Rails are tools. Projects are finished work and in many cases need nothing more than installation to be useful. Drupal and Wordpress are examples of open source projects.
Developers often say, "Don't worry, I'm using open source tools on this project!" and happily waste hundreds of hours duplicating work that is freely available.
Why would a developer re-invent the wheel? I don't have a good answer for that, but I can speculate. They're probably not trying to make a project cost more. They may underestimate the difficulty, or the complexity involved. They might not be looking out for your best interests; who will manage the site after they move on, or how will you be able to inexpensively add new features down the road. They may be unwilling to invest the the hundreds of hours mastering an open source project. Or they may believe they can do it better; they have a grand vision for turning your contract work into a new open source project. No problem -- unless you, the client, have to pay for it.
I have three recent examples. The names have been changed to protect the re-inventors, but I've encountered each within the last two months.
Case #1
We were recently asked to evaluate a content management system written from scratch using the open source Ruby on Rails tools. And while the site looks beautiful, they wasted time and money re-inventing the wheel. Instead of spending months building the site from scratch, they could have installed Drupal in minutes and invested in useful new features, even better design, or just saved the money.
Case #2
A company spent tens of thousands of dollars customizing Drupal to great benefit. They attributed much of the success of their product to the marketing and social functions their site gave them -- features other competitors lack. Unfortunately they recently hired a junior programmer. The junior programmer threw the old site away and spent months building a new website from scratch using open source tools, but not re-using any of the prior work. And while the new site looks great, the old site could have been themed to look exactly the same as the new site in about two days, retaining the sophistication already developed. As it stands, who will maintain this site once the junior programmer moves on? Are there unknown but serious security holes in the new system?
Case #3
This week I met a web developer who built a new content management system for a client from scratch using PHP. He wondered whether or not it would be a good business opportunity to sell it to other companies. I had to tell him that there is simply no way that a new content management system written by two guys will be able to compete in the overcrowded content management space. Their fresh new system lacks the thousands of free enhancements available, the sophisticated permissions, workflows, solid security and design flexibility that Drupal offers. And it will never be able to catch up, because hundreds of people are working every day to make Drupal better.
In each of these cases, tens of thousands of dollars could have been saved or put to better use. Please don't re-invent the wheel. Hold your developers accountable to their design decisions. Ask them how they intend to leverage existing open source projects to save you money.
In future blog posts I'll talk about productizing applications in a niche market, but beware the developer that talks about turning your consulting job into a mainstream product like a content management system.
Add your comment