Finally, a way to speak and learn about processes that works

Jan-Philipp Steghöfer

Associate Professor, Software Engineering Division, Chalmers | University of Gothenburg, Sweden

I have been teaching software processes for several years. One issue I always found daunting was the lack of common ground for speaking about the elements of processes, how they are combined to form a coherent, applicable process, and how they relate to important aspects of a process such as stakeholders, the produced software system, or the team. Situational method engineering and languages such as SPEM provided concepts for this, but they weren't well integrated, did not offer up-to-date process content and offered little support for combining different practices from these processes into new processes or tailoring the method content to form a coherent whole. Which practices are needed to create a workable process and which impact certain process design choices have remained a topic for experienced process engineers and proved very difficult to put across to students.

In autumn of 2018, I used Essence in my teaching for the first time to overcome these shortcomings. Essence provides a kernel — a set of process elements that are common to all endeavours — as well as a language similar to SPEM but significantly easier to learn and use to describe practices and patterns that can be combined into a process. It is available as an OMG specification and supported by a growing body of educational and other supporting material, in particular, a set of games, e.g., to identify the status of a project or to identify next steps. Essence has been designed from the beginning as an educational tool and to allow students and practitioners alike to explore software processes with the help of clearly defined, easy-to-understand concepts and the support of the kernel.

Using Essence in the classroom was very successful. First of all, Essence defines a small but clear terminology that is extremely helpful when discussing the concepts of software processes in the classroom. Furthermore, the Alphas - recurring concepts in an endeavour that change state as development progresses - allow students to grasp the necessary elements of a process and how they are transformed. The games using the Alpha State Cards are very helpful catalysts for discussions. The Alphas make the necessary building blocks explicit and the games cover important parts of engaging with the process, such as which milestones are relevant, which progress has been made, and how certain development practices influence them.

In particular, students used Essence to plan, monitor, and analyse a concrete endeavour. In a Lego Scrum simulation, students applied a version of Scrum they designed themselves using Essence, monitored it using the Alpha State Cards and games such as Progress Poker, and later analysed what happened using Health Monitoring. Based on this experience and the transitions between the Alpha States especially for Team, Stakeholders, and Way of Working, I also explained the relevance of software process improvement. A process that is “Continuously tuned” is one of the hallmarks of the later stages of the “Way of Working”. It is also possible to discuss method content selected to improve the process in the context of its impact on the Alpha States.

In summary, Essence is the first teaching tool I have seen that combines a clear terminology, a construction kit for processes, and a set of serious games that show different process aspects and are useful in both education and practice. When carefully scaffolded and combined with a practical element, Essence provides students insight into the complicated world of processes without overwhelming them. In my future teaching, I will not only continue to use Essence but extend its application in the course and support it with additional teaching material.

This report is an abbreviated version of Jan-Philipp Steghöfer: Using Essence in a Software Development Methodologies Course: An Experience Report. In Proceedings of ISEE 2019: 2nd Workshop on Innovative Software Engineering Education, pages 7-10, CEUR WS, 2019. Available online