Slide 1

Slide 1 text

Dealing  with  So.ware  Development   Ruben  Gonzalez  Blanco   rubenb@;d.es   Telefonica  Digital     Product  Development  and  Innova;on   By  being  aware  of  so.ware  

Slide 2

Slide 2 text

Agenda   1.  Raising  Awareness   2.  Understanding  So.ware  Development   3.  Dealing  Effec;vely  with  So.ware   Following   are   a   set   of   personal   opinions   and   understandings   about   so.ware   development   and   so.ware     engineering   profession.   The   purpose  of  this  presenta;on  is  just  sharing  those  not  convincing  you   or  changing  your  mind.   DISCLAIMER  

Slide 3

Slide 3 text

1.  Raising  Awareness   A  view  about  so.ware  that  many   have  forgoPen  

Slide 4

Slide 4 text

Dealing  with  So.ware.  Evolu;on   So.ware  Crisis   So#ware  Engineering   No  Silver  Bullet   Agile  Manifesto   Cra#smanship   Manifesto   Cra.ing   Incremental   1960   1970   1980   1950   1990   2000   2010   Waterfall   Itera;ve   Rapid  Prototyping   CMM   Cra.ing   Predic;ve  Processes   Itera;ve  Processes   Agile  Methods   Scrum,  XP,  FDD,  DSDM,  OpenUP…   Spiral,  RAD,  Objectory,    RUP   Waterfall,  CMM,  ISO9000   Evolu;onary  

Slide 5

Slide 5 text

So.ware  Development  Cliché  

Slide 6

Slide 6 text

Dennis  the  So.ware  Developer  

Slide 7

Slide 7 text

Observing  Dennis  coding   Problem  &     Coding  Idea   Code   Run  &  Test   Outcome   Programmer  

Slide 8

Slide 8 text

Leonard  the  Ar;st  

Slide 9

Slide 9 text

Observing  Leonard  pain;ng   Scene  &   Pain;ng  Idea   Paint     Review     Outcome   Painter  

Slide 10

Slide 10 text

Humm…Find  the  Differences   Problem  &     Coding  Idea   Code   Run  &  Test   Outcome   Programmer   Scene  &   Pain;ng  Idea   Paint     Review     Outcome   Painter  

Slide 11

Slide 11 text

The  Ar;st  con;nuous  flow   Inten;on   Realiza;on   Feedback   Synthesis  

Slide 12

Slide 12 text

The  Ar;st  con;nuous  flow   Inten;on   Realiza;on   Feedback   Synthesis   The  SW  Developer  

Slide 13

Slide 13 text

The  Ar;st  aPributes   Knowledge     Mastery   Talent   Mo;va;on     Crea;vity   Inspira;on   Passion   Genius  

Slide 14

Slide 14 text

The  Ar;st  aPributes   Knowledge     Mastery   Talent   Mo;va;on     Crea;vity   Inspira;on   Passion   Genius   The  SW  Developer  

Slide 15

Slide 15 text

Art  vs  pure  Engineering   Human   Unpredictable     Prac;ces   Tacit   Planned   Process   Explicit   VS   Industrial  

Slide 16

Slide 16 text

Art  vs  pure  Engineering   Human   Unpredictable     Prac;ces   Tacit   Planned   Process   Explicit   VS   Industrial   So.ware  Development  

Slide 17

Slide 17 text

Cra.ing  or  Engineering?   So.ware   Development   seems   to   be   closer   to   Cra.ing   and   Ar;s;c   work   rather   than   pure   Engineering  work….     …but  some  good  prac;ces  of  Engineering   disciplines  can  s;ll  be  applied.  

Slide 18

Slide 18 text

Cra.  or  Art?     Just  a  maPer  of  genius  and  talent   So.ware  code  wriPen  by    humans  can  have  “beauty”  in  the  way  is  wriPen,  run,   structured  and  how  collaborate/  interact  between  its  parts  

Slide 19

Slide 19 text

2.  What  it  is  So.ware  and   So.ware  Development?   A  prac;;oner  view  

Slide 20

Slide 20 text

So.ware  Development  is  a  process  of   con;nuous  Knowledge  Transforma;on   Crea;ve   Human  

Slide 21

Slide 21 text

Knowledge  about  a  Problem  and  a   possible  Solu;on   Problem   Solu;on  

Slide 22

Slide 22 text

Based  on  Con;nuous  Synthesis   What   Human   Knowledge   transforma;on   How   Source   Code   Executable     SW   knowledge   Time   Learning  by  doing  

Slide 23

Slide 23 text

Both  Itera;ve  and  Incremental   Itera;mental   •  To  find  out  “what”  and  “how”   •  To  improve  the  System   •  To  release  func;onality  incrementally   •  To  gradually  add  parts  to  the  System  when  “what”  and  “how”  are  known   From  Jeff  PaPon  :  hPp://www.agileproductdesign.com/blog/dont_know_what_i_want.html   ITERATIVE   INCREMENTAL  

Slide 24

Slide 24 text

So.ware  emerges  and  grows   con;nuously  along  the  process  of   crea;on  (itera;ve  +  incremental)   System  “Specs”   Architecture   So#ware  System   Emergence  is  the  key  characteris;c  of  complex  systems.     Idea   Need   Problem   Inten;onal   Emergent  

Slide 25

Slide 25 text

Requires  Understanding  “What”  and   “How”  at  mul;ple  levels  of  detail   What   How   What   How   What   How   User    System   Component   What   How   What   How   What   How    Domain   Team   Individuals   MulCple  Levels   of  IteraCmental   Cycles    MulCple   Disciplines  

Slide 26

Slide 26 text

So.ware  Developers  work  at  the   highest  level  of  detail  and  complexity   Problem   Technical  SoluCon   User  Space   Level  of  Detail   So.ware  Space   Developers   work  here  

