Developer's Reading List, October 23, 2012 New books on C++11, parallel programming, CoffeeScript, requirements, and more.
by Suzanne Robertson and James Robertson
Requirements books are few in number, but they all look like they were cloned from the same parent. They focus on how to cajole users into expressing their needs, and then segue into capturing that data in use cases. Then they cover requirements management and disappear entirely into discussions of pure IT processes. What they never actually do, though, is show you a complete and correct requirement, properly captured and correctly described.
This book takes a completely different approach, which is considerably more useful. The authors start right off showing you templates for requirements. They then step through the aforementioned topics. But instead of vanishing into IT procedural details, they circle back with an excellent series of chapters that critique bad requirements. They provide a series of intelligent suggestions for making the requirements better. For example, they discuss the problem of granularity — how detailed should the requirement be without veering too deeply into implementation details? How to avoid ambiguity in capturing needed details. How to specify measurable requirements. And so on. It's clear the authors have done a lot of work in this area and they've managed to extract the critical information and key lessons from their experience. These chapters alone are worth the price of admission. Having looked at many of its competitors, I can honestly say without fear of correction that this is the best book on requirements available today. Highly recommended.