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

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 ProjectsRebecca Wirfs-Brock
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environmentRaffaele Garofalo
 
Agile enterprise architecture
Agile enterprise architectureAgile enterprise architecture
Agile enterprise architectureScott W. Ambler
 
Lean Enterprise Architecture
Lean Enterprise ArchitectureLean Enterprise Architecture
Lean Enterprise ArchitectureExcella
 
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 DangerLemi Orhan Ergin
 
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) Rodney Bodamer
 

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

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 TodayGary Pedretti
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013lokori
 
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.pdfabhinavbhatnagar201
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2bmercer
 
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 EnterpriseKenan Sevindik
 
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 SystemGiovanni Asproni
 
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
 
how do u design?
how do u design?how do u design?
how do u design?surya teja
 
Agile Architectures, Agile Cultures
Agile Architectures, Agile CulturesAgile Architectures, Agile Cultures
Agile Architectures, Agile CulturesEnthiosys Inc
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 
An Agile Development Primer
An Agile Development PrimerAn Agile Development Primer
An Agile Development PrimerDerek Winter
 
How do you design?
How do you design? How do you design?
How do you design? Deleuze78
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and ArchitectureRuth Malan
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011atlantascrum
 

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

King Tut Architecture
King Tut ArchitectureKing Tut Architecture
King Tut ArchitectureGary Pedretti
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product DevelopmentGary Pedretti
 
TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???Gary Pedretti
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 
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 2010Gary 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

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 

Recently uploaded (20)

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 

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!!!