Slide 27

Slide 27 text

So.ware  Developers  are  Essen;al   They  do  the  most  complex  and  relevant  task  :       Transforming  Knowledge  into  Code   Source     Code   Executable     SW  

Slide 28

Slide 28 text

So.ware  is  a  form  of  Knowledge   Source   Code   Executable    SW   What   How   Problem   Solu;on  

Slide 29

Slide 29 text

3.  Dealing  effec;vely  with  So.ware   Pieces  of  advice  to  understand  agile   and  so.ware  cra.ing  prac;ces  

Slide 30

Slide 30 text

Work  in  small  Short  Steps     •  Each  Cycle  Delivering  “Working”  So.ware   –  Measure  of  Progress  =  Working  So.ware   •  Each  Cycle  Embraces  the  Change  naturally   Inten;on   Working  So.ware   IT1   IT2   Feedback     Team  Cycles  or  Sprints  (1-­‐4  weeks)   Value   Driven   Synthesis   •  New  Features   •  Changes   •  Enhancements   Adapt   IT3   •  New  Features   •  Changes   •  Enhancements   Feedback     Adapt   Feedback     Adapt   Incremental  +  Itera;ve  Development  Cycles  =  IteraCmental  Cycles   Individuals  Cycles  (minutes,  hours,  day)  

Slide 31

Slide 31 text

Be  Value  Driven   SOURCE  :  DSDM   BasedFrom  Dean  Leffingwell   Fixed   Scope   Time   Resources   Time   Scope   Plan     Driven   Value   Driven   The  Plan  creates  cost/ schedule  es1mates   feature  intent  &  commitment  to   deliver  the  max  value   Resources   Fixed   EsCmated   IntenConal  &   Max  Possible  

Slide 32

Slide 32 text

Grow-­‐Emerge  the  system   •  From  Idea  to  Realiza;on  based  on  con;nuous   synthesis-­‐feedback  and  adaptaCon  

Slide 33

Slide 33 text

Avoid  BUFs   •  Make  your  Design  and  Specifica;on  Emerge   – Plans,  Es;ma;ons  and  Designs  must  be  IntenConal   Big  Up  Front  Designs,  Specifica;ons,  Plans…    

Slide 34

Slide 34 text

Have  Customers  in  the  Team  

Slide 35

Slide 35 text

Blend  a  Mul;ple  Disciplines  in  a  Team   Collabora;ng  together   Domain  Experts   Ux  Designers   Business  Analysts   Product  Managers   Developers   Testers   System  Engineers   Deployment  Engineers   Architects   Human  Factors   Users   Foster  Open  Communica;ons  and  Collabora;ons  

Slide 36

Slide 36 text

Have  a  Crea;ve  Environment   Foster  and  aPract  Crea;ve  minds  

Slide 37

Slide 37 text

Have  the  Condi;ons  that  Inspire  Crea;vity     Crea;vity  needs  both  the  “connected  mind”  and  the  “crea;ve  pauses”  

Slide 38

Slide 38 text

Do  not  set  Goals,  create  Challenges   give  Direc;ons   Facilitate,  Support  and  Help    

Slide 39

Slide 39 text

Simplify  Essen;al  Complexity   Diminish  Accidental  Complexity*   EssenCal  complexity  is  caused  by  the  problem  to  be  solved,  and  nothing  can   remove  it.  Represents  the  difficulty  inherent  in  any  problem.   Accidental  complexity  grows  from  the  things  we  feel  we  must  build  to   mi;gate  essen;al  complexity.  Relates  to  problems  that  we  create  on  our   own  and  which  can  be  fixed.   *By  Neal  Ford  in  “97  things  every  architect  should  know”.    

Slide 40

Slide 40 text

Adapt  Methods  to  the  Team   Not  the  opposite   DSDM   FDD     Remember:  There  is  No  Silver  Bullet….  Fred  Brooks   Crystal   Pragma;c  Programming   Adap;ve  So.ware  Development  

Slide 41

Slide 41 text

Treat  So.ware  Code  as  an  Asset  

Slide 42

Slide 42 text

Have  a  Team  of  Talented  Individuals     inspired   crea;ve   passionate   team  player  

Slide 43

Slide 43 text

Conclusion   BE  SOFT-­‐AWARE   hPp://agilemanifesto.org/   hPp://manifesto.so.warecra.smanship.org/  

Slide 44

Slide 44 text

Agile  Manifesto   We  are  uncovering  bePer  ways  of  developing  so.ware  by  doing  it  and  helping  others  do  it.   Through  this  work  we  have  come  to  value:     Individuals  and  interacCons  over  processes  and  tools     Working  so#ware  over  comprehensive  documenta;on     Customer  collaboraCon  over  contract  nego;a;on     Responding  to  change  over  following  a  plan     That  is,  while  there  is  value  in  the  items  on  the  right,  we  value  the  items  on  the  le.  more   hPp://agilemanifesto.org/  

Slide 45

Slide 45 text

Cra.smanship  Manifesto   As   aspiring   So.ware   Cra.smen   we   are   raising   the   bar   of   professional   so.ware     development   by   prac;cing  it  and  helping  others  learn  the  cra..    Through  this  work  we  have  come  to  value:                                     That  is,  in  pursuit  of  the  items  on  the  le.  we  have  found  the  items  on  the  right  to  be  indispensable.   Not  only  working  so.ware,    but  also  well-­‐cra#ed  so#ware     Not  only  responding  to  change,    but  also  steadily  adding  value     Not  only  individuals  and  interac;ons,    but  also  a  community  of  professionals     Not  only  customer  collabora;on,     but  also  producCve  partnerships   hPp://manifesto.so.warecra.smanship.org/