=Paper= {{Paper |id=Vol-2308/isee2019paper02 |storemode=property |title=Using Essence in a Software Development Methodologies Course: An Experience Report |pdfUrl=https://ceur-ws.org/Vol-2308/isee2019paper02.pdf |volume=Vol-2308 |authors=Jan-Philipp Steghöfer |dblpUrl=https://dblp.org/rec/conf/se/Steghofer19 }} ==Using Essence in a Software Development Methodologies Course: An Experience Report== https://ceur-ws.org/Vol-2308/isee2019paper02.pdf
         Using Essence in a Software Development
        Methodologies Course: An Experience Report
                                                              Jan-Philipp Steghöfer
                                                       Software Engineering Division
                                                     Chalmers | University of Gothenburg
                                                         jan-philipp.steghofer@gu.se


   Abstract—We report on our experience of using Essence                   of Scrum, XP and the OpenUP, but the downloadable content is
as an educational tool in a course on Software Development                 outdated. At the same time, there is little support for combining
Methodologies. Students used both the kernel and the language              different practices from these processes into new processes
of Essence to discuss processes and endeavours, to define and
combine practices, and to plan a Scrum-like process that was then          or tailoring the method content to form a coherent whole.
applied in a workshop to build a Lego city. We found that using            Which practices are needed to create a workable process and
Alpha State Cards and the associated games helped students get             which impact process design choices have remains a topic for
a deeper understanding of the coherence of process elements and            experienced process engineers.
that the shared terminology was helpful in discussions. However,
                                                                              Essence [7] is an attempt to remedy these shortcomings. It
we observed students struggling with the idea of a language to
describe processes and with what constitutes the kernel.                   provides a kernel — a set of process elements that are common
   Index Terms—Software Process Education, Essence, Software               to all endeavours — as well as a language —a simple meta-
Engineering                                                                model similar to SPEM to describe practices and patterns that
                                                                           can be combined into a process. It is supported by a growing
                       I. I NTRODUCTION
                                                                           body of material, in particular a set of games, e.g., to identify
   An important objective of software engineering education is             the status of a project or to identify next steps. Essence has
to let students understand the principles of applying software             been designed from the beginning as an educational tool and
development processes to structure their work, coordinate with             to allow students and practitioners alike to explore software
stakeholders and other teams, and to create customer value in              processes with the help of clearly defined, easy-to-understand
a repeatable way [1]. Students must be able to apply different             concepts and the support of the kernel.
processes in their professional life and they require the ability             This paper reports on the use of Essence in a course on
to understand the ideas and purposes behind them [2]. However,             Software Development Methodologies. We exemplify the use
process knowledge and understanding is strongly connected                  of Essence in the classroom, describe how students perceive
to experience with working as a development team in an                     and use it, what they understand readily and what they struggle
organisational context [3]. In an educational setting, students            with, and report on observations and recommendations based
tend to focus their attention on delivering products rather than           on our experience. It thus lends support to other teachers who
applying the process correctly [4]. This impedes learning of               would like to introduce Essence in their courses and provides
process aspects and makes it difficult for teachers to provide             pointers to how Essence can be used effectively.
meaningful education in these matters.
   One problem with teaching software processes used to be                          II. “E SSENCE ” OF S OFTWARE E NGINEERING
a lack of common ground for speaking about the elements
of processes, how they are combined to form a coherent,                       Essence is the result of work conducted within the Software
applicable process, and how they relate to important aspects of a          Engineering Method and Theory (SEMAT) community2 to
process such as stakeholders, the produced software system, or             standardise and summarise the essential elements required
the team. Situational method engineering [5] was a step towards            to describe, compare, tailor and use software processes. It
modularising processes and allowing parts of them to be reused             is described in an OMG specification [8] and detailed in an
and combined. The Software & Systems Process Engineering                   upcoming book [7] that focuses on Essence’s practical use
Metamodel (SPEM) [6] provided a language to describe                       and exemplifies how it can be applied in practice. At the time
processes and its constituting parts. Both of these approaches             of writing, supporting materials are available, but spread over
have, however, never reached broad adoption. In particular,                different websites3 , some of which require registration before
high-quality descriptions of software processes in terms of                download. They include online games (e.g., the Essence Kernel
method content as prescribed by situational method engineering             Puzzler4 ), descriptions of serious games to help understand the
modelled in SPEM are few and far between. The Eclipse
                                                                             2 http://www.semat.org
Process Framework (EPF) project used to publish descriptions1
                                                                             3 For instance, https://www.ivarjacobson.com/alphastatecards and http://www.
  1 https://www.eclipse.org/epf/downloads/configurations/pubconfig         software-engineering-essentialized.com/home
downloads.php                                                                4 https://puzzler.sim4seed.org/




ISEE 2019: 2nd Workshop on Innovative Software Engineering Education @ SE19, Stuttgart, Germany                                                        7
                                                                                     discussed how to construct a process, correctly apply it, and
                                < produces
                  Work            / updates   Activity                               continuously improve it. No learning objectives are associated
                 Product                                       re
                                                                           Pattern   with   processes in these project courses and proficiency in




                                               organizes >
                                           in y >                qu
                                       lts

                  < evidences
                  e  s
                                    s u
                                             ed
                                                b                  ire               software   processes is not examined.
               rib     >         re       ss
                                                                      s
                                                                        >
            sc zes             <       re
           e
         
                                                                                     low-level objectives such as “describe the core elements of a
                has >            < targets
 Alpha                   Alpha                    Activity                Competency software process and the associated method content, including
                         State                     Space                             activities, tasks, roles, artefacts, etc.” to more advanced topics of
Fig. 1. The Essence language meta-model describes the key elements of
                                                                                     software process improvement such as “evaluate a development
essence and how they are connected [7, p. 62]. Patterns and practices can be         project, suggest a plan for software process improvement
constructed using these elements.                                                    based on the evaluation, and apply the plan.” To achieve these
                                                                                     intended learning outcomes, the course is based on active
                                                                                     learning [10]: students work in groups on different tasks in class
status of an endeavour, identify goals, or to plan next steps, after instruction from the teacher and complete assignments that
and templates for cards (see below).                                                 ultimately lead up to an experience report. A typical lecture
    Essence consists of two parts: the kernel and the language. consists of a quiz at the start to repeat the most important
The kernel contains recurring, essential parts of software concepts from the previous session, the introduction of new
processes. Most notably, it provides Alphas (Way of Working, content with a few slides by the teacher, and group work to
Work, Team, Stakeholders, Requirements, Software System, apply the new concepts. The latter steps are repeated so that
and Opportunity). These Alphas are the elements of a process two to three new ideas or concepts are covered in each session.
that needs to be considered during the endeavour and change
                                                                                        Students also go through two Lego Scrum simulations [11].
state as the endeavour progresses. The states of each Alpha
                                                                                     In the first of those workshops, students create a shared
are defined with a checklist. The kernel also contains Activity
                                                                                     experience of applying a process and witness issues with the
Spaces, i.e., placeholders for the important activities that need
                                                                                     process first hand. In the second workshop, at the end of the
to take place in each endeavour. Key competencies are defined
                                                                                     course, they apply the software process improvement plans they
as well. All of these elements can be categorised using three
                                                                                     have constructed during the weeks since the first simulation.
areas of concern (Requirements, Solution, Endeavour).
                                                                                     The overall structure of the course is as follows:
    The language, in turn, defines a meta-model and a graphical
representation for method content and practices. It defines key Part 1: Software Processes
constructs such as activities, activity spaces, work products,                         1) Understand software processes, including their basic
patterns, alphas, and competencies and how these constructs                                building blocks and lifecycles.
relate to each other (cf. Figure II). The language can thus                            2) Construct a process to apply for collaboratively building
be used to create complex patterns and practices that can be                               a Lego city.
combined into larger building blocks and full processes.                               3) Apply the process for building a Lego city and report on
    The Alphas play a particular role: using Alpha State Cards,                            the experiences with this endeavour.
