architecture	
  in	
  so-ware	
  is	
  
wri/en	
  with	
  lowercase	
  ‘a’	
  
Ruben	
  Gonzalez	
  Blanco	
  
Nov12	
  DEVCON1	
  Telefonica	
  I+D	
  
Wrong	
  Job	
  Title?	
  
So-ware	
  Architect	
  
So-ware	
  Engineer	
  
Why	
  not	
  So-ware	
  Doctor?	
  
What	
  is	
  So-ware	
  Development?	
  	
  
A	
  personal	
  understanding	
  
So-ware	
  Development	
  is	
  a	
  process	
  of	
  
conOnuous	
  Knowledge	
  TransformaOon	
  	
  
Problem	
   SoluOon	
  
Knowledge	
  about	
  	
  
So-ware	
  Development	
  occurs	
  through	
  
ConOnuous	
  	
  Human	
  CreaOve	
  Cycles	
  
IntenOon	
   RealizaOon	
  
Feedback	
  
Synthesis	
  
Till	
  the	
  Desired	
  Working	
  So2ware	
  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	
  
IntenFonal	
  
Emergent	
  
Emergence	
  is	
  the	
  key	
  characterisOc	
  of	
  complex	
  systems.	
  	
  
In	
  some	
  sense	
  is	
  a	
  kind	
  of	
  Art	
  or	
  Cra-	
  
Problem	
  &	
  	
  
Programming	
  Idea	
  
Code,	
  Run	
  &	
  Test	
  
Review	
  
Outcome	
  
Programmer	
  
Scene	
  &	
  
PainOng	
  Idea	
  
Paint	
  	
  
Review	
  	
  
Outcome	
  
Painter	
  
Digital	
  Experience	
  Creators	
   Visual	
  Experience	
  Creators	
  
So-ware	
  Programming	
  is	
  not	
  like	
  pure	
  
Engineering	
  
So-ware	
  Programing	
  is	
  not	
  like	
  
Building	
  ConstrucOon	
  
So-ware	
  Programmers	
  are	
  not	
  like	
  
ConstrucOon	
  Workers	
  
Does	
  So-ware	
  Architecture	
  and	
  
So-ware	
  Architects	
  make	
  sense?	
  
In	
  fact,	
  there	
  is	
  not	
  a	
  single	
  definiOon	
  
of	
  So-ware	
  Architecture	
  and	
  the	
  role	
  
of	
  So-ware	
  Architect	
  
Looking	
  at	
  so-ware	
  from	
  a	
  different	
  
perspecOve	
  trying	
  to	
  re-­‐understand	
  
what	
  “So-ware	
  a-­‐rchitecture”	
  is	
  
Perhaps	
  So-ware	
  is	
  like	
  Music	
  
Computer	
  vs	
  Music	
  Player	
  
Program	
  vs	
  Pentagram	
  	
  
Programming	
  vs	
  Composing	
  
Running	
  a	
  Program	
  vs	
  Playing	
  Music	
  
compiled	
  
interpreted	
  
So-ware	
  Programming,	
  like	
  music,	
  
requires	
  deliberate	
  pracOce	
  
Harmony	
  and	
  Melody	
  
The	
  HARMONY	
  provides	
  the	
  base	
  	
  for	
  the	
  MELODY	
  
Harmony	
  is	
  transversal	
  to	
  the	
  music	
  Melodies	
  
Perhaps	
  Programming	
  So-ware	
  is	
  like	
  Jazz	
  
Original	
  Dixieland	
  Jass	
  Band	
  
Melodies	
  are	
  improvised/created	
  
on	
  top	
  of	
  a	
  shared	
  Harmony	
  
created	
  by	
  a	
  composer	
  
Everybody	
  is	
  a	
  Composer	
  
The	
  Harmony	
  provides	
  consistency	
  
So-ware	
  Architect	
  	
  =	
  So-ware	
  Harmonist	
  
	
  =	
  So-ware	
  Harmony	
  Composer	
  	
  
See	
  the	
  lower	
  case	
  ‘a’	
  
So-ware	
  Programmers	
  =	
  	
  
So-ware	
  Melody	
  Composers	
  
JAZZWARE	
  
