39
Metaphors for So-ware Development Ken Power [email protected] kenpower.ie/ XP2010

Metaphors for Software Development (XP2010)

Embed Size (px)

DESCRIPTION

The presentation slides from a talk I gave at XP2010 in Trondheim, Norway. Here are some metaphors that I find useful when describing software product development. In particular, they are useful for describing the basic principles of agile development and the lifecycle of a typical agile project.

Citation preview

Page 1: Metaphors for Software Development (XP2010)

Metaphors  for    

So-ware  Development  

Ken  Power  [email protected]  

kenpower.ie/  

XP2010  

Page 2: Metaphors for Software Development (XP2010)

WHAT  IS  SOFTWARE  DEVELOPMENT  LIKE?  

Page 3: Metaphors for Software Development (XP2010)

WHAT  IS  AGILE  SOFTWARE  DEVELOPMENT  LIKE?  

Page 4: Metaphors for Software Development (XP2010)

“A  METAPHOR  IS  AN  ANALOGY  BETWEEN  TWO  OBJECTS  OR  IDEAS,  CONVEYED  BY  THE  USE  OF  [ONE  SET  OF]  WORDS  INSTEAD  OF  ANOTHER.”  

Wikipedia:  

Page 5: Metaphors for Software Development (XP2010)

“A  FIGURE  OF  SPEECH  IN  WHICH  A  WORD  OR  PHRASE  THAT  ORDINARILY  DESIGNATES  ONE  THING  IS  USED  TO  DESIGNATE  ANOTHER,  THUS  MAKING  AN  IMPLICIT  COMPARISON”  

dicDonary.reference.com/  

Page 6: Metaphors for Software Development (XP2010)
Page 7: Metaphors for Software Development (XP2010)
Page 8: Metaphors for Software Development (XP2010)
Page 9: Metaphors for Software Development (XP2010)

“THE  POWER  OF  METAPHORS  IS  IN  THE  WAY  THAT  THEY  CHANGE  THE  SUBJECT  BY  BRINGING  NEW  THINKING  AND  IDEAS,  EXTENDING  AND  CHANGING  THE  WAY  THAT  A  PERSON  THINKS  ABOUT  SOMETHING.”  

Page 10: Metaphors for Software Development (XP2010)
Page 11: Metaphors for Software Development (XP2010)
Page 12: Metaphors for Software Development (XP2010)

“EACH  METAPHOR  GIVES  US  SOME  INSIGHT,  AND  TAKEN  TOGETHER  THEY  SHOW  WHAT  A  COMPLEX  CONCEPT  LEARNING  REALLY  IS.  NO  ONE  METAPHOR  IS  “CORRECT”,  BUT  EACH  REPRESENTS  A  DIFFERENT  UNDERSTANDING.”  

MulCple  Metaphors  for  Learning  by  Gary  Woodill    

In  “Learning  and  organiza3ons:  towards  cross-­‐metaphor  conversa3ons”  

Page 13: Metaphors for Software Development (XP2010)

BUT  WE  HAVE  ALL  THESE  ISSUES  IN  THE  SOFTWARE  BUSINESS  ….  

Page 14: Metaphors for Software Development (XP2010)

DEADLINES  

BUDGETS  

STAFFING  CHALLENGES  

NEW  FEATURE  REQUESTS  

DESIGN    CONSTRAINTS  

VALIDATING  THAT  IT  ALL  WORKS  

FIXED  DATES  INDIVIDUAL  CAPABILITY  

COLLABORATING  IN  GROUPS  

UNCLEAR  SPECIFICATIONS  

EVOLVING  REQUIREMENTS  

DELIVERING  A  COMPELLING  PRODUCT  

Page 15: Metaphors for Software Development (XP2010)

WHAT  MAKES  A  PRODUCT  COMPELLING?  

Page 16: Metaphors for Software Development (XP2010)

05:00 GMT

Monday May 24th 2010

Page 17: Metaphors for Software Development (XP2010)
Page 18: Metaphors for Software Development (XP2010)
Page 19: Metaphors for Software Development (XP2010)
Page 20: Metaphors for Software Development (XP2010)
Page 21: Metaphors for Software Development (XP2010)
Page 22: Metaphors for Software Development (XP2010)
Page 23: Metaphors for Software Development (XP2010)

features  of  jazz  improvisaDon  

•  ProvocaDve  competence:  Deliberate  efforts  to  interrupt  habit  paRerns    

•  Embracing  errors  as  a  source  of  learning    •  Shared  orientaDon  toward  minimal  structures  that  allow  maximum  flexibility    

•  Distributed  task:  conDnual  negoDaDon  and  dialogue  toward  dynamic  synchronizaDon    

