uses and
consumes
solution
set up to address
demands
fulfills
Requirements
software
system
helps to
address
update and changes
supports
this vision, SEMAT focused on two
major goals: Finding a kernel of widely
agreed-upon elements, and defining a
solid theoretical basis.
To a large extent these two tasks are
independent of each other. Finding
the kernel and its elements is a pragmatic exercise requiring experienced
software developers with knowledge of
many of the existing methods. Defining the theoretical basis is academic
research and may take many years to
reach a successful outcome.
scopes and
constrains
produces
performs and plans
endeavor
Work
team
guides
applies
Way of
Working
figure 2. things to do.
customer
explore
Possibilities
understand
stakeholder needs
ensure stakeholder
satisfaction
use the system
solution
shape
the system
understand the
requirements
implement
the system
test
the system
deploy
the system
operate
the system
endeavor
Prepare to do
the work
coordinate
Activity
support the
team
track
Progress
stop the
Work
ideas. What they are against is the non-lean, non-agile behavior that comes
from people adopting inappropriate
solutions just because they believe
these solutions are fashionable—or
because of peer pressure or political
correctness.
SEMAT supports a process to redefine software engineering based on a
solid theory, proven principles, and
best practices that:
˲ Include a kernel of widely agreed-upon elements, extensible for specific
uses;
˲ Address both technology and people issues;
˲Are supported by industry, academia, researchers, and users; and
˲ Support extension in the face of
changing requirements and technology.
The SEMAT call for action received
a broad base of support, including a
growing list of signatories and supporters ( http://www.semat.org). In
February 2010 the SEMAT founders
developed the call for action into a vision statement. 5 In accordance with
the Power of the common Ground
SEMAT’s first step was to identify a
common ground for software engineering. This common ground is manifested as a kernel of essential elements
that are universal to all software-development efforts, and a simple language
for describing methods and practices.
The kernel was first published in the
SEMAT OMG (Object Management
Group) submission. 2, 9 As shown in
figures 1 and 2, the kernel contains
a small number of “things we always
work with” and “things we always do”
when developing software systems.
Work is also ongoing to define the
“skills we always need to have,” but this
will have to wait until future versions of
the kernel.
More than just a conceptual model,
the kernel provides:
˲ A thinking framework for teams
to reason about the progress they are
making and the health of their endeavors;
˲ Common ground for the discussion, improvement, comparison, and
sharing of software-engineering methods and practices;
˲ A framework for teams to assemble
and continuously improve their way of
working by the composition of separately defined, and sourced, practices;
˲ A foundation for defining practice-independent measures to assess the
quality of the software produced and
the methods used to produce it; and
˲ Most importantly, a way of helping
teams understand where they are, what
they should do next, and where they
need to improve.
the big idea
What is it that makes the kernel more
than just a conceptual model of software engineering? What is it that is re-