28
Copyright © 2014 Ivar Jacobson International SA. All rights reserved Essence: A Common Ground for Flexible Methods Ed Seidewitz

Essence: A Common Ground for Flexible Methods

Embed Size (px)

Citation preview

Page 1: Essence: A Common Ground for Flexible Methods

Copyright © 2014 Ivar Jacobson International SA.  All rights reserved

Essence: A Common Ground for Flexible Methods

Ed Seidewitz

Page 2: Essence: A Common Ground for Flexible Methods

• Embody essential concepts in a kernel.• Work with methods in an agile way that are as close to

practitioners’ practice as possible.• Focus on the things that matter the most.• Focus on helping the least experienced developers over helping

more experienced developers.• Understand that the majority of practitioners are interested in…

– the use of methods, not their definition.– practice, not process or method engineering. – intuitive and concrete graphical syntax, not formal semantics.

Principles of Essence

2

Page 3: Essence: A Common Ground for Flexible Methods

3

• “Foundation for Agile Creation and Enactment of Software Engineering Methods” (FACESEM) RFP issued June, 2011

• Essence – Kernel and Language for Software Engineering Methods submitted February 2013

• Essence 1.0 Finalization Task Force chartered March 2013• Essence 1.0 (beta) adopted May 2014

The Essence Specification

Page 4: Essence: A Common Ground for Flexible Methods

Method Architecture

4

The Kernel is the common ground thus it includes essential elements of software engineering.

The Language is used to define methods, practices and the essential elements of the Kernel.

A practice is a repeatable approach to doing something with a specific purpose in mind.

A method is an enactable composition of practices.

Page 5: Essence: A Common Ground for Flexible Methods

The Kernel

5

A stripped-down, lightweight set of definitions that captures the essence of effective, scalable software engineering in a practice independent way.

The Kernel is described using a small subset of the Language.

Page 6: Essence: A Common Ground for Flexible Methods

6

Alphas: The things to work with

Activity Spaces: The things to do

Competencies: The abilities needed

Content of the Kernel

Page 7: Essence: A Common Ground for Flexible Methods

What is an alpha?

7

• Alpha is an acronym for an Abstract-Level Progress Health Attribute.

• An essential element of the software engineering endeavor that is relevant to an assessment of the progress and health of the endeavor.

Page 8: Essence: A Common Ground for Flexible Methods

Software Engineering Kernel Alphas

8

Page 9: Essence: A Common Ground for Flexible Methods

Alphas: Example

9

Requirements

Description

What the software system must do to address the opportunity and satisfy the stakeholders.

It is important to discover what is needed from the software system, share this understanding among the stakeholders and the team members, and

use it to drive the development and testing of the new system.

Associations

scopes and constrains : Work

Page 10: Essence: A Common Ground for Flexible Methods

Software Engineering Kernel Activity Spaces

10

Page 11: Essence: A Common Ground for Flexible Methods

Activity Spaces: Examples

Scrum Essentials PracticeActivity Space

Activity

Activity Predecessor Relationship

11

Page 12: Essence: A Common Ground for Flexible Methods

12

Software Engineering Kernel Competencies

Page 13: Essence: A Common Ground for Flexible Methods

The Language

13

The language provides three graphical views:1. Alphas and Their

States2. Sub-Alphas and Work

Products3. Activity Spaces and

Activities

The language is defined in five packages:1. Foundation2. Alpha and Work Product3. Activity Space and

Activity4. Competency5. User Defined Types

Page 14: Essence: A Common Ground for Flexible Methods

The Language: Small, Simple and Flexible

Competency

Alpha State

Activity Space <

invo

lves

targ

ets

>

Alpha

< h

asActivity

Work Productprogressed by >

prod

uces

/ upd

ates

>

organizes >

< describes

organizes >

< evidences

< results in

PatternResource

Can be added to anything

< require

s

14

Page 15: Essence: A Common Ground for Flexible Methods

Language: Graphical Notation Examples

15

Page 16: Essence: A Common Ground for Flexible Methods

Language – Textual Notation Example

16

