25 Reflecting on the SEMAT Journey
When the authors worked on the Essence, they had a very clear goal, which was to raise the standard of software engineering across the industry. The SEMAT call for action (see section 2.4,) searched for a kernel of software engineering.
This book has very much been the validation of the kernel. Our theory or hypothesis has been that regardless of the type of development endeavor, there is a very useful small and extensible kernel. A kernel with a language called Essence has been accepted by OMG as a standard in 2014. Essence has been applied in a number of cases, ranging from individual practices to large methods. As of this writing about 100 practices and about 5 methods have been essentialized.
In this book, we have demonstrated the validity and the usefulness of the kernel and the underlying language. Specifically, there are 3 hypotheses behind the kernel and language approach:
- The kernel by itself, without any other practices is useful in accessing the health of software development endeavors. We have demonstrated this in part 2 of the book, when we used the vanilla kernel to manage Smith’s endeavor.
- The language is able to express different kinds of practices that a team needs. In the book, we have shown how it can model different kinds of practices including Scrum Lite, User Story Lite, Use Case Lite, Microservice Lite in part 3, and many other collaboration practices for large scale development in part 4.
- The kernel and practices can be used to compose different kinds of methods for different purposes. We have demonstrated this ability for both small and large scale development in part 3 and 4 respectively.
There is great value in the kernel and language approach. The kernel and practices are like Lego building blocks, you can build many things with it. While the number of things you can build with Lego blocks are infinite, the kinds of Lego blocks are finite. Not only that, the kinds of blocks and the rules of composition are numerically very small, which even a child can learn.
The same goes for the kernel and the underlying language. There are only a handful of elements in the language: alphas, alpha states, work products, level of detail, competencies and patterns, together with a simple aspect composition mechanism. These can be easily learned by a student like you.
Recommended Additional Reading
- Knaster, Richard, Leffingwell, Dean. SAFe 4.0 Distilled: Applying the Scaled Agile Framework for Lean Software and Systems Engineering. Addison-Wesley Professional, 2017. This is a great resource for understanding the Scaled Agile Framework (SAFe). It covers SAFe 4.0.
- Ambler, Scott W., Lines, Mark. Disciplined agile delivery: A practitioner's guide to agile software delivery in the enterprise. IBM Press, 2012. This is an excellent resource for understanding Disciplined Agile Delivery (DAD).
- Larman, Craig, Vodde, Bas. Large-Scale Scrum: More with LeSS. Addison-Wesley Professional, 2016. A great overview of LeSS, a method to apply Scrum in large scale development.