$30 off During Our Annual Pro Sale. View Details »

Software is like Music

Software is like Music

Master Class at @U_tad and @telefonicaid describing what software developer and software development are

Ruben Gonzalez Blanco

September 11, 2014
Tweet

More Decks by Ruben Gonzalez Blanco

Other Decks in Technology

Transcript

  1. What  is  a  So*ware  Developer  
     
    @_rubengb  

    View Slide

  2. Wrong  Job  Title?  
    So*ware  Architect  
    So*ware  Engineer  
    Computer  Scien-st  
    Programmer   So*ware  Developer  

    View Slide

  3. Why  not  So*ware  Doctor?  

    View Slide

  4. What  is  a  So*ware  “Developer”?    
    A  personal  understanding  

    View Slide

  5. HW  calculaDon  power  is  higher  than  Humans  
    Picture:  from  Hans  Moravec  1997,  When  will  computer  hardware  match  the  human  brain?  
    hMp://www.transhumanist.com/volume1/moravec.htm    

    View Slide

  6. Computers  (hardware  +  so*ware)  
    have  become  Complex  systems    

    View Slide

  7. Complexity  leads  to  Uncertainty    
    Programing  the  machines  has  become  an  uncertain  acDvity  
    Idea/algorithm    must  be  coded  -­‐>  synthesis  and  Tested!  

    View Slide

  8. Observing  a  So*ware  Developer  

    View Slide

  9. Dennis  the  So*ware  Developer  

    View Slide

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

    View Slide

  11. Humm…Find  the  Differences  
    Problem  &    
    Coding  Idea  
    Code  
    Run  &  Test  
    Outcome  
    Programmer  
    Scene  &  
    PainDng  Idea  
    Paint    
    Review    
    Outcome  
    Painter  

    View Slide

  12. The  ArDst  conDnuous  flow  (ISRF)  
    IntenDon   RealizaDon  
    Feedback  
    Synthesis  
    ISRF  Cycle  

    View Slide

  13. The  ArDst  conDnuous  flow  (ISRF)  
    IntenDon   RealizaDon  
    Feedback  
    Synthesis  
    The  SW  Developer  
    ISRF  Cycle  

    View Slide

  14. Individuals  (So*ware  Developers)  use  ISRF  
    cycles  to  generate  working  so*ware(“art”)  
    IntenDon   RealizaDon  
    Feedback  
    Synthesis  

    View Slide

  15. Till  the  Desired  Working  SoGware  (art)  Emerges  
    Inten%on' Realiza%on'
    Feedback'
    Synthesis'
    Inten%on' Realiza%on'
    Feedback'
    Synthesis'
    Inten%on' Realiza%on'
    Feedback'
    Synthesis'
    Inten%on' Realiza%on'
    Feedback'
    Synthesis'
    Inten%on' Realiza%on'
    Feedback'
    Synthesis'
    Compile  Failed  
    Run  Failed  
    Test  Failed  
    Test  Passed  
    Enhance  Idea/Design  
    Test  Failed  
    Inten%on' Realiza%on'
    Feedback'
    Synthesis'
    Test  Passed  
    WORKING  SOFTWARE  
    Inten-onal  
    Emergent  
    Emergence  is  the  key  characterisDc  of  complex  systems.    

    View Slide

  16. In  some  sense  so*ware  development  
    is  a  kind  of  Art  or  Cra*  
    Problem  &    
    Programming  Idea  
    Code,  Run  &  Test  
    Review  
    Outcome  
    Programmer  
    Scene  &  
    PainDng  Idea  
    Paint    
    Review    
    Outcome  
    Painter  
    Digital  Experience  Creators   Visual  Experience  Creators  

    View Slide

  17. The  ArDst  aMributes  
    Knowledge    
    Mastery  
    Talent  
    MoDvaDon    
    CreaDvity  
    InspiraDon  
    Passion  
    Genius  
    The  SW  Developer  

    View Slide

  18. Art  vs  pure  Engineering  
    Human  
    Unpredictable    
    PracDces  
    Tacit  
    Planned  
    Process  
    Explicit  
    VS  
    Industrial  
    So*ware  Development  

    View Slide

  19. So*ware  Programming  is  not  like  pure  
    Engineering  

    View Slide

  20. So*ware  Programing  is  not  like  
    Building  ConstrucDon  

    View Slide

  21. So*ware  Programmers  are  not  like  
    ConstrucDon  Workers  

    View Slide

  22. Cra*ing  or  Engineering?  
    So*ware   Development   seems   to   be   closer   to  
    Cra*ing   and   ArDsDc   work   rather   than   pure  
    Engineering  work….    
    …but  some  good  pracDces  of  Engineering  
    disciplines  can  sDll  be  applied.  

    View Slide

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

    View Slide

  24. Looking  at  so*ware  from  a  different  
    perspecDve  trying  to  re-­‐understand  
    what  “So*ware  Development”  is  

    View Slide

  25. Perhaps  So*ware  is  like  Music  
    Structure  and  Dynamic  (-me)  dimensions  

    View Slide

  26. Computer  vs  Music  Player  

    View Slide

  27. Program  vs  Pentagram    

    View Slide

  28. Programming  vs  Composing  

    View Slide

  29. Running  a  Program  vs  Playing  Music  
    compiled  
    interpreted  

    View Slide

  30. So*ware  Programming,  like  music,  
    requires  deliberate  pracDce  

    View Slide

  31. Perhaps  Programming  So*ware  in  a  Team  is  like  Jazz  
    Original  Dixieland  Jass  Band  
    Melodies  are  improvised/created  
    on  top  of  a  shared  Harmony  
    created  by  a  composer  (so8ware  
    architect)  
    Everybody  is  a  Composer  
    The  Harmony  (architecture)    
    provides  consistency  

    View Slide

  32. New  Job  Dtle:  So*ware  Composer  

    View Slide

  33. ImplicaDons  
    •  So*ware  Composers  are  EssenDal  when  creaDng  products  and  services  
    based  on  so*ware  
    •  Pure  Engineering  PredicDve  processes  and  planning  do  not  apply  well  
    when  creaDng  so*ware    
    –  Is  it  agile  methods  the  answer?  (AdapDve  Management)  
    •  ArDsDc  beauty  in  both  how  the  so*ware  is  structured  and  dynamically  
    runs  is  important  and  should  be  consider  when  creaDng  so*ware  
    –  3  key  design  characterisDcs  to  look  for  :  
    •  conceptual  integrity,  high  cohesion,  low  coupling    
    •  CreaDvity,  Mastery,  Talent,    and  Knowledge  of  the  So*ware  Composers  
    are  key  for  succeeding  in  creaDng  so*ware  
    –  Could  it  be  outsourced?    

    View Slide

  34. View Slide