SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
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	
  

Mais conteúdo relacionado

Destaque

The Object Oriented Paradigm in perspective
The Object Oriented Paradigm in perspectiveThe Object Oriented Paradigm in perspective
The Object Oriented Paradigm in perspectiveRuben Gonzalez Blanco
 
Hyper Agylity - way of working based on hackathons
Hyper Agylity -  way of working based on hackathonsHyper Agylity -  way of working based on hackathons
Hyper Agylity - way of working based on hackathonsRuben Gonzalez Blanco
 
Basics of AB testing in online products
Basics of AB testing in online productsBasics of AB testing in online products
Basics of AB testing in online productsAshish Dua
 
20 top AB testing mistakes and how to avoid them
20 top AB testing mistakes and how to avoid them20 top AB testing mistakes and how to avoid them
20 top AB testing mistakes and how to avoid themCraig Sullivan
 
Widemile and Microsoft Multivariate Testing Case Study
Widemile and Microsoft Multivariate Testing Case StudyWidemile and Microsoft Multivariate Testing Case Study
Widemile and Microsoft Multivariate Testing Case StudyWidemile
 
A/B Testing - In data we trust
A/B Testing - In data we trustA/B Testing - In data we trust
A/B Testing - In data we trustPedro Marques
 
Bunnyweather Presents: Bunny's Favorite Things Slideshare
Bunnyweather Presents: Bunny's Favorite Things SlideshareBunnyweather Presents: Bunny's Favorite Things Slideshare
Bunnyweather Presents: Bunny's Favorite Things SlideshareMrs Bunnyweather
 
Asia Pricing & Revenue Management Summit 2016
Asia Pricing & Revenue Management Summit 2016Asia Pricing & Revenue Management Summit 2016
Asia Pricing & Revenue Management Summit 2016Joyce Lee
 
guidelinesmeasuringpopulation
guidelinesmeasuringpopulationguidelinesmeasuringpopulation
guidelinesmeasuringpopulationVelma Lopez
 
Tpf oracle success_story
Tpf oracle success_storyTpf oracle success_story
Tpf oracle success_storyJacques Kostic
 
Resume john ayad 2015
Resume john ayad 2015Resume john ayad 2015
Resume john ayad 2015John Ayad
 
Top 8 hidden handy features of word press
Top 8 hidden handy features of word pressTop 8 hidden handy features of word press
Top 8 hidden handy features of word pressJohn057
 
NEW_PORTO 2016
NEW_PORTO 2016NEW_PORTO 2016
NEW_PORTO 2016ida adi
 

Destaque (19)

The Object Oriented Paradigm in perspective
The Object Oriented Paradigm in perspectiveThe Object Oriented Paradigm in perspective
The Object Oriented Paradigm in perspective
 
Hyper Agylity - way of working based on hackathons
Hyper Agylity -  way of working based on hackathonsHyper Agylity -  way of working based on hackathons
Hyper Agylity - way of working based on hackathons
 
Basics of AB testing in online products
Basics of AB testing in online productsBasics of AB testing in online products
Basics of AB testing in online products
 
20 top AB testing mistakes and how to avoid them
20 top AB testing mistakes and how to avoid them20 top AB testing mistakes and how to avoid them
20 top AB testing mistakes and how to avoid them
 
Widemile and Microsoft Multivariate Testing Case Study
Widemile and Microsoft Multivariate Testing Case StudyWidemile and Microsoft Multivariate Testing Case Study
Widemile and Microsoft Multivariate Testing Case Study
 
A/B Testing - In data we trust
A/B Testing - In data we trustA/B Testing - In data we trust
A/B Testing - In data we trust
 
Sholat sunah
Sholat sunahSholat sunah
Sholat sunah
 
Maria gonzalez
Maria gonzalezMaria gonzalez
Maria gonzalez
 
Bunnyweather Presents: Bunny's Favorite Things Slideshare
Bunnyweather Presents: Bunny's Favorite Things SlideshareBunnyweather Presents: Bunny's Favorite Things Slideshare
Bunnyweather Presents: Bunny's Favorite Things Slideshare
 
Asia Pricing & Revenue Management Summit 2016
Asia Pricing & Revenue Management Summit 2016Asia Pricing & Revenue Management Summit 2016
Asia Pricing & Revenue Management Summit 2016
 
guidelinesmeasuringpopulation
guidelinesmeasuringpopulationguidelinesmeasuringpopulation
guidelinesmeasuringpopulation
 
Tpf oracle success_story
Tpf oracle success_storyTpf oracle success_story
Tpf oracle success_story
 
Bab 2
Bab 2Bab 2
Bab 2
 
Currículo - Jones Cansi - Port
Currículo - Jones Cansi - PortCurrículo - Jones Cansi - Port
Currículo - Jones Cansi - Port
 
