Simon Brown
The conflict between agile and architecture M y t h
- r
r e a l i t y ?
The conflict between agile and architecture ? y t i l a e r - - PowerPoint PPT Presentation
The conflict between agile and architecture ? y t i l a e r h t y M r o Simon Brown simon.brown @ coding the architecture .com @ simonbrown on Twitter Jersey, Channel Islands I help software teams understand software architecture ,
Simon Brown
The conflict between agile and architecture M y t h
r e a l i t y ?
simon.brown@codingthearchitecture.com
@simonbrown on Twitter Jersey, Channel IslandsI help software teams understand
software architecture, technical leadership and the balance with agility
(I code too) Training Book SpeakingWhat is
What is architecture?
As a noun...Structure
The definition of something in termsVision
The process of architecting, making (significant) design decisions, etc andThe conflict between agile and architecture
M y t h
r e a l i t y ?
vs
I’m a
software architect
Big up front design
and analysis paralysisUML Waterfall Ivory Tower
Architecture Astronaut
PowerPoint Architect
AaaS ... architecture as a service
Software development is not a
We don't need no stinkin’ architects!
Small teams of generalising specialists, everybody does everything
With agile, there is often a perception that you must have self-organising teamsvs
The conflict relates to the desired
Responding to change
following a plan
This doesn’t mean “don’t do any planning”! Manifesto for Agile Software Development, 2001Modern software development teams
design up front
We don’t need software architecture; we do TDD
The result of the
conflicts?
Shared vision of
WTF?!
Software architecture
in the
21st century
e x p l i c i t
Put some boundaries and guidelines in placevs
Every software development team needs a master builder
1 or manyDepth
Deep hands-on technology skills and knowledgeBreadth
Broad knowledge of patterns, designs, approaches, technologies, non-functional requirements ... Awareness of options and trade-offs Good software architects are master-buildersGeneralising Specialist
The software architecture role
Elastic Leadership (Roy Osherove) C h avs
How much up front design should you do?
Big design up front? Emergent design? (or none, depending on your viewpoint!) Something in between?Waterfall
You should do
“just enough”
I s n ’ t a g i l e a bWhat’s important?
Understanding the significant elements and how they fit together Significant decisions Low-level details Class and sequence diagrams covering every user story Defining the length of all database columns Understanding how security will workJust enough up front design to
understand the structure
create a shared vision
for the teamYou need to
identify and mitigate
your highest priority
Probability Impact
Low (1) Medium (2) High (3) Low (1) Medium (2) High (3)1 2 2 4 3 3 6 6 9
Risk-storming
A collaborative and visual technique for identifying risk
“just enough”
software architecture The role The process Understand how the significant elements fit together I d e n t i f y a n d m i t i g a t e t h e k e y r i s k s Provide firm foundations and a vision to move forward SIs a collaborative and lightweight approach to software architecture the missing piece
Do whatever works for
simon.brown@codingthearchitecture.com @simonbrown on TwitterBuy the ebook for only
$10
1GfwZBLaUKAM
(code expires 8th May 2013)