Ivar Jacobson, Shihong Huang, Mira Kajko-Mattsson, Paul McMahon, Ed Seymour
The work on Semat has been going on for almost two years. We have not published much that can be of any practical value to our target groups, which are the industry, represented by developers and their teams, and the academics, represented by instructors and researchers. This is not because we want to be secretive. On the contrary, we want to be as open as possible. We have worked on implementing the vision we laid out almost two years ago, and while implementing it, there has been little to discuss widely. However, we are now reaching a point where meaningful results can be shared with our community.
On February 22, 2012 members of Semat will (as a response to an OMG RFP) publish a proposal for a new standard in working with methods, a proposal that is fundamentally different from anything we as a community have seen in the past. Other parties will most likely also submit proposals and at the end of this year we should have reached an agreement on what OMG in its rather formal style refers to as “A Foundation for the Agile Creation and Enactment of Software Engineering Methods”.
At the end of 2012 we should expect to will have a kernel in software engineering. The kernel has three faces, which are important as a starting point for the whole initiative:
1. The kernel is executable.
The kernel is not a static dictionary that you read. It is dynamic and executable. By that we mean you can make the kernel come alive. You can use it in real life to run an endeavor (e.g. a project or sprint). It includes the essential elements always prevalent in every endeavor such as Requirements, Software System, Team, and Work. These elements have states representing progress and health, so as the endeavor moves forward the states of these elements progress from state to state.
2. A blueprint for growth.
The kernel includes just the essentials, but it is extensible. On top of the kernel practices can be added and composed to support any existing method (to the best of our knowledge). Some larger endeavors may extend the kernel with more essential elements. The blueprint helps us to grow the kernel to whatever size is needed.
3. Principles and values.
The principles and values help us to make decisions that are not guided by the blueprint. In everything we do we apply the principle of ‘separation of concerns’. For instance, we separate what the practitioner wants to work with from what a process engineer needs, in such a way that the practitioner doesn’t need to ‘see’ more than what is of interest to her/him. We also separate practitioners from one another; all developers do not have the same level of interest.
An example of a fundamental principle applied in everything we do, is ‘Agile and lean in working with methods’. We focus on the essentials. When changing your method take evolutionary steps starting from your existing method, for example.
“Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning”. It is a very important base on top of which we now can move forward. The attached ‘Semat – Three Year Vision’ attempts to paint the picture of where we believe we will be in three year’s time. We don’t just want to tell you where we want to be but we also want to be able to measure where we are.
It seems clear that we will get a new standard. The real question is whether this new standard will make a difference to the world. Will we be able to reach the millions of developers, which so far have had no or very little interest in working with methods? We believe so of course, but there are many things we need to do different. These differentiators will be discussed in another paper. One thing is for sure, we won’t get there without the help and contributions by many of Semat’s supporters.
To read more please visit