i.e., representations of the different states of the Alphas as
                                                                                     Part 2: Software Process Improvement (SPI)
playing cards, it is possible to play different games to, e.g.,
plan an iteration, check the progress of the process, or define                        4) Identify improvement needs from the experience of
milestones and checkpoints. These games are described in                                   applying the process.
an instructional guide [9]. While the cards are available for                          5)  Identify goals, questions, and metrics to formalise im-
                           5
purchase, a PDF to craft one’s own deck is also available.                                 provement needs and make improvements measurable.
                                                                                       6) Construct a process improvement plan using agile practices
             III. I NTEGRATING E SSENCE IN THE C OURSE                                     and method content from prescriptive SPI methods such
A. Course Design                                                                           as CMMI.
    The course on Software Development Methodologies is taught                         7)  Apply the improvement plan in a second workshop and
to around 70 second-year students in an international bachelor                             report on the experience.
program on Software Engineering and Management. The                                     In the final, individual report that constitutes the examination,
students have previously been exposed to software processes, the students describe and analyse their experience following
in particular to Scrum, in the project courses that run each a similar structure. In addition, they need to relate their own
semester. In these project courses, the focus is on an iterative- experience to knowledge from guest lectures and the course
incremental way to produce a demoable product at the end literature which consists of a collection of papers mainly
of each sprint for review with the teacher based on a high- focused on SPI as well as selected chapters from Software
level introduction to the method. The students have thus not Engineering Essentialised [7]. Mandatory assignments cover
   5 https://www.ivarjacobson.com/publications/cards/alpha-state-cards-pdf-          most of the points in this list. The aim is to guide the students
