SlideShare ist ein Scribd-Unternehmen logo
1 von 59
AGILE ARCHITECTURE AND 
MODELING - WHERE ARE 
WE TODAY? 
Gary Pedretti
 Solutions Manager, Agile Practice at Centare 
 Over fifteen years in the software industry as a generalizing 
specialist 
 Scrum: Team member, Scrum Master, Coach, Certified Scrum 
Trainer for Scrum.org 
 GaryPedretti.com 
 @GaryPedretti 
 http://www.linkedin.com/in/garypedretti 
 http://www.slideshare.net/earl128 
 SpeakerRate: http://TinyUrl.com/GarysSpeakerRate 
GARY PEDRETTI
IDEALS 
MISUNDERSTANDINGS 
BACKLASH 
A NEW HOPE 
Agenda
 “…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 
 “Architecture is about the important stuff. Whatever that is.” – 
Fowler 
 “Stuff that’s hard [expensive] to change later.” – Neal Ford and 
others 
BUT FIRST – WHAT IS “ARCHITECTURE”?
 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 
FRAMEWORK VS. APPLICATION VS. 
ENTERPRISE
A LONG TIME AGO IN A GALAXY FAR, 
FAR AWAY… 
IDEALS AND PRINCIPLES
LITTLE KNOWN FACTS ABOUT HAN SOLO
BUDDIES
This is NOT your capital “A” Architects’ architecture! 
 Kent Beck, Ward Cunningham, Ron Jeffries, et. al. from eXtreme Programming (XP) 
 Agile Manifesto and its Principles 
 Martin Fowler 
 Scott Ambler 
AGILE ARCHITECTURE IDEALS - 
SOURCES
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) 
XP – KENT BECK’S RULES FOR SIMPLE 
DESIGN
 No Big Design Up Front (BDUF) 
 Replace with Evolutionary Design 
 Where Evolutionary Design != “code and fix” 
or Cowboy Hacking 
EVOLUTIONARY DESIGN > BDUF
“ 
” 
OPTIMISM IS AN OCCUPATIONAL HAZARD OF 
PROGRAMMING, FEEDBACK IS THE 
TREATMENT. 
Kent Beck 
FEEDBACK
 Individuals and interactions over processes and tools 
 Working software over comprehensive documentation 
 Customer collaboration over contract negotiation 
 Responding to change over following a plan 
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 
PRINCIPLES BEHIND THE MANIFESTO
 “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…architecture is 
social… 
A WORD ON “EVOLUTIONARY” VS. 
“EMERGENT”
 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 
MARTIN FOWLER
 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 
SCOTT AMBLER
MISUNDERSTANDINGS
GOING SOMEWHERE, SOLO?
HAN SHOT FIRST!!
HAN SHOT FIRST!!
 XP 
 The Manifesto 
FIRST, LET’S IMAGINE THE IDEALS 
ABUSED…
 NO BDUF!!! 
 (and skipping the “no Cowboy Hacking, 
either” part) 
ABUSING XP PRINCIPLES
 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 MANIFESTO
 Individuals – ME ME ME – what’s motivation again? Trust is given, 
not earned, right? 
 WORKING SOFTWARE IS THE ONLY THING THAT MATTERS! 
 SIMPLE is best – ALWAYS! 
 Things emerge – I don’t need to think about them!! 
ABUSING THE PRINCIPLES BEHIND THE 
MANIFESTO
“ 
” 
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!
“ 
” 
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
THE EMPIRE STRIKES BACK… 
THE BACKLASH
LEIA: I LOVE YOU! 
HAN: I KNOW.
 “Change Spasm” – Simon Rendl 
 “Organizational Antibodies” – Michael Sahota 
ORGANIZATIONAL SNAPBACK – THREE 
STEPS FORWARD, TWO STEPS BACK
CAN YOU BE TRUSTED?
“ 
” 
THERE COMES A POINT AT WHICH EMERGENT 
DESIGN IS AN INSUFFICIENT RESPONSE TO THE 
COMPLEXITY OF LARGE-SCALE SYSTEM 
DEVELOPMENT. 
From a newer framework
“ 
” 
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
 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 
 But think back to Uncle Bob’s statement – what are we 
