this
video
we are
going
to
consider
process
improvement
in
the
context
of
software
development
projects,
and
how
Lean
principles
can
help
with
this.
1
A process
can
be
defined
as:
a
collection
of
activities
performed
to
achieve
an
end.
2
Notice
in particular
the
second
part
of
the
definition.
The
activities
in
a
process
are
‘performed
to
achieve
an
end’.
There
is
similarity
here
with
the
‘so
that’
value
statements
that
we
capture
in
user
stories.
In
the
context
of
a
software
development
project,
we
might
define
a
process
as
a
collection
of
user
stories,
and
the
user
stories
identify
the
value
in
each
activity
of
the
process.
3
Now
let’s
consider
process
improvement.
W e
can
define
this
as:
proactively
improving
a
process
by
identifying and
analysing
its
activities.
In
a
software
development
project,
when
we
capture
r equirements
as
user
stories
and
create
corresponding
designs,
we
are
already
identifying
and
analysing
the
activities
of
a
process.
If
we
use
this
knowledge
to
also
investigate
how
the
process
might
be
improved,
we
can
find
ways
to
help
our
customer
gain
more
value
from
their
software
development
project.
4
It’s
important
to
note
that
improving a
process
is
not
straightforward.
Firstly
we
need
to
gain
familiarity
with
the
process
and
ensure
we
clearly
understand
its
purpose.
W e
then
need
to
look
for
specific
opportunities
for
improvement,
which
can
often
be
difficult
to
find.
W e
need
to
involve
the
customer
in
process
improvement
work,
along
with
any
stakeholders
and
users
involved
in
the
process
we
hope
to
improve.
These
people
have
the
thorough
understanding
of
their
process
that
is
vital
for
identifying
useful
improvements.
The
r ole
of
a
software
development
team
should
be
to
facilitate
the
task
of
process
improvement,
and
to
provide
advice
in
cases
where
a
software
solution
might
enable
an
improvement.
5
Let’s
now consider
what
kind
of
improvements
to
a
process
might
be
useful.
Fortunately,
there
exists
a
series
of
Lean
principles
that
can
help
us
to
identify
opportunities
for
improvement.
These
principles
have
their
origins
in
the
Toyota
Production
System,
which
identified
two
important
fundamentals
for
process
improvement.
The
first
of
these,
continuous
improvement,
considers
the
importance
of
finding
facts
to
make
effective
decisions.
The
second,
respect
for
people,
considers
the
importance
of
seeking
to
understand
others
and
build
trust.
6
The
first
lean
principle
is:
identify
value.
W e
have
to
r ecognise
that
only
some
of
the
activities
in
a
typical
process
will
add
value
for
the
end
customer.
Note
that
we
are
considering
here
the
end
customer
of
the process
– this
might
not
be
the customer
of
your
software
development
project,
but
r ather
one
of
their
stakeholders
or
users.
We
identify
activities
that
add
no
value
so we
can
consider
whether
these
can
be
r emoved.
7
The
second
principle
is:
map
the
value
stream.
Here
we
look
for
the
series
of
activities
that
together
deliver
value
to
the
end
customer.
By
doing
so
can
we
identify
activities
outside
of
the
value
stream
so we
can
consider
whether
these
can
be
r emoved.
8
The
third principle
is:
create flow.
Having
identified wasteful
activities
that
do
not
create
value
and
deliver
it
to
the
end
customer,
we
can
consider
how
these
can
be
r emoved.
By
eliminating
wasteful
activities
we
can
help
value
‘flow’
to
the
end
customer
without
interruption
or
delay.
9
The
fourth
principle
is:
establish
pull.
Here we
consider
the
demand
for
value
from
the
end
customer,
and
how
they
can
‘pull’
value
from
the
process.
W e
can
identify
changes
to
the
value
stream
so
that
the
process
produces
what
the
end
customer
wants
when
they
want
it.
We
don’t
want
activities
to
be
carried
out
too
early
if
they
might
subsequently
not
be
r equired.
10
The
fifth
and
final
principle
is:
seek
perfection.
The
activities
in
a
process
are
linked, and
an
improvement
to
one
part
of
the
process
may
make
additional
wasteful
activities
visible
elsewhere.
We
should
apply
the
Lean
principles
repeatedly,
until
the
theoretical
point
of
perfection
where
every
activity
in
a
process
is
essential
for
creating
value
demanded
by
the
end
customer
and
delivering
it
to
them.
11
We can
apply
the
Lean
principles
not
just
to
a
customer ’s
process,
but
also
to
our
software
development
process.
We
should
ensure
that
our
software
development
activities
are
essential
for
creating
value
demanded
by
the
end
customer
and
delivering
it
to
them,
and
consider
practices
that
might
help
us
to
eliminate
wasteful
activities.
For
example,
many
software
development
processes
involve
an
initial
quality
assurance
activity
to
identify
bugs
following
implementation
of
a
feature.
This
is
followed
by
r epeated
quality
assurance
activities
to
ensure
that
the
bugs
have
been
fixed
correctly,
and
that
they
are
not
subsequently
r eintroduced
when
changes
are
made
to
the
feature.
W e
might
improve
this
process
by
deciding
that
during
the
initial
quality
assurance
activity
we
will
create
test
cases
for
any
identified
bugs
and
add
them
to
an
automated
test
suite.
The
test
suite
will
be
used
to
check
that
bugs
have
been
fixed
correctly,
and
to
carry
out
r egression
testing
during
implementation.
By
doing
this
we
can
eliminate
the
r epeated
quality
assurance
activities.
12
It’s
important
to
schedule
time
for
process
improvement,
otherwise it
can
be
easily
overlooked
when
you
are
busy
working
on
day
to
day
activities.
You
may
find
that
process
improvement
is
a
useful
topic
for
discussion
during
regular
r etrospectives.
If
you
need
inspiration
when
looking
for
opportunities
for
process
improvement,
it
might
be
useful
to
consider
the
Manifesto
for
A gile
Software
Development.
Can
you
use
customer
collaboration
practices
that
allow
you
to
eliminate
wasteful
contract
negotiation
activities?
Or
maybe
you
could
use
practices
for
responding
to
change
that
allow
you
to
eliminate
wasteful
planning
activities?
13