Technical Book Review: After the Gold Rush

Book Review:

After the Gold Rush: Creating a True Profession of Software Engineering

By Steve McConnell

 

The purpose of this book is twofold: First, it aims to argue that Software Engineering should progress in the same manner as mature professions like lawyers and doctors.  Secondly, it examines the current state of the field and the requirements that it must fulfill to be considered a profession.

 

            Steve McConnell argues that most organizations follow a haphazard code-and-fix approach to software development.  This approach has produced buggy, expensive and late software.  McConnell goes on to examine each aspect of the problem in detail.  The shortage of programmer’s promotes the rise of programming heroes that work 16 hour days on twinkies and jolt cola.  The education infrastructure has stress computer science over software engineering.  Technical innovation has created a gold-rush mentality where speed of development and time to market is favored over reliability and quality.  The solution to these problems is Software Engineering as a profession.

 

            McConnell then lays out the steps to create a Software Engineering profession.  His game plan is modeled after other engineering disciplines like civil engineering.  Organizations should adopt the SW-CMM process.  The body of knowledge for software engineering must be defined and tested as is being done at www.swebok.org.  The software engineering profession requires the following attributes:

·        Extensive learning and training.

·        A code of ethics.

·        A disciplinary system for those who violate the code of ethics.

·        A prerequisite license prior to practicing.

He then goes through each of these attributes, where our field current stands on them and what we have to do to develop these areas.

 

            On the whole, the book effectively satisfies both of its goals.  One negative point of the book is its assumption that the Texas Board of Professional Engineers was on the verge of creating a licensing exam for software engineers in conjunction with the ACM and IEEE.  This event never occurred and McConnell points to it several times as a potential watershed event.  The ACM/IEEE jointly decided that our discipline was not yet ready for a licensing exam.

 

            One of the most important parts of the book that is relevant right now is its coverage and support for the Software Engineering Code of Ethics (available at http://www.computer.org/certification/ethics.htm).

 

            In conclusion, Steve McConnell has created a compelling blueprint to move us from the tar pits of poor quality software to the promise of high-quality, reliable systems built by licensed, Professional Software Engineers.