Result-Focused, Or State-Focused?
As I continue to explore/evaluate the relevance of the SEMAT Kernel to the future of software engineering, I’m finding that I’m liking it less and less. (For a quick introduction to the SEMAT Kernel, please go read this post, “Revolution, Or Malarkey?“, and then return back here if you’re still interested in what BD00 has to say.)
One of the principal creators of the SEMAT movement, Ivar Jacobson, subjectively asserts that:
“…using the SEMAT kernel to drive team behavior makes the team result focused instead of document driven or activity centric.” – Ivar Jacobson
Using the patented BD00 method of distorted analysis, let’s explore this bold proclamation further.
In the current definition of the SEMAT kernel, each of the seven top-level alphas in the SEMAT Kernel has a state whose value at any given moment is determined by the sub-states of a set of criteria items in a checklist. In addition, each sub-alpha itself has a checklist-determined state.
“Each state has a checklist that specifies the criteria needed to reach the state. It is these states that make the kernel actionable and enable it to guide the behavior of software development teams.” – “The Essence Of Software Engineering“
So, let’s look at some numbers for a small, hypothetical, SEMAT-based project. Assume the following definition of our project:
- 7 Alphas
- Each alpha has 3 Sub-Alphas
- Each checklist has 5 Items
With these metrics characterizing our project, we need to continuously track/update:
- 7 alpha states
- 7 * 3 = 21 Sub-alpha states
- 7 * 3 * 5 = 105 checklist item states
Man, that’s a lotto states for our relatively small, 21 sub-alpha project, no? It seems like the SEMAT team could be spending a lot of time in a state of confusion updating the checklist document(s) that dynamically track the state values. Thus,
“…using the SEMAT kernel to drive team behavior makes the team state focused instead of result focused.” – BD00
Unless result == state, Ivar may be mistaken.