What Open Source Means for Professional Developers
Jul 5th, 2005 by phil
Many professional software developers are concerned that the rise of open source will take away their ability to get paid for writing software. It is easy to see why they are worried: open source software is “free” and developers do not usually get paid for software that is given away. The situation really isn’t that simple, and in the long term most developers stand to gain far more from open source than they will lose.
First, it is important to understand what types of software are successful as open source projects. Independant developers work on open source projects that interest them or scratch a particular itch that they have. There are a lot of project websites these days that say something to the effect of: “I don’t need this software anymore so I am no longer working on it.” These developers are motivated by personal needs other than money to produce the software and they do so only as long as it meets their needs.
Companies produce open source when they believe the software will either bring in money indirectly or reduce their own development costs by leveraging a community of volunteer developers. Linux distributors like RedHat and Novell are a good example of this. They take a large amount of open source software produced by volunteers and add a little of their own software to smooth out the rough edges. They then package all of this together and either sell it for a relatively low price or give it away and sell value-added services like support. Usually these companies make their money selling the value-added services and not from selling the core software product.
IBM and the Eclipse project is another good example. When IBM needed to develop a new Java IDE they built the base product, released it as open source and then invested in building a community. Eclipse has been a huge success and almost everyone in the industry (with the notable exceptions of Sun and Microsoft) have joined. In fact, Eclipse is no longer directly controlled by IBM but by the independant Eclipse Foundation. Eclipse’s success notwithstanding, how does this benefit IBM? For one thing, IBM has built a line of commercial development tools based on Eclipse. Companies are willing to buy the commercial product to get the extra tools that IBM has added that do not exist in the base Eclipse product. There are also intangible benefits. The Eclipse product has helped to establish IBM as a leader in the Java community. Also, being based on the Eclipse platform is becoming a selling point due to the vast amount of publicity surrounding Eclipse.
BEA recently announced that they would be support open source frameworks on top of their WebLogic application server. They are also making an effort to ease migration from the Tomcat and Geronimo open source application servers onto WebLogic to encourage developers to develop on an open source platform and then deploy to WebLogic. This makes sense for BEA since the open source frameworks provide features that WebLogic does not currently have and that BEA’s customers want. This is a successful melding of open source and proprietary software that benefits everyone involved.
All of this means that the types of products that companies will support as open source are middleware and commodity products that have potential for added value. Operating systems, development tools and application servers all make sense as open source. However, these are not the types of software that most developers get paid to work on. Most developers are paid to work on software that directly solve business problems. Middleware and development tools don’t provide direct solutions to business problems, but provide indirect support by providing the developers with the tools they need. In short, most developers don’t have anything to fear from open source because they are not working on the types of projects that succeed as open source.
Companies that develop software to solve their business problems have other reasons for not releasing everything they do as open source. They may not be selling it directly, but the software they develop in house represents a competitive advantage for most companies. Software that is used only within the organization usually has proprietary business rules encoded in it and is therefore a very poor candidate for open source. Moreover, business applications usually cannot attract a strong developer community, which is required for an open source project to be successful. Individual develpers are not attracted to these projects because they do not scratch an itch that the developer cares about. Companies will not or can not support these projects because there is no way to earn money through adding value.
Not only to professional developers not have to worry about losing their jobs to open source, they have much to be excited about. Projects like Eclipse and JBoss are allowing companies to develop their business critical software for less money. This means that smaller companies can develop software that would have been cost prohibitive before. Larger companies can take on more projects since they are spending less on tools and infrastructure. Either way, this equates to more developers being hired to take advantage of the open source tools that are available.
Open source represents a paradigm shift in the software development industry. It has been happening for quite some time, but has just recently begun having a broad impact. As with any paradigm shift those who were comfortable with the previous order are made uncomfortable by the change. Ultimately the change is inevitable and those that adapt and take advantage of the new paradigm come out on top. Developers should stop worrying and start thinking about how they can take advantage of open source.





On a related note: Is there really a market for ongoing open source support contracts?