SlideShare a Scribd company logo
1 of 63
AGILE ARCHITECTURE –
IDEALS, HISTORY, AND
A NEW HOPE
Gary Pedretti
GARY PEDRETTI
 Owner, Sodoto Solutions
 SODOTO = See One, Do One, Teach One
 Professional Scrum Trainer, Scrum.org
 Over sixteen years in the software industry as a generalizing
specialist: DBA, coder, BA, architect, tester, manager
 Scrum: Team member, Scrum Master, PO, Coach
 GaryPedretti.com
 @GaryPedretti
 http://www.linkedin.com/in/GaryPedretti
 http://www.slideshare.net/earl128
 SpeakerRate: http://TinyUrl.com/GarysSpeakerRate
IDEALS
MISUNDERSTANDINGS
BACKLASH
A NEW HOPE
Agenda
BUT FIRST – WHAT IS “ARCHITECTURE”?
 “…the highest level concept of a system in its environment. The
architecture of a software system (at a given point in time) is its
organization or structure of significant components interacting
through interfaces, those components being composed of
successively smaller components and interfaces.” – RUP, IEEE
 “…shared understanding of the system design…architecture only
includes the components and interfaces that are understood by
all the developers…architecture is a social construct” – Fowler
 “Stuff that’s hard [expensive] to change later.” – Neal Ford and
others
BUT FIRST – WHAT IS “ARCHITECTURE”?
“Architecture is about the important stuff.
Whatever that is.” – Fowler
FRAMEWORK VS. APPLICATION VS. ENTERPRISE
 Neal Ford describes a “Framework-Level Architecture” – important
because the unit of reuse in modern languages is the library or
framework
 Application Architecture = building architecture
 Enterprise Architecture = city planning
 Service-Oriented Architecture (SOA) = very interesting as a blend of
Application and Enterprise Architectural concerns
A LONG TIME AGO IN A
GALAXY FAR, FAR AWAY…
IDEALS AND PRINCIPLES
LITTLE KNOWN FACTS ABOUT HAN SOLO,
THE IDEALIST
BUDDIES
(BASED ON HAN’S PRINCIPLES AND IDEALS)
AGILE (ARCHITECTURE) HAS IDEALS TOO
This is NOT your capital “A” Architects’ architecture!
AGILE ARCHITECTURE IDEALS, ETC. -
SOURCES
Ideals, Principles, Ideas => Techniques, Practices, Patterns
Agile Manifesto and its Principles
Kent Beck, Ward Cunningham, Ron Jeffries, et. al. from
eXtreme Programming (XP)
Martin Fowler
Scott Ambler
THE MANIFESTO
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left
more.
PRINCIPLES BEHIND THE MANIFESTO
 Welcome changing requirements, even late in development. Agile
processes harness change for the customer's competitive advantage.
 Build projects around motivated individuals. Give them the environment
and support they need, and trust them to get the job done.
 Working software is the primary measure of progress.
 Continuous attention to technical excellence and good design
enhances agility.
 Simplicity - the art of maximizing the amount of work not done - is
essential.
 The best architectures, requirements, and designs emerge from self-
organizing teams
A WORD ON “EVOLUTIONARY” VS.
“EMERGENT”
“If you accept the premise that architecture is about
things hard to change later, it becomes difficult to
allow an architecture to emerge.” – Neal Ford
Jeff Sutherland and Rebecca Wirfs-Brock agree
Words matter – this is about
communication…remember architecture is a social
construct…
XP – KENT BECK’S RULES FOR SIMPLE
DESIGN
1. Test Everything (and run all the tests)
2. Eliminate Duplication (code)
3. Express All Ideas (that the author wants to express)
4. Minimize Entities (classes and methods)
EVOLUTIONARY DESIGN > BDUF
No Big Design Up Front (BDUF)
Replace with Evolutionary
Design
Where Evolutionary Design !=
“code and fix” or Cowboy
Hacking
“
”
OPTIMISM IS AN OCCUPATIONAL HAZARD OF
PROGRAMMING, FEEDBACK IS THE
TREATMENT.
Kent Beck
FEEDBACK
MARTIN FOWLER
 Famous “Who Needs an Architect?” paper and “Is Design
