Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dealing with Software Development

Dealing with Software Development

trying to understand software development, before entering the agile grounds to deal effectively with software

OIPD Conference Telefonica O2 UK 2011

Ruben Gonzalez Blanco

December 15, 2011
Tweet

More Decks by Ruben Gonzalez Blanco

Other Decks in Programming

Transcript

  1. Dealing  with  So.ware  Development   Ruben  Gonzalez  Blanco   rubenb@;d.es

      Telefonica  Digital     Product  Development  and  Innova;on   By  being  aware  of  so.ware  
  2. 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  
  3. 1.  Raising  Awareness   A  view  about  so.ware  that  many

      have  forgoPen  
  4. 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  
  5. So.ware  Development  Cliché  

  6. Dennis  the  So.ware  Developer  

  7. Observing  Dennis  coding   Problem  &     Coding  Idea

      Code   Run  &  Test   Outcome   Programmer  
  8. Leonard  the  Ar;st  

  9. Observing  Leonard  pain;ng   Scene  &   Pain;ng  Idea  

    Paint     Review     Outcome   Painter  
  10. Humm…Find  the  Differences   Problem  &     Coding  Idea

      Code   Run  &  Test   Outcome   Programmer   Scene  &   Pain;ng  Idea   Paint     Review     Outcome   Painter  
  11. The  Ar;st  con;nuous  flow   Inten;on   Realiza;on   Feedback

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

      Synthesis   The  SW  Developer  
  13. The  Ar;st  aPributes   Knowledge     Mastery   Talent

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

      Mo;va;on     Crea;vity   Inspira;on   Passion   Genius   The  SW  Developer  
  15. Art  vs  pure  Engineering   Human   Unpredictable    

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

    Prac;ces   Tacit   Planned   Process   Explicit   VS   Industrial   So.ware  Development  
  17. 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.  
  18. 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  
  19. 2.  What  it  is  So.ware  and   So.ware  Development?  

    A  prac;;oner  view  
  20. So.ware  Development  is  a  process  of   con;nuous  Knowledge  Transforma;on

      Crea;ve   Human  
  21. Knowledge  about  a  Problem  and  a   possible  Solu;on  

    Problem   Solu;on  
  22. Based  on  Con;nuous  Synthesis   What   Human   Knowledge

      transforma;on   How   Source   Code   Executable     SW   knowledge   Time   Learning  by  doing  
  23. 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  
  24. 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  
  25. 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  
  26. 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  
  27. So.ware  Developers  are  Essen;al   They  do  the  most  complex

     and  relevant  task  :       Transforming  Knowledge  into  Code   Source     Code   Executable     SW  
  28. So.ware  is  a  form  of  Knowledge   Source   Code

      Executable    SW   What   How   Problem   Solu;on  
  29. 3.  Dealing  effec;vely  with  So.ware   Pieces  of  advice  to

     understand  agile   and  so.ware  cra.ing  prac;ces  
  30. 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)  
  31. 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  
  32. Grow-­‐Emerge  the  system   •  From  Idea  to  Realiza;on  based

     on  con;nuous   synthesis-­‐feedback  and  adaptaCon  
  33. 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…    
  34. Have  Customers  in  the  Team  

  35. 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  
  36. Have  a  Crea;ve  Environment   Foster  and  aPract  Crea;ve  minds

     
  37. Have  the  Condi;ons  that  Inspire  Crea;vity     Crea;vity  needs

     both  the  “connected  mind”  and  the  “crea;ve  pauses”  
  38. Do  not  set  Goals,  create  Challenges   give  Direc;ons  

    Facilitate,  Support  and  Help    
  39. 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”.    
  40. 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  
  41. Treat  So.ware  Code  as  an  Asset  

  42. Have  a  Team  of  Talented  Individuals     inspired  

    crea;ve   passionate   team  player  
  43. Conclusion   BE  SOFT-­‐AWARE   hPp://agilemanifesto.org/   hPp://manifesto.so.warecra.smanship.org/  

  44. 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/  
  45. 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/