Slide 1

Slide 1 text

What  is  a  So*ware  Developer     @_rubengb  

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Why  not  So*ware  Doctor?  

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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    

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Observing  a  So*ware  Developer  

Slide 9

Slide 9 text

Dennis  the  So*ware  Developer  

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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.    

Slide 16

Slide 16 text

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  

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

So*ware  Programming  is  not  like  pure   Engineering  

Slide 20

Slide 20 text

So*ware  Programing  is  not  like   Building  ConstrucDon  

Slide 21

Slide 21 text

So*ware  Programmers  are  not  like   ConstrucDon  Workers  

Slide 22

Slide 22 text

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.  

Slide 23

Slide 23 text

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  

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Computer  vs  Music  Player  

Slide 27

Slide 27 text

Program  vs  Pentagram    

Slide 28

Slide 28 text

Programming  vs  Composing  

Slide 29

Slide 29 text

Running  a  Program  vs  Playing  Music   compiled   interpreted  

Slide 30

Slide 30 text

So*ware  Programming,  like  music,   requires  deliberate  pracDce  

Slide 31

Slide 31 text

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  

Slide 32

Slide 32 text

New  Job  Dtle:  So*ware  Composer  

Slide 33

Slide 33 text

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?    

Slide 34

Slide 34 text

No content