Book Review: "Software Project Survival Guide"

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.