Last weekend I finished reading Karl Fogel’s Producing Open Source Software: How to Run a Successful Free Software Project, which took me about a week to read on the subway to and from work. First off let me say that this is a great book and I recommend it to anybody who works on, with, or uses Open Source Software extensively. Karl Fogel knows what he’s talking about in this field, as he was an active developer of CVS in 1994-1995 and later on started the Subversion project for CollabNet, where he still works.
The book talks little about the actual practice of programming for an Open Source project, instead focusing on producing as the title suggests. In Fogel’s mind producing means much more than just the task of programming. It includes the political and social aspects that inevitably surround every open source project, as well as management skills essential for leading such a project. One of the greatest strengths of the book is that it takes many accepted unspoken practices and beliefs that can be observed in the open source community and brings them into the open in a very straightforward way. This is very useful since even people who’ve worked with open source for some time often don’t have a full understanding of the ecosystem. Although the factual content of the book is useful to those who don’t know much about open source, I feel like the major attraction here is the consolidation of Fogel’s experience into a clear and concise narrative. This gives the reader a much more interesting and analytical perspective on the world of open source than she would have from a mere familiarization with the facts.
The book starts off by talking about the history of the Free/Open Source movement, mentioning all the major events and players. This is a good introduction for someone who is new to the scene, and might also fill in some gaps for those who don’t have the full story, but those who are fairly well versed in the historical aspect may want to skip this section. The book goes on to talk about the beginnings of an open source project from inception to the opening up of the codebase. Fogel mentions various details that would help start a project off on the right foot. Unfortunately most of the interactions people have are with existing projects, so this is somewhat of a niche need. The third chapter talks about the technical infrastructure needed to run a project, I feel that this chapter goes into too much details of running and maintaining various software components such as mailing list, something that would have fit better in an appendix. You might want to skim over this one if you’re not starting a project next weekend. The fourth chapter talks about political and social structure, touching on various forms of governance and decision making. This is a very important chapter and gives a much needed perspective on the various options a project has, some of which might not be as obvious as they seem. Chapter 5, Money, is targeted towards a manager of an open source project, or a team that must work on an open source project, but is useful to everybody. This chapter opens up one of the areas that are sometimes considered taboo by some open source hackers, what to do about money (or lack thereof). Fogel takes a very practical perspective, stipulating that businesses often gain from open source projects, and thus often invest in them. There is nothing wrong with investing in a project by either hiring outside help, providing money to some of the existing contributors, or helping to fund infrastructure needs. Fogel explains some of the tradeoffs and touches on the importance of always making sure to approach the matter in the appropriate political way. Chapter 6, Communication, is something that should be a must-read for anyone who participates in a mailing list. Some points are pretty obvious, but some of the techniques of handling difficult situations can only be learned from experience and can be difficult to hone down. Chapter 7 talks about releasing packaging and developing software and is a useful read for understanding how open source projects go about doing this as much as for learning how to do it yourself. It’s a useful introduction to some of the more common practices of doing things, why reinvent the wheel if you don’t need to? The next 2 chapters deal with managing volunteers and choosing the right license. They are both very useful to anybody who is starting an open source project or is in a position to take on the lead or management of a project. They are not as useful to the user of open source software. The end of the book also contains a useful list of software for various purposes such as bug tracking and version control.
The book is very readable over all, and can probably be read over a few days. The author does a good job of splitting up the topics, even thought this is not always an easy job, allowing the reader to skip over sections without losing herself. Fogel also does a good job of referencing the abundant online material surrounding his topics of choice, especially when it comes to sending the reader to search for a more detailed factual account.
The one piece I felt was missing from the book was a comparison of some of the major organizations that engage in producing Open Source software and their practices. I would have liked to see a chapter or appendix comparing Apache, GNU, Eclipse, CollabNet, and perhaps some others in some of the aspects that the book covers, such as organization of power, decision making, commit access and other privileges. This would have been useful for anybody who has some experience, but does not have enough experience to be able to make these distinctions off hand. A reference to existing works making such a comparison would also be useful.
Despite these minor nitpicks, this is a great book. True to the open source spirit, the book is also available online at http://www.producingoss.com. But supporting the author by buying the book is very worthwhile for such a great book.
Author: Karl Fogel
Title: Producing Open Source Software: How to Run a A Successful Free Software Project
Publisher: O’Reilly, 2006