Dead?” blog post
 Significant emphasis on the untenable split between
design and build with software (a technique that can work
in engineering, manufacturing, buildings, etc.), with XP
practices
 But in reality, encourages a healthy middle ground –
doesn’t disown UML, patterns, design activities, etc.
 Used Pramod Sadalage’s DB work as an example of the
“unchangeable” becoming fluid
SCOTT AMBLER
In his “Agile Modeling,” lays out specific
 Values
 Principles
 Practices
Builds off of core agile principles, and forges
middle ground regarding UML, patterns,
forethought, etc.
Worked with Pramod Sadalage on Database
Refactoring
MISUNDERSTANDINGS
GOING SOMEWHERE, SOLO?
HAN SHOT FIRST!!
MERCENARY, SWASHBUCKLER, EVERY-
MAN-FOR-HIMSELF…**SOLO**
AND SMUG, TOO!!
I’M SO MISUNDERSTOOD
BUDDIES
REMINDER: BASED ON HAN’S (SELFLESS)
PRINCIPLES AND IDEALS
OH, SO MANY MISUNDERSTANDINGS
Agile Principles…
FIRST, LET’S IMAGINE THE IDEALS
ABUSED…
XP
The Manifesto
ABUSING XP PRINCIPLES
NO BDUF!!!
(and skipping the “no Cowboy
Hacking, either” part)
ABUSING THE MANIFESTO
 NO DOCUMENTATION NECESSARY!
 NO PLANS!
 (ignoring the “while there is value in the items on
the right” part completely)
 Individuals and interactions over processes and tools
 Working software over comprehensive
documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
ABUSING THE PRINCIPLES BEHIND THE
MANIFESTO
 CODERS ARE GODS NOW – ME ME ME – what’s motivation
again? What’s a stakeholder?
 WORKING SOFTWARE IS THE ONLY THING THAT MATTERS!
 SIMPLE is best – ALWAYS!
 Things emerge – I don’t need to think about them!!
“
”
ONE OF THE MORE INSIDIOUS AND PERSISTENT
MYTHS OF AGILE DEVELOPMENT IS THAT UP-FRONT
ARCHITECTURE AND DESIGN ARE BAD; THAT YOU
SHOULD NEVER SPEND TIME UP FRONT…DESIGN
FROM NOTHING, ONE TEST-CASE AT A TIME.
PARDON ME, BUT THAT’S HORSE SHIT.
“Uncle Bob” Martin
WOW!
HAVE YOU BEEN HERE BEFORE???
(THE EMPIRE STRIKES BACK?)
THE BACKLASH
GUESS I’M ON MY OWN, HAN…
CAN YOU BLAME HIM?
WE’VE SEEN A LOT OF BACKLASH FROM
ALL THOSE MISUNDERSTANDINGS…
Organizational Snapback
New Frameworks to “Address the issue of…”
Broken Trust
ORGANIZATIONAL SNAPBACK – THREE
STEPS FORWARD, TWO STEPS BACK
“Change Spasm” – Simon Rendl
“Organizational Antibodies” – Michael Sahota
“
”
THERE COMES A POINT AT WHICH EMERGENT
DESIGN IS AN INSUFFICIENT RESPONSE TO THE
COMPLEXITY OF LARGE-SCALE SYSTEM
DEVELOPMENT.
From a newer framework
Question: Is there a magical point at which waterfall,
command/control, phase-gated, heavily plan-based
methodologies suddenly just “start to work”?????
“
”
FOR THIS WE NEED SOME INTENTIONAL
ARCHITECTURE—A SET OF PURPOSEFUL, PLANNED
ARCHITECTURAL INITIATIVES TO ENHANCE
SOLUTION DESIGN, PERFORMANCE AND
USABILITY—AND WHICH PROVIDES GUIDANCE FOR
INTER-TEAM DESIGN AND IMPLEMENTATION
SYNCHRONIZATION.
Read: Command and Control?? Funny, Mike Cohn used intentional
at least back to 2009…
From a newer framework
“
”
IN THE CASES WHERE NEW PLATFORMS ARE
PARTICULARLY INNOVATIVE, OR IN THE CASE OF
ENTIRELY NEW (GREENFIELD) DEVELOPMENT, IT IS
COMMON THAT SYSTEM ARCHITECTS PLAY A ROLE
IN THE INITIAL DEFINITION AND BUILD OUT OF THE
RUNWAY.
Read: Self-Organizing Teams Probably Can’t Be Trusted
From a newer framework
I HAVE A QUESTION
Is there a magical point at which waterfall,
command/control, phase-gated, heavily plan-based
methodologies suddenly just “start to work”?????
But…what about nature?
CAN PEOPLE BE TRUSTED TO MAKE DECISIONS AT
THE LAST RESPONSIBLE MOMENT?
 Or will they typically conflate responsible with