alpha Requirements { "What the software system must do to address the opportunity and satisfy the stakeholders." has {

state Conceived {"The need for a new system has been agreed.” checks {

item cli1 {"The initial set of stakeholders agrees that a system is to be produced."} item cli2 {"The stakeholders that will use and fund the new system are identified."} item cli3 {"The stakeholders agree on the purpose of the new system.”}item cli4 {"The expected value of the new system has been agreed."}

} } state Bounded {

"The theme and extent of the new system is clear." checks {

item cli1 {"Stakeholders involved in developing the new system are identified."} item cli2 {"It is clear what success is for the new system."} item cli3 {"The stakeholders have a shared understanding of the extent of the proposed solution."} item cli4 {"The way the requirements will be described is agreed upon.”}item cli5 {"The mechanisms for managing the requirements are in place."}

} }

Page 17: Essence: A Common Ground for Flexible Methods

Language: Semantic Framework

17

Page 18: Essence: A Common Ground for Flexible Methods

Semantics: Determination of State using Check Points

18

Page 19: Essence: A Common Ground for Flexible Methods

Practices

19

Practices and methods are built on the language using the kernel.

Page 20: Essence: A Common Ground for Flexible Methods

20

Documenting Practices

Tacit Practices

With Coaching

Explicit Practices

With Coaching

Background

Capability

Common Different

ExplicitPracticesNeeded

TacitPracticesSufficient

High

Low

Page 21: Essence: A Common Ground for Flexible Methods

A Practice Architecture

Mobile Application

DevelopmentMethod

Kernel

Core Banking Development

Method

Enterprise Integration

Method

Defect/Issue Tracking

Configuration Management

Defect/Issue Tracking

Configuration Management

Defect/Issue Tracking

Configuration ManagementCommonPractices

Waterfall Lifecycle Modern Lifecycle Modern Lifecycle

Architecture Centric Emerging Architecture

Emerging Architecture

Traditional Requirements User storiesUse Cases

Endeavor TypeSpecificPractices

Acceptance Test DrivenDevelopment

Acceptance Test DrivenDevelopment

Acceptance Test DrivenDevelopment

Improvement

Page 22: Essence: A Common Ground for Flexible Methods

Practice Composition: Base Practices

22

Iterative Planning Practice

Iterative Assessment Practice

Agree on Iteration

Guide Team

IterationPlan

Evaluate Result

IterationAssessment

Page 23: Essence: A Common Ground for Flexible Methods

Practice Composition: Composite Practice

23

Iterative Development

Agree on Iteration

Guide Team

IterationPlan

Evaluate Result

IterationAssessment

Page 24: Essence: A Common Ground for Flexible Methods

24

Practice Explorer

The Practice Explorer shows Practice Workbench projects

The Essence Kernel project contains the elements defined in the OMG Essence specification

Alphas that represent the essential things to work with

Activity Spaces that represent the essential things to do

Page 25: Essence: A Common Ground for Flexible Methods

25

ETextile, Guideline and Card views

When selecting an element in the Practice Explorer you can switch between different views

The ETextile Source view provides the main editor for authoring the practice using plain text and annotations

The Guideline Preview renders how the guideline will be presented in HTML

The Overview Card Preview renders the card presentation

Page 26: Essence: A Common Ground for Flexible Methods

26

Scrum Essentials

The Scrum practice is created as a separate practice project in the Practice Workbench

The Scrum practice extends the Essence Kernel by providing more detailed guidance.

Drag and drop the relevant Alphas to extend from the Essence Kernel into the Scrum practice project

Drag and drop the relevant Activity Spaces to extend from the Essence Kernel into the Scrum practice project

Page 27: Essence: A Common Ground for Flexible Methods

27

Scrum Roles

Scrum roles are represented as Patterns

Product Owner (Guideline Preview)

Product Owner (Card Preview)

Page 28: Essence: A Common Ground for Flexible Methods

28

Scrum Sprint

Sprint is represented as a sub-alpha of Work

The Sprint has States with Checkpoints

The Sprint has associated the Work Product Sprint Backlog that contains the set of Product Backlog items selected for the Sprint, and the plan for delivering the product Increment

Sprint (Card Preview)

Sprint in Under Control State(Card Preview)

Under Control(State Card Preview)