version                                                                              through the steps and provide continuous feedback.


ISEE 2019: 2nd Workshop on Innovative Software Engineering Education @ SE19, Stuttgart, Germany                                                         8
B. Use of Essence                                                 them, partially because they struggled with understanding the
   Essence is mostly used in the first part of the course when purpose and rationale behind the pre-defined activity spaces.
introducing software processes and how to construct them, i.e.,      The main issue is the lack of experience students have
during the first two step listed in Section III-A. In addition,   with   software processes. That makes it difficult for them to
students can apply concepts from Essence in step three, e.g., to  understand      the complications that can arise and to make the
define milestones for their endeavour or to check their progress, abstract    concepts      of software processes concrete for them.
and it is used in step four to check the health of the completed  Essence     helps    a  little  bit in this regard since it names the
endeavour. Table I lists the different teaching moments in which  important     aspects   in  the Alphas and lists the possible issues that
Essence is used along with the associated intended learning       can   arise  in  the checklists    of the Alpha States. However, many
outcomes. At the beginning of the course, each student received   of  these   issues   are   difficult to grasp with little experience. In
a set of Alpha State Cards. For the lecture on Scrum, students    particular    for the  Alphas    “Opportunity”    and “Stakeholders”, the
also received a set of Essence Scrum cards each.       6          students   are  missing    a  frame  of  reference.  Without experience in
                                                                  requirements engineering, the later stages of the “Requirements”
          IV. O BSERVATIONS AND R ECOMMENDATIONS                  Alpha are difficult for them to grasp. Their poor understanding
   Using Essence as an educational tool proved to offer a of teamwork likewise makes it hard to them to understand the
number of advantages. First of all, Essence defines a clear meaning of the more advanced states of “Team”.
terminology that is extremely helpful when discussing the            At the same time, Essence can be a supporting tool in alerting
concepts of software processes in the classroom. The software     students    to these facets of software processes that are often
processes literature does unfortunately not use a common and      overlooked      in an educational setting that is rather focused on
clear terminology (witnessed, e.g., in the confusion about the    technical    aspects   [4]. Since issues are made explicit, an analysis
terms “method”, “methodology”, “approach” and “process”           of  the  Alpha     States    and their checklists in the classroom can
which are sometimes, but not always, used synonymously).          lead  to interesting    discussions    about them. If the course contains
   Furthermore, the Alphas have proven useful when discussing     practical    elements,      either  in  the form of an actual software
the different relevant aspects of a process. The games using the  project   or   in  the  form    of a  simulation,    it is also possible to
Alpha State Cards are helpful catalysts for discussions. The      create   a   shared    experience      that  can  be   drawn from in the
Alphas make the necessary building blocks explicit and the        discussions     in  the  classroom.
games cover important parts of engaging with the process. In         In summary, a teacher using Essence in the classroom
the classroom, different Alphas and their possible states can be  should    ensure that the scaffolding provided takes the level
discussed in relation to how certain practices influence them.    of experience      of the students into account. Using the language
At the same time, the games give the students tools to plan,      to construct      patterns    and practices should also be supported
monitor, and analyse the endeavour themselves.                    by   sufficient    skills  in  modelling. Grounding the discussions
   Finally, transitioning between Alpha states especially for     about    software      processes      in a concrete, practical shared