incenting? 
CAN PEOPLE REALLY MAKE DECISIONS AT 
THE LAST RESPONSIBLE MOMENT?
A NEW HOPE…?
SO MISUNDERSTOOD…
BACK TO PRINCIPLES
 I’ve already covered some typical misuses…including where they 
deviate and what to concentrate on… 
 Let’s look at some other things to get us back to principles… 
MISUSE AND ABUSE OF PRINCIPLES
TOOLS – FROM THE OBVIOUS 
TO THE LEAST-EXPECTED
 “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.” 
UNIFIED MODELING LANGUAGE (UML) 
AND MODEL-DRIVEN ARCHITECTURE 
(MDA)
 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.” 
CRC CARDS AND RESPONSIBILITY-BASED 
MODELING
 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.” 
SACRIFICIAL ARCHITECTURES
 “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.” 
NON-FUNCTIONAL REQUIREMENTS 
ARE ACTUALLY FEATURES
 Communities of Practice 
 Lunch and Learns 
 Pairing and Swarming 
 “Continuous attention to technical 
excellence and good design enhances 
agility.” 
MENTORSHIP
 “Business people and developers must 
work together daily throughout the 
project.” 
COMMUNICATION AND 
HAVING DIFFICULT 
CONVERSATIONS
“ 
” 
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
 “Build projects around motivated 
individuals. Give them the 
environment and support they 
need, and trust them to get the job 
done.” 
ORGANIZATIONAL 
TRANSFORMATION
COMMUNICATION, HUMOR, HUMILITY 
…HUMANITY
 Questions? 
THANK YOU!
 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 
RESOURCES AND CITATIONS

Weitere ähnliche Inhalte

Was ist angesagt?

2013_OSCON_Innovation_Presentation
2013_OSCON_Innovation_Presentation2013_OSCON_Innovation_Presentation
2013_OSCON_Innovation_Presentation
Laszlo Szalvay
 
BBOM-AgilePT-2010
BBOM-AgilePT-2010BBOM-AgilePT-2010
BBOM-AgilePT-2010
Joseph Yoder
 
Mobile Prototyping Essentials Workshop: Part 2
Mobile Prototyping Essentials Workshop: Part 2Mobile Prototyping Essentials Workshop: Part 2
Mobile Prototyping Essentials Workshop: Part 2
Rachel Hinman
 

Was ist angesagt? (20)

Making Great User Experiences at Cleveland C# .Net Meetup July 27 2017
Making Great User Experiences at Cleveland C# .Net Meetup July 27 2017Making Great User Experiences at Cleveland C# .Net Meetup July 27 2017
Making Great User Experiences at Cleveland C# .Net Meetup July 27 2017
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...
 
Decisions and Technical Leadership
Decisions and Technical LeadershipDecisions and Technical Leadership
Decisions and Technical Leadership
 
The Complexity Curve: How to Design for Simplicity (SXSW, March 2012)
The Complexity Curve: How to Design for Simplicity (SXSW, March 2012)The Complexity Curve: How to Design for Simplicity (SXSW, March 2012)
The Complexity Curve: How to Design for Simplicity (SXSW, March 2012)
 
UX + Agile: The Good, The Bad, and The Ugly
UX + Agile: The Good, The Bad, and The UglyUX + Agile: The Good, The Bad, and The Ugly
UX + Agile: The Good, The Bad, and The Ugly
 
2013_OSCON_Innovation_Presentation
2013_OSCON_Innovation_Presentation2013_OSCON_Innovation_Presentation
2013_OSCON_Innovation_Presentation
 
Carmen Brion - The value for product teams to design think
Carmen Brion - The value for product teams to design thinkCarmen Brion - The value for product teams to design think
Carmen Brion - The value for product teams to design think
 
