||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Agile techniques, software processes, project management
Title: Ship It! A Practical Guide To Successful Software Projects
Authors: Jared Richardson and William Gwaltney Jr
Publisher: Pragmatic Bookshelf
Ship It! is part manual of best practices, part software methodologies book and part a distillation of ideas and experiences of good and bad projects that the authors have been involved in. It might sound like an odd combination, but it works well enough and the book provides both workable techniques and a process that puts them into use.
In terms of techniques, the emphasis is on those core development techniques that are generally included in most agile software methodologies: automating builds (using Ant and other tools), automated testing (using JUnit and similar), using version control (CVS), automated or continuous integration and so on. The authors provide sound arguments as to the advantages of these techniques and also provide quick introductions to how to install and use the associated tools. This is similar territory to Peter Schuh's Integrating Agile Development In The Real World, and both books are worth reading to get a grounding in these key tools and techniques.
However there's more to the book than a set of fast introductions to useful development techniques. The authors also present an agile methodology they term 'Tracer Bullet Development' (TBD), which provides an overall development structure in which to build software using the techniques championed in the earlier sections of the book. While it would be a bit grand to call TBD a fully fledged development progress, it's a useful framework very much in the agile style of things. As you would expect, it's very much a pragmatic process rather than a religious one.
Finally, the book also includes a set of common problems with suggestions on how best to tackle them. These problems are at the project level - you've got a rogue developer, team doesn't work well together etc - and the solutions are as much about people sense as they are about software per se.
As with the other titles that we've seen from the pragmatic team (such as Data Crunching and Programming Ruby), this book scores highly in terms of readability and the practical focus. The writing is friendly, the tone engaging and the anecdotes are there to illustrate a point rather than to establish credentials. As mentioned previously there is a degree of overlap between this book and Peter Schuh's. Both cover core techniques common to a range of agile development, but the focus is subtly different. Schuh is interested in explicitly surveying a range of agile processes, while in this book there is less focus on methodologies and more on adding to your armoury of tools. Both books are highly recommended, so take a look at both.