a small deck of cards in their pockets,
which they can easily pull out to discuss the current status of development
and the work assignment and collaboration among team members. Teams
can also discuss areas of improvement
by referring to the cards. Thus, the kernel is not merely a heavyweight description of what a team needs to do. Rather,
it forms an essential part of what they
are doing each day.
The kernel in action. The kernel has
many applications in software professionals’ everyday lives. They include:
˲ Running an iteration (or sprint).
˲ Running the entire development
from idea to product.
˲ Scaling to large organizations and
complex software-development endeavors.
The first application, planning an
iteration, is used here as an example
of what a team can do with the kernel.
The others are covered fully in The Essence of Software Engineering—Applying
the SEMAT Kernel. 6
The example presented here as-
sumes that a company has very little
in the way of formal processes. In the
past it has relied on having skilled and
creative individuals on experienced
teams, but the company is now grow-
ing and has many new hires. These
new employees, mostly fresh out of
university, have good technical skills—
for example, in programming lan-
guages—but are less equipped in other
aspects of software development, such
as working with stakeholders to gain
agreement on requirements.
1. Determine where you are: Work
out the current state of the endeavor.
2. Determine where to go: Decide
what to emphasize next and what the
objectives of the next iteration will be.
3. Determine how to get there: Agree
on the tasks the team needs to do to
achieve the objectives.
Determine Where the team
is using the Kernel
Let’s assume that Smith and his team
are six weeks into development. They
have provided an early demonstration
of the system to their stakeholders,
who are pleased and provide valuable
feedback. The system is not yet usable
by end users, however. You can use the
kernel to do this in a number of ways.
If you are using alpha state cards, then
you can do a walk-through as follows:
1. Lay out the cards for each alpha in
a row on a table with the first state on
the left and the final state on the right.
2. Walk through each state and ask
your team if you have achieved that
3. If the state is achieved, move that
figure 5. the team uses the alphas to determine the current states.