Team, Stakeholders, and Way of Working can be easily tied to      experience      and   applying     Essence     in its context has proven
software process improvement. The “Way of Working” Alpha,         to be   advantageous.
e.g., describes the process maturity of the development team.
In its more advanced states, it contains checklist items such                                   V. C ONCLUSION
as “Continuously tuned” (state five of six). This corresponds
                                                                     Essence is a helpful pedagogical tool that supports students
to a continuous approach to SPI in which improvements are
                                                                  in understanding the somewhat abstract concepts of software
discussed and implemented as needed. It is also possible to
                                                                  engineering processes. In particular the Alpha State Cards
discuss how the method content students select to improve
                                                                  and the associated serious games have proven to be an asset
the process impacts the Alpha states. For instance, if students
                                                                  to clarify important concepts of software processes such as
adopt Kanban boards, this has an impact on the “Work” Alpha
                                                                  structured planning and measuring progress. The Essence
and specifically on how tasks are planned and if unplanned
                                                                  language and the kernel are useful to introduce students to
work is under control
                                                                  process modelling and highlight the most important building
   However, based on feedback from students and the grading
                                                                  blocks of a software process. If the use of Essence is carefully
of the assignments, there are a number of caveats that a teacher
                                                                  scaffolded and combined with a practical element, it provides
aspiring to use Essence in the classroom can encounter. First
                                                                  many advantages such as a clear terminology, a construction
of all, the students struggled in using the Essence language and
                                                                  kit for processes, and a set of serious games that show different
the elements from the kernel as they had insufficient knowledge
                                                                  process aspects and are useful in both education and practice.
of modelling and language engineering. The concept of a meta-
                                                                     An important step to support teachers in the use of Essence
model and its instantiation was thus not clear to them. They
                                                                  in the classroom is to make educational material available in a
also had issues in understanding how to make the activity
                                                                  central location. This effort is currently under way within the
spaces more concrete by defining suitable activities within
                                                                  SEMAT community and will hopefully provide a repository
  6 http://ss.ivarjacobson.com.pages.services/essential-scrum?ts= of teaching concepts, slides, quizzes, assignments, etc. as well
1528896470457                                                     as a forum for exchange between teachers.


ISEE 2019: 2nd Workshop on Innovative Software Engineering Education @ SE19, Stuttgart, Germany                                            9
                                                                 TABLE I
        T HE DIFFERENT LECTURES , ACTIVITIES , AND ASSIGNMENTS THAT USE E SSENCE ALONG WITH THEIR INTENDED LEARNING OUTCOMES .

Essence concepts                   Activities                                             Assignment                           Intended Learning Outcomes
Lecture 1: Building blocks of a software process (Steps 1 and 2)
• Essence kernel: areas of con-    • Select one Activity Space. Define two activities     •   Play Progress Poker and          •   describe the core elements of a
  cern, alphas and alpha states,     for the selected Activity Space with the the             Checkpoint Construction [9]          software process and the associ-
  competencies, activity spaces      following information: (1) input (in terms of            for a provided software devel-       ated method content, including
• Essence language: language         work products); (2) output (in terms of work             opment scenario and justify          activities, tasks, roles, artifacts,
  constructs and meta-model          products); (3) necessary competencies; (4) alpha         the different choices made.          etc.
                                     states changed by the activity
                                   • Milestone Mapping Game [9]: Define a number
                                     of milestones from inception to delivery. For each
                                     Alpha, identify the state that the Alpha should
                                     be in when the milestone is achieved.
Lecture 2: Structured Planning and Progress (Steps 1 and 2)
• Use Alpha State Cards to play    • Checkpoint construction
  serious games to plan project    • Progress Poker
  and measure its progress
Lecture 3: Agile Development Processes (Steps 1 and 2)
• Model and combine agile         • Build your own practice: Describe one of the          • Select practices to use in the     • describe the core elements of a
  practices using the Essence       practices Test-driven Development, Continuous           workshop and provide a ra-           software process and the associ-
  language and elements from        Integration, or Product and Sprint Backlog using        tionale. Combine them to a           ated method content, including
  the Essence kernel;               information from the provided sources. Use the          process that addresses all rel-      activities, tasks, roles, artifacts,
• introduce            iterative-   Essence language and elements from the kernel.          evant activity spaces. Create        etc.
  incremental      development    • Kanban: Create a practice “Manage Kanban                one or more diagrams that          • describe and discuss the ad-
  lifecycle    and     different    Workflow” using the Essence language and                show the activity spaces, how        vantages and disadvantages of
  approaches to agile software      elements from the kernel. Define the activities         Alphas and work products             different lifecycles, including
  development.                      that it should include.                                 are connected, and which pat-        Waterfall, V-Model, Iterative,
                                  • XP: Create a model of XP using the Essence              terns are used.                      Incremental, and their respec-
                                    language and elements from the kernel.                • Describe how you are going           tive combinations
Lecture 4: Scrum (Steps 1 and 2)                                                            to scale the process to include
• Important concepts in Scrum,    • Use the Essence Scrum cards to answer the               other teams and stakeholders.
  including Sprints, Sprint Re-     following questions: (1) What’s in a sprint? (2)      • Describe how you plan to
  views and Sprint Retrospec-       How are requirements handled? (3) How do the            instantiate the process by pro-
  tives as well as customer in-     team patterns impact the activities?                    gressing the “Way of Work-
  volvement;                      • Process instantiation: Discuss what needs to be         ing” Alpha from “Founda-
• scaling Scrum to several de-      done to progress to the “In Use” state of the           tions Established” to the “In
  velopment teams using a pro-      “Way of Working” Alpha!                                 Use” state. Remember that
  gram and a team level [7,                                                                 you should discuss roles,
  p. 249ff.]                                                                                rules, tools, and schedule.

Workshop: Use constructed process in a Lego Scrum simulation (Step 3)
• Process is defined using        • Students define activities on their own as part of                                         •   evaluate a development project,
  Essence language and kernel       their process;                                                                                 suggest a plan for SPI based
• Alpha State Cards available     • in practice Essence was not used in the simula-                                                on the evaluation, and apply it
  to students, games known          tion.
Lecture 5: Process Quality (Step 4)
• Use Alpha State Cards to        • Health Monitoring: track the health of your                                                •   evaluate a development project,
  identify issues in the appli-     endeavour and identify what the next steps are                                                 suggest a plan for SPI based
  cation of a process and find      using the Alpha State Cards.                                                                   on the evaluation, and apply it
  areas of improvement



                              R EFERENCES                                         [6] Object Management Group (OMG). (2008) Software & Systems Process
                                                                                      Engineering Metamodel Specification Version 2.0. [Online]. Available:
 [1] A. Heredia, R. C. Palacios, and A. de Amescua Seco, “A systematic                https://www.omg.org/spec/SPEM/2.0/
     mapping study on software process education,” in SPETPSPICE, 2015,
                                                                                  [7] I. Jacobson, H. B. Lawson, P.-W. Ng, P. E. McMahon, and M. Goedicke,
     pp. 7–17.
                                                                                      Software Engineering Essentialized. SEMAT, 2018. [Online]. Available:
 [2] M. Kuhrmann, D. M. Fernandez, and J. Münch, “Teaching software
                                                                                      http://www.software-engineering-essentialized.com/
     process modeling,” in ICSE-SEET, May 2013, pp. 1138–1147.
 [3] L. McLeod and S. G. MacDonell, “Factors that affect software systems         [8] Object Management Group (OMG). (2018) Essence Specification
     development project outcomes: A survey of research,” ACM Computing               Version 1.2. [Online]. Available: https://www.omg.org/spec/Essence/1.2/
     Surveys (CSUR), vol. 43, no. 4, p. 24, 2011.                                 [9] Ivar Jacobsson International, “Alpha state card games – instructional
 [4] J.-P. Steghöfer, E. Knauss, E. Alégroth, I. Hammouda, H. Burden, and           guide,” 2015. [Online]. Available: https://www.ivarjacobson.com/
     M. Ericsson, “Teaching agile: Addressing the conflict between project            publications/brochure/alpha-state-card-games
     delivery and application of agile methods,” in ICSE-SEET. ACM, 2016,        [10] M. Prince, “Does active learning work? a review of the research,” Journal
     pp. 303–312.                                                                     of Engineering Education, vol. 93, no. 3, pp. 223–231, 2004.
 [5] B. Henderson-Sellers and J. Ralyté, “Situational method engineering:       [11] J.-P. Steghöfer, “Providing a baseline in software process improvement
     state-of-the-art review,” Journal of Universal Computer Science, vol. 16,        education with lego scrum simulations,” in ICSE-SEET ’18. ACM,
     no. 3, 2010.                                                                     2018, pp. 126–135.



ISEE 2019: 2nd Workshop on Innovative Software Engineering Education @ SE19, Stuttgart, Germany                                                                    10