possible?
 Rebecca Wirfs-Brock said “yes” at Agile 2013 –
granted, her blog backs this idea with one
psychological study
“
”
THE PROBLEM IS THAT EMPOWERED TEAMS ARE
STILL HUMAN, THEY DO WHAT THEY ARE INCENTED
TO DO. ARE THEY BEING REWARDED FOR QUALITY?
OR ARE THEY BEING REWARDED FOR
PRODUCTIVITY? HOW MUCH RECOGNITION IS THE
TEAM GETTING FOR GOOD CODE QUALITY? HOW
MUCH ARE THEY GETTING FOR DELIVERING
WORKING FEATURES?
“Uncle Bob” Martin
CAREFUL OF THE INCENTIVES
CAN YOU BE TRUSTED?
A NEW HOPE…?
SO MISUNDERSTOOD…
WE HAVE A NEW HOPE TOO…BACK
TO PRINCIPLES
MISUSE AND ABUSE OF PRINCIPLES
I’ve already covered some typical
misuses…including where they deviate and
what to concentrate on…
MISUSE AND ABUSE OF PRINCIPLES
Let’s look at some other things to get us back
to principles…
TOOLS – FROM THE OBVIOUS
TO THE LEAST-EXPECTED
CRC CARDS AND RESPONSIBILITY-
BASED MODELING
 Play the game with a cross-functional team
1. “Is it really the responsibility of this object to handle this
request?”
2. “Is it its responsibility to keep track of all that information?”
 “The best architectures, requirements, and designs
emerge from self-organizing teams.”
SACRIFICIAL ARCHITECTURES
 Mike Brittain and Etsy’s Lean Startup experimentation approach:
architecture is irrelevant until a feature is proven to be wanted by
some pilot demographic, in which case you rebuild it in a
sustainable fashion
 Fowler coined the term “Sacrificial Architecture” in October 2014
to describe these throwaways – “often the best code you can
write now is code you'll discard in a couple of years time”
 Safely enables YAGNI++
 “Simplicity - the art of maximizing the amount of work not done -
is essential.”
NON-FUNCTIONAL REQUIREMENTS
ARE ACTUALLY FEATURES
 “Performance is a feature“ – Jeff Atwood
 What does your product vision actually say about size of
market, globalization, user appetite for risk, etc.?
 Realize any one answer is temporal…it will evolve
 “Our highest priority is to satisfy the customer through early
and continuous delivery of valuable software.”
UNIFIED MODELING LANGUAGE (UML)
AND MODEL-DRIVEN ARCHITECTURE (MDA)
 “Forward Engineering” – code generation from model
 “Reverse Engineering” – model extraction from code
 These approaches enable Ambler’s Agile Modeling Practices of:
 Single Source of Information
 Discard Temporary Models
 Iterate to Another Artifact
 Prove it with Code
 Update Only When it Hurts
 “Deliver working software frequently, from a couple of weeks to a
couple of months, with a preference to the shorter timescale.”
EVEN MORE TOOLS TO DIG INTO
MENTORSHIP
 Communities of Practice
 Lunch and Learns
 Pairing and Swarming
 Remember that quote about Architecture
fundamentally being a social construct?
 “Continuous attention to technical
excellence and good design enhances
agility.”
COMMUNICATION AND HAVING
DIFFICULT
CONVERSATIONS
 “Business people and developers must
