How Software Learns v3

27
How So&ware Learns: What happens a&er so&ware is shipped Chris Miyachi SDM Entering Class 2000

Transcript of How Software Learns v3

Page 1: How Software Learns v3

How  So&ware  Learns:    What  happens  a&er  so&ware  is  shipped  

Chris  Miyachi  SDM  Entering  Class  2000  

Page 2: How Software Learns v3

Presenta6on  Outline  

•  So:ware  Architecture  versus  Building  Architecture  

•  Defini6ons  of  Architecture  •  Process  and  Flow  •  Building  for  Change  •  Conclusion  

Page 3: How Software Learns v3

Models  

•  “All  models  are  wrong,  some  are  useful”  – generally  aGributed  to  the  sta6s6cian  George  Box  

•  “All  buildings  are  predic6ons,  and  all  buildings  are  wrong”  – Stewart  Brand,  “How  Buildings  Learn”  video  (hGp://video.google.com/videoplay?docid=2283224496826631552&emb=1&hl=en  )  

Page 4: How Software Learns v3

Building  Architecture  

•  When  studying  building  architecture,  three  things  come  to  the  surface:  –   So:ware  designers  can  learn  a  lot  from  building  designers  

– So:ware  designers  and  building  designers  make  the  same  mistakes  

– Building  designers  can  learn  a  lot  from  so:ware  designers  

Page 5: How Software Learns v3

So:ware  Architecture  Defini6on  

•  So:ware  architecture  is  the  fundamental  organiza:on  of  a  system,  embodied  in  its  components,  their  rela:onships  to  each  other  and  the  environment,  and  the  principles  governing  its  design  and  evolu6on.    (IEEE  1471-­‐2000)  

Page 6: How Software Learns v3

6  

System  Architecture  Model  What  is  in  it?  

•  System  Architecture  should  contain  goals  /requirements  ar6facts,  and  structure  and  behavior  ar6facts  based  on  those  goals  [2]  

•  Unified  Modeling  Language  has  been  chosen  by  the  team  to  create  these  ar6facts:  –  Goals/Requirements:  Use  Cases  –  Structure:  Package  and  Class  Diagrams  –  Behavior:    Sequence,  State,  and  Collabora6on  Diagrams  

   

•  [2]  A Taxonomy of Decomposition Based on Structures, Behaviors, and Goals, Koopman, Design Theory and Methodology ’95

–  Paper from System Architecture Course in SDM Program at MIT

Page 7: How Software Learns v3

Building  Architecture  •  In  rela6on  to  buildings,  architecture  is  defined  as:  •  The  planning,  designing  and  construc<ng  form,  space  and  

ambience  that  reflect  func<onal,  technical,  social,  environmental,  and  aesthe<c  considera<ons.  It  requires  the  crea<ve  manipula<on  and  coordina<on  of  material,  technology,  light  and  shadow.    

•  Architecture  also  encompasses  the  pragma<c  aspects  of  realizing  buildings  and  structures,  including  scheduling,  cost  es<ma<ng  and  construc<on  administra<on.  

•   As  documenta<on  produced  by  architects,  typically  drawings,  plans  and  technical  specifica<ons,  architecture  defines  the  structure  and/or  behavior  of  a  building  or  any  other  kind  of  system  that  is  to  be  or  has  been  constructed.  

Page 8: How Software Learns v3

The  So:ware  Development  Process  

•  Waterfall  Lifecycle  

In  this  methodology,  all  requirement  analysis,  design,  and  architecture  are  done  up  front.    This  is  o:en  called  BDUF  (Big  Documenta6on  Up  Front)    

Page 9: How Software Learns v3

The  So:ware  Development  Process  

In  this  methodology,  requirements  analysis,  design,  and  architecture  are  done  each  itera6on.        A  final  system  is  complete  a:er  many  itera6ons.    Requirements,  design,  and  architecture  are  added  each  itera6on.        This  methodology  is  typically  part  of  lean    or  agile  so:ware  methodologies,  like  SCRUM.      

•   Itera6ve/Agile  

Page 10: How Software Learns v3

What  is  Agile  Development  /  Lean  So:ware  Development?  

•  In  2001,  a  group  of  developers  met  to  develop  the  Agile  Manifesto:  –  Individuals  and  interac6ons  over  processes  and  tools    

– Working  so:ware  over  comprehensive  documenta6on    

– Customer  collabora6on  over  contract  nego6a6on    – Responding  to  change  over  following  a  plan  

Page 11: How Software Learns v3

The  Building  Architecture  Process  

Page 12: How Software Learns v3

The  New  So:ware  Process  

Page 13: How Software Learns v3

Waterfall  Versus  Agile    

•  Agile:    no  decisions  need  to  be  made  up  front  •  Waterfall:    all  architectural  decisions  need  to  be  made  up  front  

•  Most  agree  that  there  is  a  combina6on  of  upfront  decisions  and  itera6ve  decisions  that  will  contribute  to  the  success  of  the  so:ware  architecture.      

Page 14: How Software Learns v3

Flow  

•  “Flow,  con6nual  flow,  con6nual  change,  con6nual  transforma6on”  – Rina  Swentzel,  Peublo  Indian  architectural  historian  

•  “Responding  to  change  over  following  a  plan  -­‐  focus  on  quick  responses  to  change  and  con6nuous  development.    – The  Agile  Manifesto  

Page 15: How Software Learns v3

Example:    The  Media  Lab  

Page 16: How Software Learns v3

Example:    Stata  Center  at  MIT  

Page 17: How Software Learns v3

Form  Follows  Func6on  

•  Form  ever  follows  func6on  –  1896,  Louis  Sullivan,  a  Chicago  high  rise  designer  

•  Three  of  the  principles  of  Agile  development  are  focused  on  change  –  Customer  sa6sfac6on  by  rapid  delivery  of  useful  so:ware  

– Welcome  changing  requirements,  even  late  in  development  

– Working  so:ware  is  delivered  frequently  (weeks  rather  than  months)  

Page 18: How Software Learns v3

2/6/12   18  

Requirements  and  Failure  $37B worth of DoD projects using 2167A

Required extensive rework to meet true

needs.20%

Never used. Egregiously

failed to meet needs.

46%

Jarzombek Study.

Failure attributed to use of waterfall.

Source:  www.objectmentor.com  

Page 19: How Software Learns v3

Building  For  Change  

•  Agile  and  Future  Maintenance  – O:en  not  considered  – Off-­‐shoring  

•  We  shape  our  buildings,  and  a:erwards  our  buildings  shape  us  (Winston  Churchill  )  – First  we  shape  our  buildings,  then  they  shape  us,  then  we  shape  then  again,  ad  infinitum  

Page 20: How Software Learns v3

Tradeoff  

•  Waterfall  is  easier  but  the  world  isn’t  sta6c  – Change  is  always  occurring  

•  Look  at  what  areas  rapidly  change  and  design  an  architecture  that  can  handle  high  change  in  that  area  of  the  system  

Page 21: How Software Learns v3

Façade    

Page 22: How Software Learns v3

So:ware  Example:    Interfaces  

Page 23: How Software Learns v3

2/6/12   23  

Long  Projects  Fail.  Project Success. 23,000 projects

0

5

10

15

20

25

30

35

40

45

6 9 12 18 24 36

Months

Per

cen

t su

cces

s

Source:  www.objectmentor.com  

Page 24: How Software Learns v3

What  Agile  Claims  C

ost o

f Cha

nge

Time

Page 25: How Software Learns v3

Cost  of  Fixing  So:ware  Bugs  

Page 26: How Software Learns v3

Conclusion  

•  Buildings  live  in  6me.  In  6me  we  learn  about  how  to  use  them.    

•  So:ware  also  evolves  in  6me.    – We  need  to  experience  our  so:ware    and  our  buildings  to  know  what  we  want  to  change.      

•  We  need  long  term  thinking  and  short  term  thinking  – Seminars  in  long  term  thinking:  hGp://longnow.org/seminars/    

Page 27: How Software Learns v3

About  Me  

•  Principal  Systems  Engineer  /  Architect  at  Xerox  Corpora6on  

•  MIT  SDM  graduate  (entering  class  of  2000)  •  Web  site:  hGp://home.comcast.net/~cmiyachi/default.html    

•  Blog  on  So:ware  Architecture:    hGp://abstractso:ware.blogspot.com/