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

Ruben Gonzalez Blanco

September 11, 2014
Tweet

More Decks by Ruben Gonzalez Blanco

Other Decks in Technology

Transcript

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

    Computer  Scien-st   Programmer   So*ware  Developer  
  2. 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    
  3. Complexity  leads  to  Uncertainty     Programing  the  machines  has

     become  an  uncertain  acDvity   Idea/algorithm    must  be  coded  -­‐>  synthesis  and  Tested!  
  4. Observing  Dennis  coding   Problem  &     Coding  Idea

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

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

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

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

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

    PracDces   Tacit   Planned   Process   Explicit   VS   Industrial   So*ware  Development  
  12. 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.  
  13. 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  
  14. Looking  at  so*ware  from  a  different   perspecDve  trying  to

     re-­‐understand   what  “So*ware  Development”  is  
  15. 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  
  16. 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?