So-ware	
  Architecture	
  =	
  So-ware	
  Harmony	
  
See	
  the	
  lower	
  case	
  ‘a’	
  
So-ware	
  Harmony	
  is	
  about	
  
Conceptual	
  Integrity	
  
Anywhere	
  you	
  look	
  in	
  your	
  system,	
  you	
  can	
  tell	
  that	
  the	
  design	
  is	
  part	
  of	
  the	
  same	
  overall	
  design	
  
style,	
  theme,	
  mood	
  …is	
  about	
  Design	
  and	
  Style	
  Consistency	
  in	
  all	
  dimensions	
  of	
  the	
  system	
  
Fed	
  Brooks:	
  
	
  “It	
  is	
  be>er	
  to	
  have	
  a	
  system...reflect	
  one	
  set	
  of	
  design	
  ideas,	
  than	
  to	
  have	
  one	
  
that	
  contains	
  many	
  good	
  but	
  independent	
  and	
  uncoordinated	
  ideas”	
  	
  
User	
  interface,	
  technologies,	
  coding	
  styles,	
  naming	
  convenFons,	
  directory	
  structures,	
  
classes,	
  components,	
  interfaces,	
  internal	
  and	
  external	
  behavior,	
  deployment…	
  
Conceptual	
  Integrity	
  tries	
  to	
  limit	
  the	
  system	
  complexity	
  
Conceptual	
  Integrity	
  simplifies	
  collaboraOon	
  when	
  creaOng	
  so-ware	
  
The	
  Mythical	
  Man-­‐Month	
  
Conceptual	
  Integrity	
  examples	
  
•  Unix	
  	
  
•  based	
  on	
  the	
  noOon	
  of	
  a	
  "file”	
  (e.g.	
  directories,	
  devices,	
  
filesystems,	
  named	
  pipes	
  and	
  sockets	
  are	
  all	
  sort-­‐of	
  files)	
  
•  Smalltalk	
  	
  
•  "everything	
  is	
  an	
  object",	
  and	
  the	
  small	
  set	
  of	
  other	
  
accompanying	
  principles	
  
•  SQL	
  	
  
•  "all	
  data	
  is	
  in	
  tables",	
  with	
  keys	
  and	
  constraints	
  
•  Lisp	
  	
  
•  "everything	
  is	
  a	
  list”	
  
h>p://c2.com/cgi/wiki?ConceptualIntegrity	
  
Not	
  having	
  	
  Conceptual	
  Integrity	
  leads	
  
to	
  chaoOc	
  systems	
  
MulOple	
  minds	
  working	
  in	
  complex	
  system	
  without	
  unity	
  and	
  conceptual	
  integrity	
  
7	
  Dimensions	
  
Process
Dimension
Deployment 	
  
Dimension
Logical	
  
	
  Dimension
External Dimension
Implementation
Dimension
Solu%on	
  Vision	
  
Classes,	
  Modules,	
  Design	
  	
  
Components,	
  Interfaces,	
  
Interac%ons	
  
Use	
  Cases	
  /	
  User	
  Stories	
  
UX	
  Guidelines	
  
Run%me	
  Processes,	
  Threads	
  	
  
Protocols,	
  	
  Inter-­‐process	
  
Communica%on,	
  Integra%ons	
  
Implementa%on	
  Structure	
  
and	
  Components	
  
Frameworks,	
  Libraries	
  
Base	
  Technologies,	
  
Programming	
  Languages
Infrastructure,	
  Hardware	
  and	
  
Network	
  Topology	
  
Data
Dimension
Environment
Dimension
Environments	
  
Tools	
  
Development	
  Process,	
  
Methods	
  and	
  Prac%ces	
  
Data	
  En%%es	
  
Data	
  Messages	
  
Logical	
  
Physical	
  
Achieving	
  Conceptual	
  Integrity	
  
FredBrooks:	
  	
  
"Conceptual	
  integrity	
  in	
  turn	
  dictates	
  that	
  the	
  design	
  must	
  proceed	
  from	
  one	
  mind,	
  
or	
  from	
  a	
  very	
  small	
  number	
  of	
  agreeing	
  resonant	
  minds"	
  
Aristocracy	
  vs	
  Democracy?	
  
