The first thing you have to realise when reading this book is that the definition of a “development environment” is perhaps not what you’d think. My first instinct was to think of an IDE, such as Visual Studio or Eclipse; in fact, the book’s approach is to treat a development environment as the collection of tools that you use to develop software – bug tracking, version control, documentation systems and so on. With this in mind, then, on we go through the chapters.

Chapter one is a simple introduction to what the book’s aiming to tell us, so it talks very briefly about concepts such as open and closed source. Chapter two describes the development process and outlines which bits the book is (and isn’t – marketing, for instance) concerned with. Chapter three continues into the concepts of projects, including preconstructed development environments (such as SourceForge) and a discussion of some basics such as naming projects and considering internationalisation.

Chapter four is the first of any real size, and it’s entitled Software Configuration Management. As with many concepts in computing, this is just one name for the concept – you might know it as source code management; I call it version control. As with many other chapters, the text starts with a description of what the concept is and why you need it, and goes on to talk about some specific tools for doing it (in this case CVS, SourceSafe and the like). Next is chapter five, “Building Software” – how source code components can be interdependent, how to structure your world to minimise unnecessary recompilation, and (of course) some tools that you can use to manage the building process. Chapter six discusses software testing – how to automate it where possible, the types of test tools you can use, and so on, while chapter 7 deals with making sense of the results of testing: bug tracking and dealing with the workflow of fixing problems.

Chapter eight is about documentation – tools you can use, pitfalls to avoid, and file formats. Chapter nine goes on to discuss how you actually release the products once you’ve built, debugged and documented them, so it’s here that you see stuff about making installers, formal numbering schemes, and a discussion about how to implement licences and the restrictions they bring to different versions of the product. Next in line is a chapter on maintenance – being able to reproduce old versions if needed, how to deal with product and/or company name changes, and the like. The last two chapters handle stuff that’s less related to development and more to the organisation – namely project communication (chapter 11 – which mainly covers building a project website) and the office-politics issues of development projects (chapter 12). The book wraps up with an appendix covering the scalability of tools and a bunch of pointers to relevant online and printed resources, finishing of course with the obligatory index.

Frankly, I really can’t recommend this book to anyone. I never thought I’d say that about an O’Reilly book, but it’s true. Fair enough, some of the concepts it covers are worthwhile, and it talks about some useful tools, but the coverage is just too surface-skimming for my liking. Take the seven pages or so on the CVS SCM system, for instance – yes, the history is interesting and there are some useful bullet points, but at no point does it actually tell you how the hell you actually use CVS. The other problem is that by naming specific products, the author is opening himself up to criticism by the likes of me for missing the ones he hasn’t included. The SourceGear SCM package, for instance, or my favourite CHM (Compiled HTML Module) structure for hyperlinked documentation. And although we said at the beginning that this book isn’t about IDEs, the latter should at least get a mention – and they don’t. No Visual Studio, no Eclipse, nothing.

This book is, I’m sad to say, intensely disappointing. It might be useful to students of software engineering as an overview of the concepts, but as a professional software developer I really can’t see a great deal of value for people like me.

Practical Development Environments
By Matthew B. Doar
Published by O’Reilly
ISBN 0-596-00796-5
Price £28.50 (cover); £20.26 (Amazon)
Published September 2005