Understanding your customers
Understanding your customersUnderstanding your customers
Understanding your customers
 
Design in Startups
Design in StartupsDesign in Startups
Design in Startups
 
Design Leadership presented at SATURN19
Design Leadership presented at SATURN19 Design Leadership presented at SATURN19
Design Leadership presented at SATURN19
 
UX in the Age of AI: Where Does Design Fit In? Fluxible 2017
UX in the Age of AI: Where Does Design Fit In? Fluxible 2017UX in the Age of AI: Where Does Design Fit In? Fluxible 2017
UX in the Age of AI: Where Does Design Fit In? Fluxible 2017
 
BBOM-AgilePT-2010
BBOM-AgilePT-2010BBOM-AgilePT-2010
BBOM-AgilePT-2010
 
Mobile Prototyping Essentials Workshop: Part 2
Mobile Prototyping Essentials Workshop: Part 2Mobile Prototyping Essentials Workshop: Part 2
Mobile Prototyping Essentials Workshop: Part 2
 
Dr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UX
Dr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UXDr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UX
Dr.* Truemper, Or: How I learned to Stop Being Wasteful and Love Lean UX
 
Making Faster UX in an Agile World - HOAPitt 2017
Making Faster UX in an Agile World - HOAPitt 2017Making Faster UX in an Agile World - HOAPitt 2017
Making Faster UX in an Agile World - HOAPitt 2017
 
What are machines learning? How might that impact design?
What are machines learning? How might that impact design?What are machines learning? How might that impact design?
What are machines learning? How might that impact design?
 
Thoughts on metrics and goals for responsible products
Thoughts on metrics and goals for responsible productsThoughts on metrics and goals for responsible products
Thoughts on metrics and goals for responsible products
 
Mixed Model Management:Manage Projects and Not Tasks
Mixed Model Management:Manage Projects and Not TasksMixed Model Management:Manage Projects and Not Tasks
Mixed Model Management:Manage Projects and Not Tasks
 
Dfm handbook for design engineering 0402
Dfm handbook for design engineering 0402Dfm handbook for design engineering 0402
Dfm handbook for design engineering 0402
 
Common Objections to TDD (and their refutations)
Common Objections to TDD (and their refutations)Common Objections to TDD (and their refutations)
Common Objections to TDD (and their refutations)
 

Andere mochten auch

Agile Architecture and Design
Agile Architecture and DesignAgile Architecture and Design
Agile Architecture and Design
Pratip Mallik
 
10 Multicore 07
10 Multicore 0710 Multicore 07
10 Multicore 07
timcrack
 

Andere mochten auch (20)

Agile Modeling
Agile ModelingAgile Modeling
Agile Modeling
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecture
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Agile Architecture and Design
Agile Architecture and DesignAgile Architecture and Design
Agile Architecture and Design
 
Architectural runway
Architectural runwayArchitectural runway
Architectural runway
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story Workshop
 
How and why to design your teams for modern software systems - Agile in Leeds...
How and why to design your teams for modern software systems - Agile in Leeds...How and why to design your teams for modern software systems - Agile in Leeds...
How and why to design your teams for modern software systems - Agile in Leeds...
 
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
 
MAPPING TOGAF® ADM AND AGILE APPROACH
MAPPING TOGAF® ADM AND AGILE APPROACHMAPPING TOGAF® ADM AND AGILE APPROACH
MAPPING TOGAF® ADM AND AGILE APPROACH
 
Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0
 
User Stories Workshop For Agile Product Development
User Stories Workshop For Agile Product DevelopmentUser Stories Workshop For Agile Product Development
User Stories Workshop For Agile Product Development
 
10 Multicore 07
10 Multicore 0710 Multicore 07
10 Multicore 07
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
 
Agile Vs Traditional Models
Agile Vs Traditional ModelsAgile Vs Traditional Models
Agile Vs Traditional Models
 
