Open Source and Offshore Development
In combining Open Source software and offshore development, high quality, cost effective software is more easily obtainable. In fact, I suggest Open Source should always be a part of any outsourced software development, but that is a different topic. The focus of this article is how Open Source provides a foundation of trust and confidence when using and/or providing offshore software development services.
When purchasing software development services, many people make the mistake of assuming that the only reason to choose one person/company over another are pure coding skills. Simple as that right? Wrong. Developers also assume the person/company procuring software development cares deeply about Java vs. .Net vs. PHP vs. RoR. Wrong. Well, ok, maybe both of these points are not entirely wrong. Yes, people do care about coding prowess and technology infrastructure, but I believe there are many other factors when making an outsourcing decision.
People who purchase software want to have confidence and trust in the people they choose to develop software. Confidence and trust can be earned over time, but how does it start? Well, of course, the software developer(s) needs to have good references, case studies, professionalism and applicable skill sets. But, even after reviewing these factors, there might still be nagging doubts about trusting someone you have never met and the person or company was not a referral from one of your contacts.
Open source software is the foundation for confidence and trust when choosing to outsource software development. It is the catalyst to an acceptable answer to the “what is the worst that can happen” scenario. In other words, even if you make the wrong choice in outsource software development partner, your code, your infrastructure will still be based on Open Source which can be parlayed to different developers much faster than completely original code. In the worst case scenario, if the software being developed is not Open Source based, it will be much more difficult to replace the developers.
“Open Source” can mean different things to different people. In this article, my definition of Open Source is intended to mean complete products, tools, libraries, etc. with a vibrant community. (Read Succeeding with Open Source for one reference on choosing Open Source software) It does not simply mean the delivery of source code with the solution. In particular, the Open Source product, tool and or library needs to have other established resources, so new developers time spent analyzing code and infrastructure can be reduced. New developers to the project will spend much more time “getting up to speed” on architecture, if the software is not using community based Open Source software.
When implementing an outsource development strategy, choose developers that will use Open Source software in the overall solution. Using Open Source in the solution provides a shorter path to confidence and trust in outsourced software developers. Put another way, open source plays a positive part in the risk management of the decision to outsource. By choosing offshore software development partners that deliver based on community established Open Source with appropriate license for your needs, quality and the most competitive cost can be obtained.