by Scott Brookhart
As Fred Brooks stated in The Mythical Man Month, there are no silver bullets to software development problems. Software is complicated, and the path that developers travel is seldom smooth. However, the authors of this book — all technical giants and pioneers in the software engineering field — have found solutions to help level some bumps along the way and make for a more comfortable ride.
Many attempts to create frameworks, methodologies, and practices have led to less than desirable results, so efforts to tweak them are ongoing. The concept of taking requirements from several people's minds and bringing them to fruition in a single system is a lot like trying to read minds. These authors use engineering methods to define a solution.
They propose a framework that has clearly defined steps and works with any methodology. They call it the SEMAT kernel, SEMAT being an acronym for Software Engineering Method and Theory. SEMAT describes "alpha" states that help developers identify the software's progress and communicate it clearly. The book includes checklists to help follow the kernel process, which makes it repeatable and better documented. The book is divided into parts. The first part explains the kernel itself, and the second part explains how to use it iteratively over an entire software development effort. It shows the ways the kernel will scale, how it possibly changes the way software engineers work, and how it compares with familiar methods.
The book is very easy to read, and the concepts aren't hard to understand. They have their roots in UML and the Rational Unified Process, to which the authors have contributed significantly. The lessons learned from the earlier methodologies are easy to see.
In brief, The Essence of Software Engineering clearly lays out software engineering methodology for the practitioner. As the authors note and the associated website (www.semat.org) indicates, the SEMAT kernel is a work in progress. The book lays the foundation for the method and theory, and the website provides additional commentary in terms of papers and material. I think the authors are on to something as others who provided commentary to the book will attest. The SEMAT kernel borrows concepts from other methodologies such as agile, and users can customize it to adapt to any environment.
Although there may not be a silver bullet that pierces all the problems in software development, the SEMAT kernel adds value by getting to the essence of the process and delivering it on engineering terms.
Scott Brookhart is a software engineer in Austin, Texas. Contact him at firstname.lastname@example.org.