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

Software is like Music

Software is like Music

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

53eaf4a8485500cb61099a1286e230e3?s=128

Ruben Gonzalez Blanco

September 11, 2014
Tweet

Transcript

  1. What  is  a  So*ware  Developer     @_rubengb  

  2. Wrong  Job  Title?   So*ware  Architect   So*ware  Engineer  

    Computer  Scien-st   Programmer   So*ware  Developer  
  3. Why  not  So*ware  Doctor?  

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

     
  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    
  6. Computers  (hardware  +  so*ware)   have  become  Complex  systems  

     
  7. Complexity  leads  to  Uncertainty     Programing  the  machines  has

     become  an  uncertain  acDvity   Idea/algorithm    must  be  coded  -­‐>  synthesis  and  Tested!  
  8. Observing  a  So*ware  Developer  

  9. Dennis  the  So*ware  Developer  

  10. Observing  Dennis  coding   Problem  &     Coding  Idea

      Code   Run  &  Test   Outcome   Programmer  
  11. Humm…Find  the  Differences   Problem  &     Coding  Idea

      Code   Run  &  Test   Outcome   Programmer   Scene  &   PainDng  Idea   Paint     Review     Outcome   Painter  
  12. The  ArDst  conDnuous  flow  (ISRF)   IntenDon   RealizaDon  

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

    Feedback   Synthesis   The  SW  Developer   ISRF  Cycle  
  14. Individuals  (So*ware  Developers)  use  ISRF   cycles  to  generate  working

     so*ware(“art”)   IntenDon   RealizaDon   Feedback   Synthesis  
  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.    
  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  
  17. The  ArDst  aMributes   Knowledge     Mastery   Talent

      MoDvaDon     CreaDvity   InspiraDon   Passion   Genius   The  SW  Developer  
  18. Art  vs  pure  Engineering   Human   Unpredictable    

    PracDces   Tacit   Planned   Process   Explicit   VS   Industrial   So*ware  Development  
  19. So*ware  Programming  is  not  like  pure   Engineering  

  20. So*ware  Programing  is  not  like   Building  ConstrucDon  

  21. So*ware  Programmers  are  not  like   ConstrucDon  Workers  

  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.  
  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  
  24. Looking  at  so*ware  from  a  different   perspecDve  trying  to

     re-­‐understand   what  “So*ware  Development”  is  
  25. Perhaps  So*ware  is  like  Music   Structure  and  Dynamic  (-me)

     dimensions  
  26. Computer  vs  Music  Player  

  27. Program  vs  Pentagram    

  28. Programming  vs  Composing  

  29. Running  a  Program  vs  Playing  Music   compiled   interpreted

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

  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  
  32. New  Job  Dtle:  So*ware  Composer  

  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?    
  34. None