Essence Tutorial 2013
ICSE 2013 Tutorial:
Essence – Kernel and Language for
Software Engineering Practices
1:30pm – 5:00pm Saturday May 25 2013
San Francisco, CA, USA
Essence Tutorial website
ICSE 2013 website: http://2013.icse-conferences.org/content/accepted-tutorials#t14
(Printable Version in PDF)
Please join us and practice Essence at ICSE 2013 in San Francisco on May 25, 2013 and be part of a worldwide movement towards finding a common ground and a foundational theory of software engineering. This tutorial is paired with a workshop on a General Theory of Software Engineering 2013 (GTSE 2013).
1 Essence: Kernel and Language for Software Engineering Practices
Software engineering endeavors vary with respect to their complexity, domain, novelty, distribution and the like. Even though there are many justified claims that different organizations and teams require their own methods, there is still underneath these methods a common ground on which all methods may be based. The SEMAT community (Software Engineering Method And Theory) has distilled this common ground and called it Essence. Essence is manifested as a kernel of essential elements that are universal to all software-development efforts. The kernel provides a roadmap guiding development effort towards progress and health. Essence has been shown to work with both agile and traditional settings, as well as those in between.
Essence represents a paradigm shift in the way we work when developing software. The shift can be described by the words: from describing to doing. Traditionally, method frameworks such as RUP, SPEM, SME have focused on assisting method engineers in creating method descriptions. However, the adoption of these descriptions among software professionals (analysts, developers, etc.) has been very low. Essence, while supporting superlight narratives, has its focus on supporting the development teams while actually working on achieving measurable results. It does this through a novel state-based, method independent approach; it helps the team to evaluate progress and health in a holistic manner in the most basic dimensions of a project, for instance in the requirements, software system and team dimensions.
2 Differentiators of Essence
Essence has a few differentiators from other approaches:
It relies heavily on the "separation of concerns" principle. For instance, Essence primarily addresses the software professional instead of the method engineer. This allows it to be very easy to adopt by professionals, who are less interested in methods, while it is extensible to the many groups interested in more (without complicating it to the former group).
It also relies on the principle agile while working with methods. This means that Essence supports teams to evolutionarily improve their ways of working, not only in small steps but also in more radical and big steps such as replacing an old practice with a better modern one (but without changing any other practices).
It has been designed with significant attention paid to syntax. For instance, the progress and health progression are made concrete through a deck of state cards, which can be used in a variety of ways from planning work, assigning work, defining work procedures, to conducting the actual work and to finalizing it.
3 Structure of Essence Tutorial
The tutorial first introduces the Essence ideas, including the alphas and their states and then demonstrates their usages in monitoring development progress and health. Moreover, it demonstrates Essence in practice using examples and case studies. Specifically, this tutorial:
Demonstrates how to use the kernel to evaluate progress and health of development endeavor in both agile and traditional development
Uses tools (state cards) to demonstrate how to do a project in iterations or sprints and how to continuously measure its progress and health
Shows how Essence can be scaled-up to describe and do large complex systems and organizations in an actionable manner
Since the ideas are new and substantively different from what have been done in the past, the tutorial will be very hands-on and interactive. We will use a single case study to work with throughout all exercises and discussions. By the end of the tutorial, you will have a good appreciation of Essence and an understanding of how to use it in education, research and industry.