In Medellin a few weeks ago in a workshop held following my keynote address at the Latin American Workshop on Software Engineering and Knowledge Engineering (JIISIC) one of the first questions I received was:
How does SEMAT relate to SWEBOK?
I answered by focusing on the fact that Essence is small. It contains only the essentials required on all successful software engineering endeavors and it includes no practices. SWEBOK, on the other hand, is large and covers many best software engineering practices.
This past week I decided to go back and refresh my understanding of SWEBOK. Part of my motivation was based on the question I received in Medellin, but I was also motivated because recently there has been some criticism of Essence (the first product of the SEMAT community) because of its lack of emphasis on software engineering architecture and testing practices.
What immediately struck me in the preface to the SWEBOK guide (2004 Edition) was the phrase:
“the emphasis of the guide is placed on the construction of useful software artifacts.”
SWEBOK focuses on best practices in software engineering knowledge areas including requirements, design, construction, testing, maintenance, configuration management, software management, process, tools, methods, and quality. Clearly these are all essential areas software engineering practitioners should know.
SWEBOK, like SEMAT, intentionally does not address rapidly changing technologies such as programming languages. SEMAT, however, unlike SWEBOK, has intentionally not focused on the construction side of software artifacts.
So why did the SEMAT volunteers make this choice?
While constructing useful software artifacts is clearly an essential competency all software practitioners need to know, experience has shown that a project’s true progress and health cannot be measured by work products (or artifacts) alone. It is the essentials of project success that transcend the work products themselves, such as ultimate stakeholder satisfaction, where SEMAT places its focus.
As an example, a key goal of the Essence kernel is to guide practitioners in asking the right questions that can help their team focus on what is most important right now leading to ultimate endeavor success. While all software practitioners need appropriate skills in producing useful software artifacts, they also need appropriate skills in making critical on the job decisions related to the progress and health of their overall endeavor. When you look at it this way, SEMAT and SWEBOK just might make a perfect marriage.