This book is a valuable contribution to the development of software and
systems engineering methodologies, and is based on the author's long and
distinguished career as a consultant, teacher, writer and most of all, as a
thinker in this area. It is worthwhile recollecting that Gilb coined the term
software metrics in the mid 1970s, and his focus on measurement and
quantification is evident across the entire book. He is the author of 9 books,
including the 1976 Software Metrics, which was the foundation for CMM level 4,
and Principles of Software Engineering Management (cited as seminal for the
Agile methods, such as Extreme Programming). His methods are adopted
corporate-wide by major corporations such as Intel, Nokia, and Citigroup.
The challenges of software engineering are many and significant. It is well
documented that inadequate practices in the areas of specification, design and
project management routinely lead to expensive rework, cost and schedule
overruns, thereby impacting management goals, and indeed, organizational
competitiveness. A gamut of framework, tools and techniques have emerged over
the past 20 years or so, attempting to address these issues of engineering and
management. While they have all achieved limited successes, they have tended to
take fragmented approaches, addressing one or more of project management,
quality management, software productivity, specification management and design.
Gilb has set himself the ambitious task of bringing a holistic approach to
these concerns. At the core of Gilb's methodology is Planguage, a full-fledged
specification language, which also provides a thread of continuity throughout
the book. Indeed, the book begins and ends with Planguage, comprising the
introductory chapter and a comprehensive glossary respectively, accounting for
over 32% of the entire book. To derive the maximum benefit from the book, the
practitioner will need to invest a good amount of effort in mastering Planguage.
Planguage meets the requirements of a specification language very well,
including compactness, completeness, and applicability across domains, precision
and consistency. Since it is a well-defined subset of English, learning it is
relatively easy, and can be done iteratively in a "learn-apply-learn more
cycle". Planguage is extensively used in the other major modules of the
book, such as Specification Quality Control (SQC), Impact Estimation (IE) and
Evo, the evolutionary project management system.
I found the section on SQC most striking, and it is easy to implement with
great effect. In a current customer engagement, I pointed out that the
requirement specifications provided by the customer were inadequate from the
perspective of defining actual projects, and this resulted in a four-week, paid
for assignment to clean up the specs in the first place. I believe this effort
will yield significant benefits all round. There are several eye openers in this
section, and the learning from here should lead to immediate benefits. The
section on Design Engineering provides many practical suggestions and a
framework, generic enough to be used in a variety of situations. Design is
intrinsically a creative activity, with corresponding difficulties in
predictability and manageability.
Evo, or the evolutionary project management approach, deserves a detailed
treatment in itself. The proof of a theoretical framework's effectiveness is
finally in the implementation, and this is what Evo addresses. The core of the
Evo approach is the Plan-Do-Study-Act (PDSA) cycle, and is well suited to short
delivery cycles, pressures on time to market, and the demands of constantly
changing requirements. I find the approach particularly useful, since my
concerns are mainly related to product development, which appear to be well
suited to the Evo approach.
In conclusion, it is worth noting that the book is a rich source of ideas and
concepts, in addition to being a handbook for immediate implementation, and a
language manual. The author's focus on measurements and results are also
valuable lessons to be imbibed. In writing this review, I have often wondered
whether Gilb has attempted too much in a single book. It's not an easy read,
but definitely a worthwhile investment, with immediate and ongoing benefits.
Competitive Engineering
by Tom Gilb
Butterworth-Heinemann
Pages: 480 (Paperback)
NV Krishna, Chief Executive, Microsense Software mail@dqindia.com