work together daily throughout the
project.”
“
”
SOFTWARE IS NOT LIMITED BY PHYSICS, LIKE
BUILDINGS ARE. IT IS LIMITED BY IMAGINATION, BY DESIGN, BY
ORGANIZATION. IN SHORT, IT IS LIMITED BY PROPERTIES OF
PEOPLE, NOT BY PROPERTIES OF THE WORLD. “WE HAVE MET
THE ENEMY, AND HE IS US.
Ralph Johnson
YOUR METAPHORS ARE FUNDAMENTALLY
BROKEN
ORGANIZATIONAL
TRANSFORMATION
 “Build projects around motivated
individuals. Give them the
environment and support they
need, and trust them to get the job
done.”
COMMUNICATION, TEAMWORK,
HUMOR, HUMILITY…
THANK YOU!
 Questions?
RESOURCES AND CITATIONS
 Neal Ford
 http://www.ibm.com/developerworks/java/library/j-eaed1/index.html
 Martin Fowler
 http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf
 http://martinfowler.com/articles/evodb.html
 http://martinfowler.com/articles/designDead.html
 Ron Jeffries
 http://xprogramming.com/xpmag/expEmergentDesign
 Scott Ambler
 http://www.agilemodeling.com/practices.htm
 “Uncle Bob” Martin
 https://sites.google.com/site/unclebobconsultingllc/home/articles/the-scatology-of-agile-
architecture
 Rebecca Wirfs-Brock
 http://wirfs-brock.com/blog/2011/05/12/agile-architecture-myths-3-good-architecture-
emerges/
 http://wirfs-brock.com/blog/2013/08/13/architecture-at-agile-2013/
 Mike Cohn
 http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent

More Related Content

Viewers also liked

Viewers also liked (6)

Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environment
 
Agile enterprise architecture
Agile enterprise architectureAgile enterprise architecture
Agile enterprise architecture
 
Lean Enterprise Architecture
Lean Enterprise ArchitectureLean Enterprise Architecture
Lean Enterprise Architecture
 
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The DangerTechnical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
 
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD) Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
 

Similar to Agile Architecture: Ideals, History, and a New Hope

i poste it befoure three days until now i did not get the answer, to.pdf
i poste it befoure three days until now i did not get the answer, to.pdfi poste it befoure three days until now i did not get the answer, to.pdf
i poste it befoure three days until now i did not get the answer, to.pdf
abhinavbhatnagar201
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
bmercer
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
Kenan Sevindik
 
How do you design?
How do you design? How do you design?
How do you design?
Deleuze78
 

Similar to Agile Architecture: Ideals, History, and a New Hope (20)

Agile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayAgile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we Today
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
 
How do you design
How do you designHow do you design
How do you design
 
i poste it befoure three days until now i did not get the answer, to.pdf
i poste it befoure three days until now i did not get the answer, to.pdfi poste it befoure three days until now i did not get the answer, to.pdf
i poste it befoure three days until now i did not get the answer, to.pdf
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
Contemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With EnterpriseContemporary Software Engineering Practices Together With Enterprise
Contemporary Software Engineering Practices Together With Enterprise
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
On System Design
On System DesignOn System Design
On System Design
 
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
 
how do u design?
how do u design?how do u design?
how do u design?
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
 
Agile Architectures, Agile Cultures
Agile Architectures, Agile CulturesAgile Architectures, Agile Cultures
Agile Architectures, Agile Cultures
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
An Agile Development Primer
An Agile Development PrimerAn Agile Development Primer
An Agile Development Primer
 
Distributed cat herding
Distributed cat herdingDistributed cat herding
Distributed cat herding
 
Design process
Design processDesign process
Design process
 
How do you design?
How do you design? How do you design?
How do you design?
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and Architecture
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011
 

More from Gary Pedretti

More from Gary Pedretti (6)

King Tut Architecture
King Tut ArchitectureKing Tut Architecture
King Tut Architecture
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product Development
 
TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
T4 presentation
T4 presentationT4 presentation
T4 presentation
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Agile Architecture: Ideals, History, and a New Hope

  • 1. AGILE ARCHITECTURE – IDEALS, HISTORY, AND A NEW HOPE Gary Pedretti
  • 2. GARY PEDRETTI  Owner, Sodoto Solutions  SODOTO = See One, Do One, Teach One  Professional Scrum Trainer, Scrum.org  Over sixteen years in the software industry as a generalizing specialist: DBA, coder, BA, architect, tester, manager  Scrum: Team member, Scrum Master, PO, Coach  GaryPedretti.com  @GaryPedretti  http://www.linkedin.com/in/GaryPedretti  http://www.slideshare.net/earl128  SpeakerRate: http://TinyUrl.com/GarysSpeakerRate
  • 4. BUT FIRST – WHAT IS “ARCHITECTURE”?  “…the highest level concept of a system in its environment. The architecture of a software system (at a given point in time) is its organization or structure of significant components interacting through interfaces, those components being composed of successively smaller components and interfaces.” – RUP, IEEE  “…shared understanding of the system design…architecture only includes the components and interfaces that are understood by all the developers…architecture is a social construct” – Fowler  “Stuff that’s hard [expensive] to change later.” – Neal Ford and others
  • 5. BUT FIRST – WHAT IS “ARCHITECTURE”? “Architecture is about the important stuff. Whatever that is.” – Fowler
  • 6. FRAMEWORK VS. APPLICATION VS. ENTERPRISE  Neal Ford describes a “Framework-Level Architecture” – important because the unit of reuse in modern languages is the library or framework  Application Architecture = building architecture  Enterprise Architecture = city planning  Service-Oriented Architecture (SOA) = very interesting as a blend of Application and Enterprise Architectural concerns
  • 7. A LONG TIME AGO IN A GALAXY FAR, FAR AWAY… IDEALS AND PRINCIPLES
  • 8. LITTLE KNOWN FACTS ABOUT HAN SOLO, THE IDEALIST
  • 9. BUDDIES (BASED ON HAN’S PRINCIPLES AND IDEALS)
  • 10. AGILE (ARCHITECTURE) HAS IDEALS TOO This is NOT your capital “A” Architects’ architecture!
  • 11. AGILE ARCHITECTURE IDEALS, ETC. - SOURCES Ideals, Principles, Ideas => Techniques, Practices, Patterns Agile Manifesto and its Principles Kent Beck, Ward Cunningham, Ron Jeffries, et. al. from eXtreme Programming (XP) Martin Fowler Scott Ambler
  • 12. THE MANIFESTO Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 13. PRINCIPLES BEHIND THE MANIFESTO  Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.  Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.  Working software is the primary measure of progress.  Continuous attention to technical excellence and good design enhances agility.  Simplicity - the art of maximizing the amount of work not done - is essential.  The best architectures, requirements, and designs emerge from self- organizing teams
  • 14. A WORD ON “EVOLUTIONARY” VS. “EMERGENT” “If you accept the premise that architecture is about things hard to change later, it becomes difficult to allow an architecture to emerge.” – Neal Ford Jeff Sutherland and Rebecca Wirfs-Brock agree Words matter – this is about communication…remember architecture is a social construct…
  • 15. XP – KENT BECK’S RULES FOR SIMPLE DESIGN 1. Test Everything (and run all the tests) 2. Eliminate Duplication (code) 3. Express All Ideas (that the author wants to express) 4. Minimize Entities (classes and methods)
  • 16. EVOLUTIONARY DESIGN > BDUF No Big Design Up Front (BDUF) Replace with Evolutionary Design Where Evolutionary Design != “code and fix” or Cowboy Hacking
  • 17. “ ” OPTIMISM IS AN OCCUPATIONAL HAZARD OF PROGRAMMING, FEEDBACK IS THE TREATMENT. Kent Beck FEEDBACK
  • 18. MARTIN FOWLER  Famous “Who Needs an Architect?” paper and “Is Design Dead?” blog post  Significant emphasis on the untenable split between design and build with software (a technique that can work in engineering, manufacturing, buildings, etc.), with XP practices  But in reality, encourages a healthy middle ground – doesn’t disown UML, patterns, design activities, etc.  Used Pramod Sadalage’s DB work as an example of the “unchangeable” becoming fluid
  • 19. SCOTT AMBLER In his “Agile Modeling,” lays out specific  Values  Principles  Practices Builds off of core agile principles, and forges middle ground regarding UML, patterns, forethought, etc. Worked with Pramod Sadalage on Database Refactoring
  • 26. BUDDIES REMINDER: BASED ON HAN’S (SELFLESS) PRINCIPLES AND IDEALS
  • 27. OH, SO MANY MISUNDERSTANDINGS Agile Principles…
  • 28. FIRST, LET’S IMAGINE THE IDEALS ABUSED… XP The Manifesto
  • 29. ABUSING XP PRINCIPLES NO BDUF!!! (and skipping the “no Cowboy Hacking, either” part)
  • 30. ABUSING THE MANIFESTO  NO DOCUMENTATION NECESSARY!  NO PLANS!  (ignoring the “while there is value in the items on the right” part completely)  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan
  • 31. ABUSING THE PRINCIPLES BEHIND THE MANIFESTO  CODERS ARE GODS NOW – ME ME ME – what’s motivation again? What’s a stakeholder?  WORKING SOFTWARE IS THE ONLY THING THAT MATTERS!  SIMPLE is best – ALWAYS!  Things emerge – I don’t need to think about them!!
  • 32. “ ” ONE OF THE MORE INSIDIOUS AND PERSISTENT MYTHS OF AGILE DEVELOPMENT IS THAT UP-FRONT ARCHITECTURE AND DESIGN ARE BAD; THAT YOU SHOULD NEVER SPEND TIME UP FRONT…DESIGN FROM NOTHING, ONE TEST-CASE AT A TIME. PARDON ME, BUT THAT’S HORSE SHIT. “Uncle Bob” Martin WOW!
  • 33. HAVE YOU BEEN HERE BEFORE???
  • 34. (THE EMPIRE STRIKES BACK?) THE BACKLASH
  • 35. GUESS I’M ON MY OWN, HAN…
  • 37. WE’VE SEEN A LOT OF BACKLASH FROM ALL THOSE MISUNDERSTANDINGS… Organizational Snapback New Frameworks to “Address the issue of…” Broken Trust
  • 38. ORGANIZATIONAL SNAPBACK – THREE STEPS FORWARD, TWO STEPS BACK “Change Spasm” – Simon Rendl “Organizational Antibodies” – Michael Sahota
  • 39. “ ” THERE COMES A POINT AT WHICH EMERGENT DESIGN IS AN INSUFFICIENT RESPONSE TO THE COMPLEXITY OF LARGE-SCALE SYSTEM DEVELOPMENT. From a newer framework Question: Is there a magical point at which waterfall, command/control, phase-gated, heavily plan-based methodologies suddenly just “start to work”?????
  • 40. “ ” FOR THIS WE NEED SOME INTENTIONAL ARCHITECTURE—A SET OF PURPOSEFUL, PLANNED ARCHITECTURAL INITIATIVES TO ENHANCE SOLUTION DESIGN, PERFORMANCE AND USABILITY—AND WHICH PROVIDES GUIDANCE FOR INTER-TEAM DESIGN AND IMPLEMENTATION SYNCHRONIZATION. Read: Command and Control?? Funny, Mike Cohn used intentional at least back to 2009… From a newer framework
  • 41. “ ” IN THE CASES WHERE NEW PLATFORMS ARE PARTICULARLY INNOVATIVE, OR IN THE CASE OF ENTIRELY NEW (GREENFIELD) DEVELOPMENT, IT IS COMMON THAT SYSTEM ARCHITECTS PLAY A ROLE IN THE INITIAL DEFINITION AND BUILD OUT OF THE RUNWAY. Read: Self-Organizing Teams Probably Can’t Be Trusted From a newer framework
  • 42. I HAVE A QUESTION Is there a magical point at which waterfall, command/control, phase-gated, heavily plan-based methodologies suddenly just “start to work”????? But…what about nature?
  • 43. CAN PEOPLE BE TRUSTED TO MAKE DECISIONS AT THE LAST RESPONSIBLE MOMENT?  Or will they typically conflate responsible with possible?  Rebecca Wirfs-Brock said “yes” at Agile 2013 – granted, her blog backs this idea with one psychological study
  • 44. “ ” THE PROBLEM IS THAT EMPOWERED TEAMS ARE STILL HUMAN, THEY DO WHAT THEY ARE INCENTED TO DO. ARE THEY BEING REWARDED FOR QUALITY? OR ARE THEY BEING REWARDED FOR PRODUCTIVITY? HOW MUCH RECOGNITION IS THE TEAM GETTING FOR GOOD CODE QUALITY? HOW MUCH ARE THEY GETTING FOR DELIVERING WORKING FEATURES? “Uncle Bob” Martin CAREFUL OF THE INCENTIVES
  • 45. CAN YOU BE TRUSTED?
  • 48. WE HAVE A NEW HOPE TOO…BACK TO PRINCIPLES
  • 49. MISUSE AND ABUSE OF PRINCIPLES I’ve already covered some typical misuses…including where they deviate and what to concentrate on…
  • 50. MISUSE AND ABUSE OF PRINCIPLES Let’s look at some other things to get us back to principles…
  • 51. TOOLS – FROM THE OBVIOUS TO THE LEAST-EXPECTED
  • 52. CRC CARDS AND RESPONSIBILITY- BASED MODELING  Play the game with a cross-functional team 1. “Is it really the responsibility of this object to handle this request?” 2. “Is it its responsibility to keep track of all that information?”  “The best architectures, requirements, and designs emerge from self-organizing teams.”
  • 53. SACRIFICIAL ARCHITECTURES  Mike Brittain and Etsy’s Lean Startup experimentation approach: architecture is irrelevant until a feature is proven to be wanted by some pilot demographic, in which case you rebuild it in a sustainable fashion  Fowler coined the term “Sacrificial Architecture” in October 2014 to describe these throwaways – “often the best code you can write now is code you'll discard in a couple of years time”  Safely enables YAGNI++  “Simplicity - the art of maximizing the amount of work not done - is essential.”
  • 54. NON-FUNCTIONAL REQUIREMENTS ARE ACTUALLY FEATURES  “Performance is a feature“ – Jeff Atwood  What does your product vision actually say about size of market, globalization, user appetite for risk, etc.?  Realize any one answer is temporal…it will evolve  “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
  • 55. UNIFIED MODELING LANGUAGE (UML) AND MODEL-DRIVEN ARCHITECTURE (MDA)  “Forward Engineering” – code generation from model  “Reverse Engineering” – model extraction from code  These approaches enable Ambler’s Agile Modeling Practices of:  Single Source of Information  Discard Temporary Models  Iterate to Another Artifact  Prove it with Code  Update Only When it Hurts  “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
  • 56. EVEN MORE TOOLS TO DIG INTO
  • 57. MENTORSHIP  Communities of Practice  Lunch and Learns  Pairing and Swarming  Remember that quote about Architecture fundamentally being a social construct?  “Continuous attention to technical excellence and good design enhances agility.”
  • 58. COMMUNICATION AND HAVING DIFFICULT CONVERSATIONS  “Business people and developers must work together daily throughout the project.”
  • 59. “ ” SOFTWARE IS NOT LIMITED BY PHYSICS, LIKE BUILDINGS ARE. IT IS LIMITED BY IMAGINATION, BY DESIGN, BY ORGANIZATION. IN SHORT, IT IS LIMITED BY PROPERTIES OF PEOPLE, NOT BY PROPERTIES OF THE WORLD. “WE HAVE MET THE ENEMY, AND HE IS US. Ralph Johnson YOUR METAPHORS ARE FUNDAMENTALLY BROKEN
  • 60. ORGANIZATIONAL TRANSFORMATION  “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
  • 63. RESOURCES AND CITATIONS  Neal Ford  http://www.ibm.com/developerworks/java/library/j-eaed1/index.html  Martin Fowler  http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf  http://martinfowler.com/articles/evodb.html  http://martinfowler.com/articles/designDead.html  Ron Jeffries  http://xprogramming.com/xpmag/expEmergentDesign  Scott Ambler  http://www.agilemodeling.com/practices.htm  “Uncle Bob” Martin  https://sites.google.com/site/unclebobconsultingllc/home/articles/the-scatology-of-agile- architecture  Rebecca Wirfs-Brock  http://wirfs-brock.com/blog/2011/05/12/agile-architecture-myths-3-good-architecture- emerges/  http://wirfs-brock.com/blog/2013/08/13/architecture-at-agile-2013/  Mike Cohn  http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent

