May 22, 2007

Apache, Open Source, and the Small Software Company

[This was first published on 05/30/2005. I'm putting all of the articles I've published on here so that I'll have one place I can look for all of them.]

The Apache Software Foundation is one of many open source software organizations shaking the business world all the way down to its proprietary software toes. Along with Linux, the Apache HTTP Server has long been the consummate example of the power and quality of open source software. Its runaway success against Microsoft IIS illustrates that the better product can triumph over both monopoly and marketing dollars.

Today, most small software development companies are acutely aware of the advantages of collaborating on open source software; at the very least, they're aware of the high costs of writing and maintaining closed-source software. With so little to be gained by writing and maintaining commodity software components (e.g., a Web server, a relational database, or an operating system), many companies are finding it cheaper to use and contribute bugfixes to an existing open source product than to start from scratch.

While the Apache Software Foundation (ASF) started as a group of Webmasters who just wanted a decent Web server to help them do their job, it has since become home to dozens of successful software projects with thousands of contributors and millions of lines of code. In fact, the ASF currently has the largest collection of active open source Java projects owned by a single organization.

The ASF accepts only individuals - not companies - as members and committers; however, many companies pay developers to work on ASF projects part- or full-time. This isn't because these companies are inherently altruistic, but because they've realized that it's cheaper to pay one or two developers to maintain and fix bugs on an open source project than to pay a team to maintain a closed-source equivalent in-house.

Large and small companies alike ignore open source software at their own peril. Years ago, "Not Invented Here" described a corporate state of mind that dutifully avoided using any solution not developed "in-house" - you had to either build it or buy it. Today, using "Not Invented Here" software is practically a requirement. Who wants to reinvent a Web server? Or an XML parser? Or a servlet container? But with open source, there's another choice in addition to "build it or buy it": get it for free.

Amidst all of this upheaval, the role of the developer has changed as well. Gone are the days when a development team can lock themselves in a closed room and knock out an application written from scratch over the course of a year. Companies need developers who are more archaeologist and assembler than fabricator. The smart, small company needs people with the ability to wade through the thousands of open source projects, find the gem with a stable codebase and an active community, and build on it.

The ASF understands that the long-term viability of an open source project is directly tied to the community that develops and maintains it. As a result, ASF projects are organized around communities and not only codebases. Sourceforge.net is a great example of why it's not all about the code - a bit of research reveals that close to 80% of the projects that reside there lie dormant. It's a testament to the number of open source software projects that go by the wayside every year. Many projects that exist are attempting to solve the same problem in a slightly different way, and software is subject to the process of natural selection. The strongest projects survive, the weaker ones combine or die out, and you're left with a better piece of software in the end.

Even though open source software has its idiosyncrasies, small development shops are gaining more power from it than ever. By building applications out of premade components, a modicum of glue code, and as little of their own code as possible, software companies are saving money and bringing products to market faster than ever. Developers spend less time reinventing wheels and more time concentrating on solving business needs. Leveraging open source saves licensing money at the outset, but the true win comes further down the road from the savings on maintainability.

As the ASF grows, it continues to work to ensure the long-term viability of its projects. And open source software continues to change the way that companies think about software solutions as well as the way they build their software. Leveraging open source drives the cost of development down, shortens the time-to market, and improves the quality of the software built on it. Gone are the days of having to choose between good, fast, and cheap - with open source software, companies can have all three.

No comments: