=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==
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 elow-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