We all know about open source software. The seemingly endless libraries of code and applications ready to use and implement into a business environment. Now colleague Myles Eftos has been discussing the use of open source applications and there implementations of late. This debate is an old as the hills, but still from time to time it’s good to pull it out of the draw, dust it off and start the discussion off again.
Originating, in a previous life, from a development background I can understand where Myles is coming from and his passion for not having to club together and open source modified solution. However consider:
- Yes, sometimes the client requirements are simple and the open source solution provided well over the stated feature set the client requires.
- Finding a reliable developer that has the experience and is not going to charge you $15,000 for two weeks work is an issue. Hence a lot of the time it falls back on using open source solutions to meet at least some of the clients requirements.
- Often it can come down to delivery under a defined budget, here the use of open source software, even if it isn’t the best code of the planet can help get the project out the door and the client happy. A happy client is very important.
- Support is an issue, true. But I have yet to encounter a developer that would standby their code and isn’t doing that many jobs on the side while holding down a full time salaried job. Hence you are going to get bad support and documentation unless you are paid for it.
- Skinning – okay this can be problem, but if you select an open source application that is the base shell with no or very little of the base presentation layer styled then your job is a lot easier.
- It’s often been said that the sign of a good developer is the ability to understand other developers code. The sign of brilliant one is the ability to modify and adapt to the other developers code without forcing a rewrite of all the code in a module. I’m not saying that all open source developers are like this, they are the full range from good to well unemployable.
- I will admit that I do use developmental solutions that allow me to easily build CMS and extended applications via various frameworks and the like. So in a way this is custom development. I’ll confess I enjoy this element of creativity over open source implementation. But I’ll still generally leverage the use of an open source solution when the business requirements call on it. In the most part it comes down to budget (again).
- Why not just build from scratch. Well 5 years ago I would have, no problem, but the industry has changed. There just is not the time. So for all code development requirement you need to take as many short cuts as it can. Again i’s resources, however it’s time to delivery now.
- Just for the record I’m not talking about applications like osCommerce, Joomla etc.. I have used and implemented them – once, never again, life is too short for horror stories :).
So what do you think should we develop applications from scratch using the latest frameworks and libraries or just modify a few open source applications?