This site will look much better in a browser that supports web standards, but is accessible to any browser or Internet device.
Practical Development Environments
Matthew B. Doar
O'Reilly, 2005
Although this is a very good book, it was not exactly what I thought it would be. From the title and the blurb on the back of the book, I thought it would describe some complete development environments that would be worth implementing. Instead, Doar does a very good survey of various tools used in a development environment and issues to consider when building your own environment.
The book lists the major pieces of a software development environment, and how they work together. There is also a good overview of important concepts like automation, labeling of builds, naming, and authentication. All of these issues are important to consider independent of the particular environment that where you work. He also discusses some of the preconstructed environments like SourceForge and CollabNet.
The majority of the book consists of individual chapters that survey different classes of development tools. For example, the Software Configuration Management chapter describes the major features that an SCM or version control tool should support. The chapter goes on to list some of the major tools in this category and surveys their strengths and weaknesses. This pattern is repeated for Build Tools, Test Tools, Bug Tracking Tools, and Documentation Tools. This portion of the book gives you some of the information you might need to evaluate your current tool set against other possibilities. You might also use this to choose tools for areas that you are not currently handling as well as you would like.
The book then covers some of the higher level issues like approaches to handling releases, maintaining the development environment, and the people and politics issues that always seem to make difficult work even harder.
All in all, the book covers a significant amount of important information, and organizes it in a useful fashion. The survey of different tools and techniques would be important for anyone implementing a development environment. The book is worth reading for this information alone.
On the other hand, there seemed to be something very important missing in my view. There was little information about relating the pieces together. I think the book would have been greatly enhanced by at least one example of an environment built from some of the surveyed tools. This would have given more information about the tradeoffs made when the environment was set up. Some explanation of how to handle the mismatch between different tool and the glue needed to bridge these gaps would have really helped me understand the costs and benefits of particular approaches.
Although I recommend the book, I was disappointed in the lack of a coherent overall example or case study. That lack might have moved this book from a good reference to a great book.
Posted by GWade at October 23, 2006 05:40 PM. Email comments