Enterprise Architecture, the Agile Way
Enterprise Architecture, the Agile WayEnterprise Architecture, the Agile Way
Enterprise Architecture, the Agile Way
 
Microservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentMicroservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software Development
 
Agile modeling
Agile modelingAgile modeling
Agile modeling
 
CA presentation of multicore processor
CA presentation of multicore processorCA presentation of multicore processor
CA presentation of multicore processor
 
Design for security in operating system
Design for security in operating systemDesign for security in operating system
Design for security in operating system
 
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
 

Ähnlich wie Agile Architecture and Modeling - Where are we Today

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
 

Ähnlich wie Agile Architecture and Modeling - Where are we Today (20)

Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New Hope
 
How do you design
How do you designHow do you design
How do you design
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
 
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
 
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in MontrealWhat can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
 
CEU IA Concepts
CEU IA ConceptsCEU IA Concepts
CEU IA Concepts
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and Architecture
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011
 
Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
 
User Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyUser Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the Ugly
 
Patterns of fail
Patterns of failPatterns of fail
Patterns of fail
 
An Agile Development Primer
An Agile Development PrimerAn Agile Development Primer
An Agile Development Primer
 
Parents
ParentsParents
Parents
 
The Architecture of Uncertainty
The Architecture of UncertaintyThe Architecture of Uncertainty
The Architecture of Uncertainty
 
Design process
Design processDesign process
Design process
 
How do you design?
How do you design? How do you design?
How do you design?
 
how do u design?
how do u design?how do u design?
how do u design?
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 

Mehr von Gary Pedretti

Mehr von Gary Pedretti (8)

Territories, Not Hierarchies
Territories, Not HierarchiesTerritories, Not Hierarchies
Territories, Not Hierarchies
 
King Tut Architecture
King Tut ArchitectureKing Tut Architecture
King Tut Architecture
 
