Saturday, March 23, 2002

More Books. I've discovered two excellent books, both of which I've recently reviewed on Amazon. As I wrote the reviews it occurred to me that the overall quality of IT-related books has dramatically improved over the past two years. My two favorite publishers are Prentice-Hall and Addison-Wesley. These two imprints are now a part of the Pearson Publishing Group.

Testing. The newest book on software testing, and one of the better ones I've read, is Rapid Testing. This book provides a testing process and associated techniques that adds the agility required to meet fast-paced business requirements without sacrificing the due diligence or controls necessary to manage risk.

There is nothing especially new about the processes or techniques that the author proposes and explains; however, the way the processes are designed recasts tried and true methods into a streamlined process. Indeed, if the rapid testing process is correctly implemented it's possible to reduce testing cycle time while improving quality. I like the way the author begins by clearly defining terms. I know from experience that "acceptance test" means one thing in one organization, and something quite different in another. What I especially like, though, is the clear process itself, which consists of four major elements, each of which is thoroughly addressed in the book:

  1. People.
  2. Integrated test process.
  3. Static testing.
  4. Dynamic testing.
Another key strength of this book is the way the traditional (and much maligned) waterfall model is transformed into a hybrid called a parallel waterfall. This hybrid model is the best of the waterfall and V model, and like the V model, it tightly integrates testing and development. The author's approach to activity-input-output in the discussion of life cycle models is close to the entry-task-validation-exit process model, and the structure that is presented allows you to develop a process chain that produces predictable and repeatable results. This approach is partially why the testing process can be rapid without compromising quality or ignoring risks.

In Part II the book provides tips and techniques. Again, there is nothing especially new, but all of the key techniques are covered, including requirements and analysis, test planning, executing and reporting. Black box testing is covered well, as are an array of dynamic testing techniques (equivalence partitioning, boundary value analysis, memory leak testing, use case testing and performance tests.) If you're in a Microsoft-centric environment you'll appreciate the material on memory leak testing, and if you are in a development environment that employs UML or the Rational Unified Process the techniques for use case testing will prove helpful.

Part III provides detailed examples that are based on material presented in Part II. Overall this book lives up to its title by providing a 'safe' and effective process for rapid testing.

Project Management. One of the most exciting finds is Quality Software Project Management. This is, without a doubt, the most comprehensive book available on software project management. I don't make this statement lightly - I have over two dozen books on the subject, and have reviewed a significant portion of them on this site. It isn't the fact that the book consists of 33 chapters and 7 appendices and consumes nearly 1700 pages that makes it comprehensive. What distinguishes this book from the rest are:

  1. A process-oriented approach that is completely consistent with the PMI PMBOK, fully supports requirements for the higher levels of the capability maturity model, and can be adapted to virtually any life cycle model.
  2. It completely covers the important elements of planning, scheduling and control, including work breakdown structure development, associating tasks and deliverables, estimating (the focus is on the constructive cost model), advanced scheduling techniques (including critical chain scheduling that has emerged from the theory of constraints body of knowledge), and earned value project management.
  3. Ties software engineering, system engineering, reliability, SQA and software configuration management to the project process. Many books briefly address these, while this book addresses the requirements, issues and techniques head-on.
  4. Business plan development, requirements analysis, project deliverables and other artifacts are thoroughly covered.
  5. The web site that augments this book has errata, templates and checklists (in HTML format), links and other material that supports using the book as a course text.

    There are so many things I like about this book, but the size and depth of content makes it nearly overwhelming. My favorite chapters are 21-Metrics, 26-Continuous Improvement, 28-Post Performance Analysis and 32-Legal Issues. However, these reflect my personal interests. The book is, in my opinion, uniformly excellent. The only flaw I found was the scant attention given to releasing an application or system into production, and no mention of how to tie together issue management to the enhancement and maintenance cycle that initiates once an application is in production. However, to be fair, this book is focused on project management and not software engineering. An outstanding companion to this book would be Successful Software Development by Scott E. Donaldson, Stanley G. Siegel, which provides the same in-depth treatment of software engineering as this book does for project management. See Linda's 11 September 2001 and my 5 September 2001 reviews of this book for more details.

<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]