I just finished reading the "Software Project Survival Guide" (Steve McConnell, Microsoft Press) and came away with mixed feelings.

The Good:

  • A good high-level introduction to the development lifecycle of a software project.
  • Clear explanations of the dangers,common mistakes and best practices associated with each stage in the lifecycle.
  • Detailed breakdown of deliverables for the various stages.

The Bad:

  • A "generic" software project management book which doesn't really follow any specific methodology other than "staged development".
  • Doesn't really go into any detail on which methodologies exist or how to choose which one is right for you.
  • It bills itself as an introductory book, but then recommends management practices which aren't realistic for teams of less than 8-10.  How many absolute beginners do you know who are running teams that size? 

I really enjoyed some of the quotes and summaries in the book; Steve McConnell has a great knack for simple yet elegant explanations. Take for example a paragraph on Architecture (chapter 10): "A good architecture should fit the problem, whatever it is. After days or weeks of wrestling with the architectural design, the architect should create an archtiecture that addresses the problem so well that when other people see the architecture they say "That seems so obvious; how else could you do it?" Harlan Mills referred to this quality as 'deep simplicity'. An architecture that is more complicated is worse, not better."

Summary:   Overall it is a fair introduction and does a great job of getting across some feel for the complexity involved in running a software project. However the lack of tie-in to real world methodologies means that this book has trouble standing on its own. But if project management is new to you, you can definitely consider reading this book as a preface before moving on to more detailed titles.