•  Reliance  on  retrospecCve  sense-­‐making    •  "Hanging  out":  Membership  in  a  community  of  pracCce    

•  Taking  turns  soloing  and  supporDng  “Crea3vity  and  Improvisa3on  in  Jazz  and  Organiza3ons:  Implica3ons  for  Organiza3onal  Learning”  -­‐  Frank  J.  Barrec  "OrganizaCon  Science"  /  Vol  9,  No.5.  September-­‐October  1998  

Page 24: Metaphors for Software Development (XP2010)
Page 25: Metaphors for Software Development (XP2010)

ARTFUL  MAKING  PROPOSES  A  FRAMEWORK,  AN  “ENABLING  METAPHOR”,  FOR  DOING  AND  MANAGING  KNOWLEDGE  WORK.  

Arhul  Making  –  Ch.  1:  What’s  really  different  about  knowledge  work  

Page 26: Metaphors for Software Development (XP2010)
Page 27: Metaphors for Software Development (XP2010)
Page 28: Metaphors for Software Development (XP2010)

AS  BUSINESS  BECOMES  MORE  DEPENDENT  ON  KNOWLEDGE  TO  

CREATE  VALUE,  WORK  BECOMES  MORE  LIKE  ART.  

Arhul  Making  –  Ch.  1:  What’s  really  different  about  knowledge  work  

Page 29: Metaphors for Software Development (XP2010)

Concept  generaDon  

Product  planning  

Product  engineering  

Process  engineering  

ProducDon  process  

Product  

An  industrial  making  process  

Page 30: Metaphors for Software Development (XP2010)

Talk  with  customer  about  product  

Repeat  

Expose  customer  to  product  

Generate  Product  

ARTFUL  MAKING  IS  ITERATIVE  NOT  SEQUENTIAL  

Arhul  Making  

Page 31: Metaphors for Software Development (XP2010)

4  QUALITIES  OF  ARTFUL  MAKING  

Page 32: Metaphors for Software Development (XP2010)

RELEASE  

A  method  of  control  that  accepts  wide  variaDon  within  known  parameters.  Release  contrasts  with  Restraint,  the  usual  method  of  industrial  control.  

Page 33: Metaphors for Software Development (XP2010)

COLLABORATION  

The  quality  exhibited  by  conversaDon,  in  language  and  behaviour,  during  which  each  party,  released  from  vanity,  inhibiDon,  and  preconcepDons,  treats  the  contribuDons  of  other  parDes  as  material  to  make  with,  not  as  posiDons  to  argue  with,  so  that  new  and  unpredictable  ideas  emerge.  

Page 34: Metaphors for Software Development (XP2010)

ENSEMBLE  

The  quality  exhibited  by  the  work  of  a  group  dedicated  to  a  collaboraDon  in  which  individual  members  relinquish  sovereignty  over  their  work  and  thus  create  something  none  could  have  made  alone:  a  whole  greater  than  the  sum  of  its  parts.  

Page 35: Metaphors for Software Development (XP2010)

PLAY  

The  quality  exhibited  by  a  producDon  while  it  is  playing  for  an  audience;  or  the  quality  exhibited  by  interacDon  among  members  of  a  business  group,  and  ulDmately  between  the  group  and  the  customer.  

Page 36: Metaphors for Software Development (XP2010)

So[ware  Development   Play  Making  

IteraDve  Cycle   Product  build  and  test   Rehearsal  

Distributed,  independent,  simultaneous  invenDon  

Individual  developers  at  work  on  design  or  source  code  

Individual  actors  preparing  between  runs  

Unifying  acDon   A  product  build   A  rehearsal  run  

A  director  who  facilitates  coherent  chaos  

The  Scrum  Master  or  project  manager  

The  director  

Forum  for  conversaDon   MeeDngs,  technology-­‐based  collaboraDve  forums,  Daily  Standup,  IteraDon  Review,  Pair  Programming,    RetrospecDves,  …  

The  rehearsal  room  

Way  of  senng  structure   Code  holds  structure   Actors  enact  structure  

External  characterisDcs  of  Arhul  Making  in  Agile  So-ware  Development  and  Play  Making  (slightly  modified)  

Page 37: Metaphors for Software Development (XP2010)
Page 38: Metaphors for Software Development (XP2010)

TAKE  CONTROL  OF  YOUR  METAPHORS  NOW  AND  CREATE  A  NEW  WORLD  OF  POSSIBILITY,  RICHNESS,  WONDER,  JOY  AND  FULFILLMENT.  "LIFE  IS  PAINTING  A  PICTURE,  NOT  DOING  A  SUM."  -­‐  OLIVER  WENDELL  HOLMES,  JR.  

The  Power  of  Your  Metaphors  –  Enrique  MonDel  

Page 39: Metaphors for Software Development (XP2010)