This IS Agile Development
This IS Agile DevelopmentThis IS Agile Development
This IS Agile Development
 
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
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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...
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Agile Architecture and Modeling - Where are we Today

  • 1. AGILE ARCHITECTURE AND MODELING - WHERE ARE WE TODAY? Gary Pedretti
  • 2.  Solutions Manager, Agile Practice at Centare  Over fifteen years in the software industry as a generalizing specialist  Scrum: Team member, Scrum Master, Coach, Certified Scrum Trainer for Scrum.org  GaryPedretti.com  @GaryPedretti  http://www.linkedin.com/in/garypedretti  http://www.slideshare.net/earl128  SpeakerRate: http://TinyUrl.com/GarysSpeakerRate GARY PEDRETTI
  • 4.  “…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  “Architecture is about the important stuff. Whatever that is.” – Fowler  “Stuff that’s hard [expensive] to change later.” – Neal Ford and others BUT FIRST – WHAT IS “ARCHITECTURE”?
  • 5.  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 FRAMEWORK VS. APPLICATION VS. ENTERPRISE
  • 6. A LONG TIME AGO IN A GALAXY FAR, FAR AWAY… IDEALS AND PRINCIPLES
  • 7. LITTLE KNOWN FACTS ABOUT HAN SOLO
  • 9. This is NOT your capital “A” Architects’ architecture!  Kent Beck, Ward Cunningham, Ron Jeffries, et. al. from eXtreme Programming (XP)  Agile Manifesto and its Principles  Martin Fowler  Scott Ambler AGILE ARCHITECTURE IDEALS - SOURCES
  • 10. 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) XP – KENT BECK’S RULES FOR SIMPLE DESIGN
  • 11.  No Big Design Up Front (BDUF)  Replace with Evolutionary Design  Where Evolutionary Design != “code and fix” or Cowboy Hacking EVOLUTIONARY DESIGN > BDUF
  • 12. “ ” OPTIMISM IS AN OCCUPATIONAL HAZARD OF PROGRAMMING, FEEDBACK IS THE TREATMENT. Kent Beck FEEDBACK
  • 13.  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan THE MANIFESTO
  • 14.  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 PRINCIPLES BEHIND THE MANIFESTO
  • 15.  “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…architecture is social… A WORD ON “EVOLUTIONARY” VS. “EMERGENT”
  • 16.  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 MARTIN FOWLER
  • 17.  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 SCOTT AMBLER
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.  XP  The Manifesto FIRST, LET’S IMAGINE THE IDEALS ABUSED…
  • 28.  NO BDUF!!!  (and skipping the “no Cowboy Hacking, either” part) ABUSING XP PRINCIPLES
  • 29.  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 MANIFESTO
  • 30.  Individuals – ME ME ME – what’s motivation again? Trust is given, not earned, right?  WORKING SOFTWARE IS THE ONLY THING THAT MATTERS!  SIMPLE is best – ALWAYS!  Things emerge – I don’t need to think about them!! ABUSING THE PRINCIPLES BEHIND THE MANIFESTO
  • 31. “ ” 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!
  • 32. “ ” 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
  • 33. THE EMPIRE STRIKES BACK… THE BACKLASH
  • 34.
  • 35. LEIA: I LOVE YOU! HAN: I KNOW.
  • 36.
  • 37.  “Change Spasm” – Simon Rendl  “Organizational Antibodies” – Michael Sahota ORGANIZATIONAL SNAPBACK – THREE STEPS FORWARD, TWO STEPS BACK
  • 38. CAN YOU BE TRUSTED?
  • 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
  • 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.  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  But think back to Uncle Bob’s statement – what are we incenting? CAN PEOPLE REALLY MAKE DECISIONS AT THE LAST RESPONSIBLE MOMENT?
  • 44.
  • 47.  I’ve already covered some typical misuses…including where they deviate and what to concentrate on…  Let’s look at some other things to get us back to principles… MISUSE AND ABUSE OF PRINCIPLES
  • 48. TOOLS – FROM THE OBVIOUS TO THE LEAST-EXPECTED
  • 49.  “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.” UNIFIED MODELING LANGUAGE (UML) AND MODEL-DRIVEN ARCHITECTURE (MDA)
  • 50.  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.” CRC CARDS AND RESPONSIBILITY-BASED MODELING
  • 51.  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.” SACRIFICIAL ARCHITECTURES
  • 52.  “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.” NON-FUNCTIONAL REQUIREMENTS ARE ACTUALLY FEATURES
  • 53.  Communities of Practice  Lunch and Learns  Pairing and Swarming  “Continuous attention to technical excellence and good design enhances agility.” MENTORSHIP
  • 54.  “Business people and developers must work together daily throughout the project.” COMMUNICATION AND HAVING DIFFICULT CONVERSATIONS
  • 55. “ ” 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
  • 56.  “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.” ORGANIZATIONAL TRANSFORMATION
  • 59.  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 RESOURCES AND CITATIONS

Hinweis der Redaktion

  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. In “A New Hope,” I will talk about specific techniques and mindsets that can help you go forward with success.
  3. Expanded universe of books and comics Solo loses his commission and is cashiered 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) So despite Solo’s swashbuckling, mercenary appearances, 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
  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. 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. 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.
  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. 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
  11. Is there a magical point at which waterfall, command/control, phase-gated, heavily plan-based methodologies suddenly just “start to work”?????
  12. Is there a magical point at which waterfall, command/control, phase-gated, heavily plan-based methodologies suddenly just “start to work”?????
  13. Is there a magical point at which waterfall, command/control, phase-gated, heavily plan-based methodologies suddenly just “start to work”?????
  14. What are we incenting? Can we trust people if we incent quality??
  15. Star UML, Sparx Enterprise Architect, Argo UML, Borland Together, Visual Studio Ultimate Forward Engineering Reverse Engineering These approaches enable Ambler’s Agile Modeling Practices of Single Source of Information Discard Temporary Models Iterate to Another Artifact Update Only When it Hurts
  16. 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.
  17. Speaking of communication… Buildings Engineering Assembly Lines “Architecture” itself!!!