Using Open Source in Your Proprietary ProductI am definitely no Linus Torvalds, Bruce Perens, Bill Gates, or Don Box, but I have been working in the trenches developing software long enough to know something good when I see it. Here is what I am looking for when I look for a free or Open Source product:Source code I perceive to be well written that I can use without restriction in whatever project I am working on to save time by not having to implement the functionality myself while standardizing on something others can quickly pick up. This means that I want to be able to use the source without having to jump through many hoops or necessarily disclose any enhancements that may compromise the competitiveness of my product. I can use this software for other Open Source projects in a proprietary product or for academic use. Everyone perceives well-written code differently. It is humorous that most developers look at someone else's code and say, "That is horrible! What was he thinking?" We have all also experienced looking back at code we thought was good at the time, realizing that now we write much better code. This is why I say that you must perceive the code to be well written and useful to your project both in additional functionality and time saved.Carefully read the license agreements and make sure the requirements meet your product's needs. If possible, it is only proper to release any fixes and enhancements back to the community. I am all for giving back to the community, and that can make for some rapid development. In fact, some of the projects I cover in this book have changed so quickly in the last few months that I am going to have to rework some of the chapters I already had completed! I am amazed at the dedication of some of these developers. However, in some cases you may develop a proprietary product based on an Open Source product or a proprietary feature for an Open Source product. For example, Covalent Technologies (http://www.covalent.com) has created a proprietary ISAPI extension for the Apache Web server that supports ASP.NET. This is wonderful if you are already using Apache and desire to use ASP.NET, but this is an important product for their company and would devastate them if they had to release the source. This is just one example of successfully using an Open Source product to develop a proprietary product. However, it is important to point out that this is all based on the Apache license. Be careful in examining licensing before using an Open Source product. Here are some things to watch out for:
There is nothing wrong with these requirements if you are aware of them up front and plan for them, but these are typical things in Open Source licenses that you may not want in your end user's product. |