Why Open Source?

It is hard to miss the growing prominence of open source development in software engineering. Open source development tools offer compelling advantages over traditional tools—especially for XP development. The advantages fall into two categories. First, open source tools are practical. Second, the open source philosophy is closely aligned with XP. Open source tool offer several practical advantages:

The price is right. Open source software can almost always be obtained for free; all the tools we cover in this tutorial can be downloaded at no cost from the Internet. Free software means no immediate overhead for yourself or your company, which is always a benefit, but in this case not the major one. The major benefit in the case of these tools is that their adoption will not be hampered by corporate red tape or management worried about buying into the latest fad. Once you have downloaded JUnit, for example, and you’ve fallen in love with it and spread it to your team—speeding development and improving quality—no one will want to throw roadblocks in your way. Starting the adoption of XP by asking for $7,500 worth of whiz-bang deployment tools might invite skepticism.

The tools are high quality. Programmers use open source development tools every day. Because improving the tool means improving their immediate situation, open source development tools often receive many contributions and bug fixes. Improvement and features come fast and furious.

The tools are the standard. Especially in the case of JUnit and Ant, the tools covered in this tutorial are the standards in their field. Countless open source projects use Ant, and JUnit (upon which several of the tools are based) was written by Kent Beck (the godfather of XP) and Erich Gamma (co-author of the OO classic Design Patterns: Elements of Reusable Object-Oriented Software).

Synergy Between XP and Open Source

Extreme Programming and open source development are closely aligned ideologically. Both foster an open, giving style of collaborative development—they share a certain vibe, if you will. Both philosophies acknowledge human weakness—no code is perfect, and the assistance of others in finding and fixing problems is gratefully acknowledged. All open source code is commonly owned (as XP would have it). Many open source projects use and benefit from automated testing, which is especially important when code from a wide variety of sources must be integrated. Both systems demand small, incremental releases. Of course, both philosophies also focus heavily on the code—open source is founded on the premise that reading code is enjoyable, educational, and helpful. The list could continue for quite a while. By using open source tools (and by giving back to the open source community in the form of feedback, assistance, and code) you practice some of the values and processes that make XP great.

Java Start Sidebar
Read the Source

If you are looking for more information than this tutorial provides on any of the tools, the best place to start is the source code. In addition to containing the Javadoc (another handy reference), the source code is the definitive authority on the tool’s behavior. Open-source software exists because (in addition to liking free stuff) programmers value the ability to dig into the work of fellow coders. By reading the source carefully, you can gain insight into how the program works, insight into the domain, and, if you are lucky, insight into the arcane art of coding itself. If you are unlucky enough to encounter a bug while using the tool, having the source handy can help you determine where the bug lies.

Java End Sidebar