Resume john ayad 2015
Resume john ayad 2015Resume john ayad 2015
Resume john ayad 2015
 
Top 8 hidden handy features of word press
Top 8 hidden handy features of word pressTop 8 hidden handy features of word press
Top 8 hidden handy features of word press
 
NEW_PORTO 2016
NEW_PORTO 2016NEW_PORTO 2016
NEW_PORTO 2016
 
Hubnutí v praxi
Hubnutí v praxiHubnutí v praxi
Hubnutí v praxi
 
phd_StevenDevos
phd_StevenDevosphd_StevenDevos
phd_StevenDevos
 

Semelhante a Software Architecture is written with lowercase a

Are Agile Projects Doomed to Half-Baked Design?
Are Agile Projects Doomed to Half-Baked Design?Are Agile Projects Doomed to Half-Baked Design?
Are Agile Projects Doomed to Half-Baked Design?theinfonaut
 
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...DevDay.org
 
Getting Started with Architecture Decision Records
Getting Started with Architecture Decision RecordsGetting Started with Architecture Decision Records
Getting Started with Architecture Decision RecordsMichael Keeling
 
Enterprise Design and the Future of Enterprise Architecture
Enterprise Design and the Future of Enterprise ArchitectureEnterprise Design and the Future of Enterprise Architecture
Enterprise Design and the Future of Enterprise ArchitectureJohn Gøtze
 
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Wey Wey Web
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
Agiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego FontdevilaAgiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego FontdevilaAgiles2009
 
Designer collaboration (from Cambridge Usability Group Unconference 2019)
Designer collaboration (from Cambridge Usability Group Unconference 2019)Designer collaboration (from Cambridge Usability Group Unconference 2019)
Designer collaboration (from Cambridge Usability Group Unconference 2019)Neil Turner
 
4 Steps to Start a Design System
4 Steps to Start a Design System 4 Steps to Start a Design System
4 Steps to Start a Design System Matthieu Lerat
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven designRick van der Arend
 
DevOps(1) : What's DevOps - (MOSG)
DevOps(1) : What's DevOps - (MOSG)DevOps(1) : What's DevOps - (MOSG)
DevOps(1) : What's DevOps - (MOSG)Soshi Nemoto
 
A Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UXA Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UXVahid Abolhassani Nejad
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle, awikhan12
 
Scalable Design Systems with Sketch
Scalable Design Systems with SketchScalable Design Systems with Sketch
Scalable Design Systems with SketchLaura Van Doore
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven DesignR-P-Azevedo
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and ArchitectureRuth Malan
 

Semelhante a Software Architecture is written with lowercase a (20)

Are Agile Projects Doomed to Half-Baked Design?
Are Agile Projects Doomed to Half-Baked Design?Are Agile Projects Doomed to Half-Baked Design?
Are Agile Projects Doomed to Half-Baked Design?
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
[DevDay2019] Collaborate or die: The designers’ guide to working with develop...
 
Getting Started with Architecture Decision Records
Getting Started with Architecture Decision RecordsGetting Started with Architecture Decision Records
Getting Started with Architecture Decision Records
 
Enterprise Design and the Future of Enterprise Architecture
Enterprise Design and the Future of Enterprise ArchitectureEnterprise Design and the Future of Enterprise Architecture
Enterprise Design and the Future of Enterprise Architecture
 
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Agiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego FontdevilaAgiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego Fontdevila
 
Designer collaboration (from Cambridge Usability Group Unconference 2019)
Designer collaboration (from Cambridge Usability Group Unconference 2019)Designer collaboration (from Cambridge Usability Group Unconference 2019)
Designer collaboration (from Cambridge Usability Group Unconference 2019)
 
4 Steps to Start a Design System
4 Steps to Start a Design System 4 Steps to Start a Design System
4 Steps to Start a Design System
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven design
 
Design final
Design finalDesign final
Design final
 
DevOps(1) : What's DevOps - (MOSG)
DevOps(1) : What's DevOps - (MOSG)DevOps(1) : What's DevOps - (MOSG)
DevOps(1) : What's DevOps - (MOSG)
 
A Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UXA Mature Design Team - Rahnama College 2nd UI/UX
A Mature Design Team - Rahnama College 2nd UI/UX
 
The Role of the Architect
The Role of the ArchitectThe Role of the Architect
The Role of the Architect
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle,
 
Scalable Design Systems with Sketch
Scalable Design Systems with SketchScalable Design Systems with Sketch
Scalable Design Systems with Sketch
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and Architecture
 

Último

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Último (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

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. Why  not  So-ware  Doctor?  
  • 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. Computer  vs  Music  Player  
  • 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. Bad  So-ware  Architect  ConcepOon  
  • 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  
  • 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. Q  &  A