“TradiOonal”	
  So-ware	
  Architect	
  
architect	
  derives	
  from	
  the	
  LaOn	
  architectus,	
  which	
  derives	
  from	
  the	
  Greek	
  
arkhitekton	
  (arkhi-­‐,	
  chief	
  +	
  tekton,	
  builder),	
  i.e.,	
  chief	
  builder	
  
Bad	
  So-ware	
  Architect	
  ConcepOon	
  
Be/er	
  So-ware	
  Architect	
  ConcepOon	
  
SOll	
  can	
  be	
  improved	
  
So-ware	
  Harmonist	
  =	
  Technical	
  Leader	
  
Services	
  
Modules	
  
Packages	
  
Classes	
  
Code	
  
Breadth	
  &	
  Depth	
  
Process
Dimension
Deployment (
Dimension
Logical(
(Dimension
External Dimension
Implementation
Dimension
Classes,'Modules,'Design''
Components,'Interfaces
Use'Cases'/'User'Stories'
UX'Guidelines'
Run=me'Processes,'Threads''
Protocols,''InterAprocess'
Communica=on'
Implementa=on'Structure'
and'Components'
Frameworks,'Libraries'
Base'Technologies,'
Programming'Languages
Infrastructure,'Hardware'and'
Network'Topology'
Data
Dimension
Environment
Dimension
Environments'
Tools'
Development'Process,'
Methods'and'Prac=ces'
Data'En==es'
Data'Messages'
7	
  Dimensions
So-ware	
  Harmonist	
  =	
  Technical	
  Leader	
  
or	
  Development	
  Leader	
  
•  Is	
  able	
  to	
  compose	
  and	
  play	
  So-ware	
  	
  
•  is	
  hands	
  on	
  
	
  
•  Guides,	
  Coaches	
  and	
  Leads	
  other	
  So-ware	
  Composers	
  
•  is	
  a	
  reference	
  
	
  
So-ware	
  Harmonist	
  =	
  Technical	
  
Leader	
  or	
  Development	
  Leader	
  
•  Keeps	
  Conceptual	
  Integrity	
  and	
  Unity	
  across	
  the	
  system	
  
and	
  teams,	
  while	
  limiOng	
  complexity	
  
	
  
•  Retains	
  the	
  final	
  say	
  in	
  technical	
  disputes	
  or	
  arguments	
  within	
  
the	
  team(s)	
  
Small	
  teams	
  with	
  resonant	
  minds	
  could	
  not	
  need	
  an	
  
specific	
  tech	
  leader	
  
ElaboraOng	
  So-ware	
  Harmony	
  
From	
  IntenOonal	
  to	
  Emerging	
  
Initial team
Agile Project Kickoff
Management team
Architecture team
time
Initial project
team
Prototyping team
I1 I2 I3
Initial team
Agile Project Kickoff
Management team
Architecture team
time
Initial project
team
Prototyping team
I1 I2 I3
Feature 1 Team
Feature2 Team
Infraestructure Team
I4 I5
Prototyping team
•  IntenOonal	
  harmony	
  (architecture)	
  	
  is	
  explicitly	
  idenOfied	
  and	
  then	
  implemented	
  	
  
	
  
•  Accidental	
  harmony	
  (architecture)	
  emerges	
  from	
  the	
  mulOtude	
  of	
  individual	
  design	
  
decisions	
  that	
  occur	
  during	
  development,	
  only	
  a-er	
  which	
  can	
  we	
  name	
  that	
  
architecture	
  
Process
Dimension
Deployment (
Dimension
Logical(
(Dimension
External Dimension
Implementation
Dimension
Classes,'Modules,'Design''
Components,'Interfaces
Use'Cases'/'User'Stories'
UX'Guidelines'
Run=me'Processes,'Threads''
Protocols,''InterAprocess'
Communica=on'
Implementa=on'Structure'
and'Components'
Frameworks,'Libraries'
Base'Technologies,'
Programming'Languages
Infrastructure,'Hardware'and'
Network'Topology'
Data
Dimension
Environment
Dimension
Environments'
Tools'
Development'Process,'
Methods'and'Prac=ces'
Data'En==es'
Data'Messages'
INTENTIONAL	
  
EMERGENT	
  
GROWING	
  
So-ware	
  Harmony(architecture)	
  is	
  
Elaborated,	
  Built,	
  Used	
  and	
  Executed	
  
Architecture=Harmony	
  is	
  	
  created	
  as	
  set	
  of	
  subopOmal	
  design	
  
decisions	
  that	
  can	
  be	
  re-­‐factor	
  later	
  on	
  
SP1 SP2 SP3 SP4 SP5 SP6 SP7 SP8Sprint0 SP9
Building	
  the	
  Harmony	
   Using	
   Building	
   …..Using	
  
IntenOonal	
  
Emergent	
  
IntenOonal	
  
Emergent	
  
The	
  Dilemma	
  
Solu%on	
  :	
  Assuring	
  Conceptual	
  Integrity	
  	
  via	
  Capacity	
  Alloca%on	
  to	
  architecture	
  =	
  Harmony	
  
Source:	
  	
  Dean	
  Leffinweel	
  ,	
  h>p://scaledagileframework.com/guidance/assuring-­‐architectural-­‐integrity-­‐via-­‐capacity-­‐
allocaFon/	
  
Desired	
  A/ributes	
  of	
  a	
  So-ware	
  Work	
  
High	
  Cohesion	
  
	
  each	
  part/element	
  is	
  narrowed	
  focused	
  in	
  its	
  primary	
  task	
  
	
  
Low	
  Coupling	
  
	
  each	
  part	
  is	
  self-­‐contained/orthogonal	
  achieved	
  thru	
  
separaOon	
  of	
  concerns	
  and	
  encapsulaOon	
  
	
  
Conceptual	
  Integrity	
  
	
  there	
  is	
  a	
  consistent	
  design*	
  and	
  style	
  across	
  all	
  so-ware	
  
dimensions	
  
(*)	
  programming	
  is	
  design	
  
Source:	
  “The	
  Art	
  in	
  Computer	
  Programming”,	
  By	
  Andrew	
  Hunt	
  and	
  David	
  Thomas	
  
There	
  is	
  no	
  silver	
  bullet	
  
There	
  is	
  no	
  single	
  correct	
  architecture	
  and	
  no	
  single	
  “right	
  answer”.	
  
JAZZWARE	
  
Q	
  &	
  A	
  

Software Architecture is written with lowercase a

  • 1.
    architecture  in  so-ware  is   wri/en  with  lowercase  ‘a’   Ruben  Gonzalez  Blanco   Nov12  DEVCON1  Telefonica  I+D  
  • 2.
    Wrong  Job  Title?   So-ware  Architect   So-ware  Engineer  
  • 3.
  • 4.
    What  is  So-ware  Development?     A  personal  understanding  
  • 5.
    So-ware  Development  is  a  process  of   conOnuous  Knowledge  TransformaOon     Problem   SoluOon   Knowledge  about    
  • 6.
    So-ware  Development  occurs  through   ConOnuous    Human  CreaOve  Cycles   IntenOon   RealizaOon   Feedback   Synthesis  
  • 7.
    Till  the  Desired  Working  So2ware  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   IntenFonal   Emergent   Emergence  is  the  key  characterisOc  of  complex  systems.    
  • 8.
    In  some  sense  is  a  kind  of  Art  or  Cra-   Problem  &     Programming  Idea   Code,  Run  &  Test   Review   Outcome   Programmer   Scene  &   PainOng  Idea   Paint     Review     Outcome   Painter   Digital  Experience  Creators   Visual  Experience  Creators  
  • 9.
    So-ware  Programming  is  not  like  pure   Engineering  
  • 10.
    So-ware  Programing  is  not  like   Building  ConstrucOon  
  • 11.
    So-ware  Programmers  are  not  like   ConstrucOon  Workers  
  • 12.
    Does  So-ware  Architecture  and   So-ware  Architects  make  sense?  
  • 13.
    In  fact,  there  is  not  a  single  definiOon   of  So-ware  Architecture  and  the  role   of  So-ware  Architect  
  • 14.
    Looking  at  so-ware  from  a  different   perspecOve  trying  to  re-­‐understand   what  “So-ware  a-­‐rchitecture”  is  
  • 15.
    Perhaps  So-ware  is  like  Music  
  • 16.
  • 17.
  • 18.
  • 19.
    Running  a  Program  vs  Playing  Music   compiled   interpreted  
  • 20.
    So-ware  Programming,  like  music,   requires  deliberate  pracOce  
  • 21.
    Harmony  and  Melody   The  HARMONY  provides  the  base    for  the  MELODY   Harmony  is  transversal  to  the  music  Melodies  
  • 22.
    Perhaps  Programming  So-ware  is  like  Jazz   Original  Dixieland  Jass  Band   Melodies  are  improvised/created   on  top  of  a  shared  Harmony   created  by  a  composer   Everybody  is  a  Composer   The  Harmony  provides  consistency  
  • 23.
    So-ware  Architect    =  So-ware  Harmonist    =  So-ware  Harmony  Composer     See  the  lower  case  ‘a’   So-ware  Programmers  =     So-ware  Melody  Composers   JAZZWARE   So-ware  Architecture  =  So-ware  Harmony   See  the  lower  case  ‘a’  
  • 24.
    So-ware  Harmony  is  about   Conceptual  Integrity   Anywhere  you  look  in  your  system,  you  can  tell  that  the  design  is  part  of  the  same  overall  design   style,  theme,  mood  …is  about  Design  and  Style  Consistency  in  all  dimensions  of  the  system   Fed  Brooks:    “It  is  be>er  to  have  a  system...reflect  one  set  of  design  ideas,  than  to  have  one   that  contains  many  good  but  independent  and  uncoordinated  ideas”     User  interface,  technologies,  coding  styles,  naming  convenFons,  directory  structures,   classes,  components,  interfaces,  internal  and  external  behavior,  deployment…   Conceptual  Integrity  tries  to  limit  the  system  complexity   Conceptual  Integrity  simplifies  collaboraOon  when  creaOng  so-ware   The  Mythical  Man-­‐Month  
  • 25.
    Conceptual  Integrity  examples   •  Unix     •  based  on  the  noOon  of  a  "file”  (e.g.  directories,  devices,   filesystems,  named  pipes  and  sockets  are  all  sort-­‐of  files)   •  Smalltalk     •  "everything  is  an  object",  and  the  small  set  of  other   accompanying  principles   •  SQL     •  "all  data  is  in  tables",  with  keys  and  constraints   •  Lisp     •  "everything  is  a  list”   h>p://c2.com/cgi/wiki?ConceptualIntegrity  
  • 26.
    Not  having    Conceptual  Integrity  leads   to  chaoOc  systems   MulOple  minds  working  in  complex  system  without  unity  and  conceptual  integrity  
  • 27.
    7  Dimensions   Process Dimension Deployment   Dimension Logical    Dimension External Dimension Implementation Dimension Solu%on  Vision   Classes,  Modules,  Design     Components,  Interfaces,   Interac%ons   Use  Cases  /  User  Stories   UX  Guidelines   Run%me  Processes,  Threads     Protocols,    Inter-­‐process   Communica%on,  Integra%ons   Implementa%on  Structure   and  Components   Frameworks,  Libraries   Base  Technologies,   Programming  Languages Infrastructure,  Hardware  and   Network  Topology   Data Dimension Environment Dimension Environments   Tools   Development  Process,   Methods  and  Prac%ces   Data  En%%es   Data  Messages   Logical   Physical  
  • 28.
    Achieving  Conceptual  Integrity   FredBrooks:     "Conceptual  integrity  in  turn  dictates  that  the  design  must  proceed  from  one  mind,   or  from  a  very  small  number  of  agreeing  resonant  minds"   Aristocracy  vs  Democracy?  
  • 29.
    “TradiOonal”  So-ware  Architect   architect  derives  from  the  LaOn  architectus,  which  derives  from  the  Greek   arkhitekton  (arkhi-­‐,  chief  +  tekton,  builder),  i.e.,  chief  builder  
  • 30.
  • 31.
    Be/er  So-ware  Architect  ConcepOon   SOll  can  be  improved  
  • 32.
    So-ware  Harmonist  =  Technical  Leader   Services   Modules   Packages   Classes   Code   Breadth  &  Depth   Process Dimension Deployment ( Dimension Logical( (Dimension External Dimension Implementation Dimension Classes,'Modules,'Design'' Components,'Interfaces Use'Cases'/'User'Stories' UX'Guidelines' Run=me'Processes,'Threads'' Protocols,''InterAprocess' Communica=on' Implementa=on'Structure' and'Components' Frameworks,'Libraries' Base'Technologies,' Programming'Languages Infrastructure,'Hardware'and' Network'Topology' Data Dimension Environment Dimension Environments' Tools' Development'Process,' Methods'and'Prac=ces' Data'En==es' Data'Messages' 7  Dimensions
  • 33.
    So-ware  Harmonist  =  Technical  Leader   or  Development  Leader   •  Is  able  to  compose  and  play  So-ware     •  is  hands  on     •  Guides,  Coaches  and  Leads  other  So-ware  Composers   •  is  a  reference    
  • 34.
    So-ware  Harmonist  =  Technical   Leader  or  Development  Leader   •  Keeps  Conceptual  Integrity  and  Unity  across  the  system   and  teams,  while  limiOng  complexity     •  Retains  the  final  say  in  technical  disputes  or  arguments  within   the  team(s)   Small  teams  with  resonant  minds  could  not  need  an   specific  tech  leader  
  • 35.
  • 36.
    From  IntenOonal  to  Emerging   Initial team Agile Project Kickoff Management team Architecture team time Initial project team Prototyping team I1 I2 I3 Initial team Agile Project Kickoff Management team Architecture team time Initial project team Prototyping team I1 I2 I3 Feature 1 Team Feature2 Team Infraestructure Team I4 I5 Prototyping team •  IntenOonal  harmony  (architecture)    is  explicitly  idenOfied  and  then  implemented       •  Accidental  harmony  (architecture)  emerges  from  the  mulOtude  of  individual  design   decisions  that  occur  during  development,  only  a-er  which  can  we  name  that   architecture   Process Dimension Deployment ( Dimension Logical( (Dimension External Dimension Implementation Dimension Classes,'Modules,'Design'' Components,'Interfaces Use'Cases'/'User'Stories' UX'Guidelines' Run=me'Processes,'Threads'' Protocols,''InterAprocess' Communica=on' Implementa=on'Structure' and'Components' Frameworks,'Libraries' Base'Technologies,' Programming'Languages Infrastructure,'Hardware'and' Network'Topology' Data Dimension Environment Dimension Environments' Tools' Development'Process,' Methods'and'Prac=ces' Data'En==es' Data'Messages' INTENTIONAL   EMERGENT   GROWING  
  • 37.
    So-ware  Harmony(architecture)  is   Elaborated,  Built,  Used  and  Executed   Architecture=Harmony  is    created  as  set  of  subopOmal  design   decisions  that  can  be  re-­‐factor  later  on   SP1 SP2 SP3 SP4 SP5 SP6 SP7 SP8Sprint0 SP9 Building  the  Harmony   Using   Building   …..Using   IntenOonal   Emergent   IntenOonal   Emergent  
  • 38.
    The  Dilemma   Solu%on  :  Assuring  Conceptual  Integrity    via  Capacity  Alloca%on  to  architecture  =  Harmony   Source:    Dean  Leffinweel  ,  h>p://scaledagileframework.com/guidance/assuring-­‐architectural-­‐integrity-­‐via-­‐capacity-­‐ allocaFon/  
  • 39.
    Desired  A/ributes  of  a  So-ware  Work   High  Cohesion    each  part/element  is  narrowed  focused  in  its  primary  task     Low  Coupling    each  part  is  self-­‐contained/orthogonal  achieved  thru   separaOon  of  concerns  and  encapsulaOon     Conceptual  Integrity    there  is  a  consistent  design*  and  style  across  all  so-ware   dimensions   (*)  programming  is  design   Source:  “The  Art  in  Computer  Programming”,  By  Andrew  Hunt  and  David  Thomas  
  • 40.
    There  is  no  silver  bullet   There  is  no  single  correct  architecture  and  no  single  “right  answer”.   JAZZWARE  
  • 41.