Editor's Notes

  1. Application and Enterprise Architecture has been put through its paces in the agile world over the years: Ideals (architectural work inside the development team, shortening the design-to-implementation loop as much as possible) Misinterpretations and misunderstandings ("We don't need no stinking Architects!" screamed the Keyboard Cowboys) The inevitable backlash of misinterpretations, lack of craft, and the inertia of the status quo (Architectural Epics continuing to encourage a split between business and IT, command-and-control capital-"A" Architects). Where are we now? What have we learned? More importantly, what have we forgotten? Now more than ever, we need to go back to the core principles of agility and emergent architecture. Let's talk.
  2. This is a tour of Agile Architecture history in rough chronological order, followed by ideas and tools In “A New Hope,” I will talk about specific techniques and mindsets that can help you go forward with success.
  3. In the Star Wars “expanded universe” of books and comics… Solo loses his commission and is dishonorably discharged when he refuses an order to skin Chewbacca for commandeering a ship carrying Wookiee children destined for slavery; Chewbacca, in turn, swears a "life-debt" to Solo. - Ann C. Crispin's The Han Solo Trilogy (1997–1998)
  4. Buddies by principle – Chewie’s sworn “life debt” on Han’s principled actions
  5. Roughly chronological order, going from mid-90s forward
  6. Values: communication, simplicity, feedback, courage, humility Principles: Assume Simplicity, Embrace Change, Enabling the Next Effort is Your Secondary Goal, Incremental Change, Maximize Stakeholder ROI, Model With a Purpose, Multiple Models, Quality Work, Rapid Feedback, Working Software Is Your Primary Goal, Travel Light Supplementary: Content is More Important Than Representation, Open and Honest Communication Practices: Display Models Publicly, Iterate to Another Artifact (where artifacts are models, diagrams, code, conversations) Active Stakeholder Participation, Apply the Right Artifact(s), Collective Ownership, Create Several Models in Parallel, Create Simple Content, Depict Models Simply, Display Models Publicly, Iterate to Another Artifact, Model in Small Increments, Model With Others, Prove it With Code, Single Source Information, Use the Simplest Tools Supplementary: Apply Modeling Standards, Apply Patterns Gently, Discard Temporary Models, Formalize Contract Models, Update Only When It Hurts
  7. Greedo was clearly going to hurt Han, looking at the dialogue: HAN: Even I get boarded sometimes. Do you think I had a choice? Han Solo slowly reaches for his gun under the table. GREEDO: You can tell that to Jabba. He may only take your ship. HAN: Over my dead body. GREEDO: That's the idea. I've been looking forward to killing you for a long time. HAN: Yes, I'll bet you have.
  8. Despite Solo’s swashbuckling, mercenary, out-for-myself appearances, remember that by the time we meet him in Star Wars: A New Hope, he is where he is based on a stand on his principles and ideals Buddies by principle – Chewie’s sworn “life debt” on Han’s principled actions
  9. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. – autonomy, mastery, and purpose Working software is the primary measure of progress. Simplicity - the art of maximizing the amount of work not done - is essential. The best architectures, requirements, and designs emerge from self-organizing teams
  10. Maybe Han is all about the “Solo”?
  11. Self-Organizing = anarchy, right? NO. Choosing “hows” in contexts of well-defined “whys” and at least partial “whats” Often backlash here when there never was a “why,” nor a will to create one
  12. Class – Responsibility – Collaborators “Is it really the responsibility of this object to handle this request?” “Is it its responsibility to keep track of all that information?” Play the CRC/RBD game with a cross-functional team!!! This ultimately moves towards DDD, ubiquitous language, strong business/dev relations, etc.
  13. Star UML, Sparx Enterprise Architect, Argo UML, Borland Together, Visual Studio Ultimate Architecture Tools
  14. Calls back to the Fowler ideas of fundamental split between manufacturing/design/build and software develpment Speaking of communication… Buildings Engineering Assembly Lines “Architecture” itself!!!