Programming Toolkit

Lessons Learned
 
Books
 
Sites
 
Messages
 
About
 
 
 

 
Saturday, 04 September 2010
Books for the Practicing Programmer

Ken Schwaber, Mike Beedle
Agile Software Development with Scrum
2001 (Prentice Hall); 158 pages
A good description of scrum and how to apply it.

Under the scrum process, the product owner maintains a product backlog, a prioritized list of product requirements maintained. Development by the scrum team is broken into 30 day sprints. During the sprint, the team works off of a sprint backlog of tasks, which is taken from the highest-priority requirements in the product backlog. Each team member presents his/her status/needs at a daily scrum overseen by a scrum master, who is the primary interface between the technical team and business representatives. The sprint backlog may be modified during a sprint to reflect current reality. At the end of the sprint, the product increment is unveiled at a sprint review meeting.

The key to the success of scrum is the constant feedback which it gives to both programmers and the business client, both through incremental development and, on a more frequent scale, the daily scrums. This avoids the the surprises (late delivery, misunderstood business needs, changed requirements) which befall many traditional development products.


Eric Raymond
The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary
1999 (O'Reilly); 268 pages
The book to read on the methodology and culture of open source. The three key chapters in this book are:
  • The Cathedral and the Bazaar - Raymond discusses how open source projects work, using his own work on fetchmail as an example, and includes a number of takeaway lessons about software development in general;
  • Homesteading the Noosphere - an explanation of the sociology of open source projects, including why people participate, what the unspoken rules of open source projects are, and how these two things are related to each other; and,
  • The Magic Cauldron - comparative advantages of open and closed source projects, and reasons for moving to open source.

Beyond distinguishing between open and closed source software, The Cathedral and the Bazaar is a good summary of a software development model which is an alternative to the standard team models used in proprietary development (RUP, XP, etc.). Raymond does not bring this up, but it seems that we are not applying the lessons of open source development to improve our non-open source projects.

Raymond is a good writer, and the book is fun to read. My one criticism is that, because it was assembled from a series of essays, there is some duplication between chapters.


Robert Newbold
Project Management in the Fast Lane: Applying the Theory of Constraints
1998 (CRC Press); 320 pages
A good book on theory-of-constraints project management. While not as readable as Goldratt's "Critical Chain", it contains more of the information needed for actual implementation. This includes good explanations of project, feeding, and resource buffers, and of the critical chain concept itself (as distinct from the critical path in standard project management). Newbold also ties critical chain project management into theory-of-constraints production scheduling.