Software Project Survival Guide
This is the field guide for everyone involved in software development--especially those without formal management training. Acclaimed expert Steve McConnell maps out a proven approach to project management that you can learn and use successfully right away.

Review By: Robin Goldsmith
08/26/2002McConnell says “Software projects succeed or fail based on how carefully they are planned and how deliberately they are executed.” They don’t have to fail and they don’t have to have estimates which turn out to be untrue; but desirable outcomes don’t occur by accident. They require conscious control and discipline.
Following on the work of Abraham Maslow, McConnell states that a hierarchy of needs also applies to software projects. At the lowest level there is a set of survival needs that must be satisfied before a project can perform at higher levels, where dramatic improvements in quality and productivity occur. McConnell concludes each chapter with a “survival checklist” of actions that are necessary for survival and some that threaten survival.
The first several chapters focus on describing the software process and the factors that tend to affect it. There is a strong emphasis on the importance of planning and catching problems early before they become harder and more costly to fix. McConnell also mentions a number of techniques that would be considered best practices, such as those espoused in Peopleware and those found in the Standish Group’s survey. He includes some checklists, such as typical project activities and deliverables to be placed under change control.
The remaining chapters each deal with a different lifecycle activity: requirements, design, construction, testing, release, wrap-up, and history. He emphasizes the value of getting things right the first time instead of having to redo them later when it is much more expensive. The final chapter is a recap that refers loosely to practices of NASA’s Software Engineering Laboratory, which has a demonstrated record of producing high-quality software.
This book is a smaller version of McConnell’s earlier landmark book, Rapid Development. I think people are better served by the original, even though it is more ponderous. I learned something on practically every page of the larger book and was willing to stick with it much more because I kept sensing I was getting value. I found it harder to keep interested in Survival Guide, even though it had far fewer pages (and it seemed to me, far less on each page).
On the other hand, if you haven’t read Rapid Development, and don’t intend to wade through it, Survival Guide does provide a summary of good software practices. McConnell’s continued emphasis on making the effort to do things well in a defined and structured manner is a welcome whiff of rationality in a software world that increasingly yields to the lowest common denominator shortcut takers. Since I’m familiar with and a proponent of most of McConnell’s approaches, I can’t judge how persuasive the presentation would be for the uninitiated.
The good news for QA and Testing people is that McConnell repeatedly mentions the importance of early quality activities and review techniques to get stuff right instead of doing it over. It is refreshing that a respected member of the development community is advocating a greater, earlier, and more effective QA and Testing role.