In a period where the trend is to follow agile approaches with condensed guidance (see the 12 principles of the Agile Manifesto for instance), it could seem strange to publish a book on software development with more than 500 dense pages. You should however not be frightened by the book Competitive Engineering by Tom Gilb. Beneath the size and the structured form of this book lies an approach based on practical experience that incorporates change and flexibility into software project management without abandoning the quest for precision and delivering value.
The main concept of the book Competitive Engineering is Planguage, a word created mixing plan and language. Communication is the basis for working together. This is why Tom Gilb emphasizes first the creation of a common vocabulary. He states that his glossary could be considered as the best contribution of this book. Beneath the definition of a common language, for me the “hidden agenda” of the book is to help us to think… further. The common language is only a tool that helps us express our thoughts more precisely and completely.
Fortunately for us, Tom Gilb didn’t only write a dictionary of system engineering. A large part of the book is devoted to the activities of system engineering and project management. Based on Planguage, Gilb gives us a framework to elicit clearer software requirements. He emphasizes a measurable vision (“bad numbers beat good words”) and presents tools to achieve this objective. He also helps us separate requirements from design. Furthermore, Tom Gilb devotes an entire chapter to quality control. Finally, there is a presentation of the techniques of evolutionary project management that supports incremental development based on the priority and impact techniques described in previous parts of the book.
In every chapter of Comptetitive Engineering, you will find examples and case studies that help to visualize how the concepts translate into practice. There is also an “additional ideas” part that presents material for further thinking. Beneath the seriousness of the topic, Tom Gilb also manage to place some lighter parts, and you will find how to compare seriously apples with oranges.
At the end, you realize that you have a book where process is not opposed to people, structure is not opposed to flexibility, precision is not opposed to allowing change, documentation is not opposed to active refinement, Gilb’s proposed solution is not opposed to customization for your needs. It is just a book that gives you new inspiration to deliver better software solutions to your customer and improve your project managament toolbox.
If you are interested in software process improvement, you can read this book from the beginning and find practical material to examine your current practices with a different vision. If you are a lonesome project manager or developer, you could begin by just using the index to get Gilb’s view on your current activity or problem. Be cautious, because there are many chances that you will be tempted to read more material ;o)
After reading this book, I browsed again my old copy of “Principles of Software Engineering” that I bought when it was published in 1988. I saw that many ideas from “Competitive Engineering” were already presented in this book. Tom Gilb just applied to his ideas the same concepts he proposes for system engineering. He refined, expanded and structured them to get a better product. The printing industry has just prevented evolutionary delivery, but you can bet that he will find a way to include this in the future.
Reference: Comptetitive Engineering, Tom Gilb, Elsevier