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  
    [email protected];d.es  
    Telefonica  Digital    
    Product  Development  and  Innova;on  
    By  being  aware  of  so.ware  

    View Slide

  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  

    View Slide

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

    View Slide

  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  

    View Slide

  5. So.ware  Development  Cliché  

    View Slide

  6. Dennis  the  So.ware  Developer  

    View Slide

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

    View Slide

  8. Leonard  the  Ar;st  

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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.  

    View Slide

  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  

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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  

    View Slide

  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  

    View Slide

  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  

    View Slide

  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  

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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)  

    View Slide

  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  

    View Slide

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

    View Slide

  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…  
     

    View Slide

  34. Have  Customers  in  the  Team  

    View Slide

  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  

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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”.    

    View Slide

  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  

    View Slide

  41. Treat  So.ware  Code  as  an  Asset  

    View Slide

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

    View Slide

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

    View Slide

  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/  

    View Slide

  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/  

    View Slide