Vous êtes sur la page 1sur 13

In

 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

Vous aimerez peut-être aussi