architecture in agile - synerzip..."architecture is not living in a document - it is living in...
TRANSCRIPT
Architecture
2 © Three Beacons LLC, 2013
“The set of significant decisions about the organization of a software system, the
selection of the structural elements and their interfaces by which the system is
composed together with their behavior as specified in the collaboration among
those elements, the composition of these elements into progressively larger
subsystems, the architectural style that guides this organization, these elements
and their interfaces, their collaborations, and their composition.
Software architecture is concerned with not only structure and behavior but also
usage, functionality, performance, resilience, reuse, comprehensibility, economic
and technological constraints and trade-offs, and aesthetics.”
- Rational Unified Process
www.synerzip.com
Architects
3 © Three Beacons LLC, 2013
• Make major hardware/software decisions
• Develop proof of concepts
• Establish the important design patterns to follow
• Identify opportunities for component or service reuse
• Document vision
• Outline the quality attributes and trade-offs
• Establish communication channels with stakeholders*
www.synerzip.com
Traditional vs. Agile
Architecture
© Three Beacons LLC, 2013 4 www.synerzip.com
Traditional Architecture
5 © Three Beacons LLC, 2013
• Document driven
• “Complete” – big design up front (BDUF)
• Key decisions made up front
• Enforcement
• Relationship with Dev team
• Not so involved in development
• Hands-off the “final solution”
• Applies constraints and restrictions to the Dev team
• Ivory tower?
www.synerzip.com
Traditional Architecture with an Agile Team
6 © Three Beacons LLC, 2013
Architecture Scrum development
Architecture Document
www.synerzip.com
Agile Architecture
7 © Three Beacons LLC, 2013
• Starts with just enough to get going
• Architectural alternatives are explored up
front
• Key decisions are made during the
development iterations
• Emergent – solution architecture evolves as
understanding of the system increases
during development
• Incremental – using short feedback cycles
• Offer alternatives, suggestions, and
guidance to the Dev team
“Evolution is the best architect.”
www.synerzip.com
Agile Architecture
8 © Three Beacons LLC, 2013
• Continues throughout Dev iterations
• Add architectural stories that have
foundational influence to the backlog
• Influences the Dev team members
• Look-ahead prototyping and framework
development
• Unresolved architectural issues or concerns
tracked on product backlog
www.synerzip.com
Agile Architecture
9 © Three Beacons LLC, 2013
• Artifacts
• Diagrams
• Vision presentations
• Conceptual models
• Wikis
• Brief overview documents
• Discussions - important findings
www.synerzip.com
Agile Architecture in Enterprise Scrum
10 © Three Beacons LLC, 2013 www.synerzip.com
Agile Architecture – in a nutshell
11 © Three Beacons LLC, 2013 www.synerzip.com
Agile Architecture – 7 principles
12 © Three Beacons LLC, 2013
Principle #1 ─ The teams that code the system designs the system.
Principle #2 ─ Build the simplest architecture that can possibly work.
Principle #3 ─ When in doubt, code it out.
Principle #4 ─ They build it, they test it.
Principle #5 ─ The bigger the airplane, the longer the runway.
Principle #6 ─ System architecture is a role collaboration.
Principle #7 – There is no monopoly on innovation.
- Dean Leffingwell, - 7 principles of Agile Architecture
www.synerzip.com
The “Agile Architect”
© Three Beacons LLC, 2013 13 www.synerzip.com
Roles of the Agile Architect
14 © Three Beacons LLC, 2013
• Service Provider
• Alternatives Creator
• Technical Coach
• Linchpin
www.synerzip.com
Service Provider – prepare and support
15 © Three Beacons LLC, 2013
• Address the requirements (functional, non-functional, quality, reliability, usability, efficiency,
maintainability, scalability, portability, consistency, testability, etc.)
• Work directly with the developers instead of writing documents
• Develop the required frameworks, demo and show how to use them – builds trust!
• Don’t worry so much about breaking the rules, worry more about the system quality
www.synerzip.com
Service Provider – middle ground
16 © Three Beacons LLC, 2013 www.synerzip.com
Alternatives Creator
17 © Three Beacons LLC, 2013
• A single architectural approach will feel dictated
• Offer multiple approaches instead
• Give Dev team guidance on
• Pros and Cons of each approach
• Risk
• What to watch for
• Hints on what would constitute a decision towards one or another
• Often times during development, a mesh of the alternatives will emerge
as the best overall architecture
www.synerzip.com
Technical Coach
18 © Three Beacons LLC, 2013
• Closely watch (and participate in) the development
• Offer alternatives, suggestions, and guidance as development progresses
• Lobby for architectural stories that have foundational significance to the backlog
• Influence the PO to prioritize these architectural stories high
• Review the sprint deliverables to insure architectural integrity
• Track any unresolved architectural issues on product backlog
www.synerzip.com
Linchpin
19 © Three Beacons LLC, 2013
• Bring it all together: Agile and Architecture
• Sherpa guiding the team to the pinnacle of architecture excellence
• Ownership of resultant architecture on shipped system
www.synerzip.com
Nokia Siemens Survey
20 © Three Beacons LLC, 2013
“70% of all architects are satisfied or very satisfied with the impact of Agile
development on their work.”
Survey of over 2,400 developers, testers, architects, and managers
K. Vilkki, “Impact of Agile Transformation,” Flexi Newsletter, vol. 2, no. 1, 2008, pp. 5–6.
Reasons:
1. Improved feedback cycles
2. New role closer to actual development AGILE
ARCHITECT
www.synerzip.com
Emergent Architecture
© Three Beacons LLC, 2013 21 www.synerzip.com
Emergent Architecture and Design
22 © Three Beacons LLC, 2013
Upfront architecture
Rework Rework
TRADITIONAL
“Anticipatory”
AGILE
“Adaptive”
Rework Evaluate
Rework
Adjust
Assess
Upfront architecture
www.synerzip.com
Emergent Architecture and Design
23 © Three Beacons LLC, 2013
“If you spend a great deal of time trying to anticipate all the things you'll need
before you've started writing code, you will always waste some time because
you don't yet know what you don't know.”
– Neal Ford, Evolutionary Architecture and Emergent Design
www.synerzip.com
Emergent Architecture - technique
24 © Three Beacons LLC, 2013
• Up front: identify potential alternatives
• Knowledge share
- Discuss alternatives with Dev team
- Draw diagrams
- Develop frameworks and prototypes
• Identify architecturally-significant stories for
backlog
- Product Owner prioritizes for sprint 0 and/or 1
• Iterative development
- Team develops, and communicates learnings
- Architect guides decisions
- Adjust architecture as you go
www.synerzip.com
Case Study – MWave Hardware Monitor
25 © Three Beacons LLC, 2013
• Microwave transceivers
• Several different types
• Each transceiver made up of VLSI chips
• Installed on top of buildings
• Allow hospitals to communicate via WAN
• Surgeons can pull up patient records anywhere
throughout the multi-building complex
Requirement: continuous uptime
Direction: create a “monitoring capability” to
constantly query and verify the health of the VLSI
chip components - Scott L Bain, Emergent Design
www.synerzip.com
Case Study – MWave Hardware Monitor
26 © Three Beacons LLC, 2013
Initial architecture option – prior to development sprints
Hardware Tier Middle Tier Client Tier
Drivers
<interface>
HardwareView
HardwareViewFactory
builds
Actual
Hardware
System
Component
Manager
VLSI Component
VLSI Component
VLSI Component
VLSI Component
VLSI Component
VLSI Component
ASCII
File
Status Monitor
Client A
Client B
Client C
pollStatus()
pollStatus()
pollStatus()
Encrypted
status
www.synerzip.com
Case Study – MWave Hardware Monitor
27 © Three Beacons LLC, 2013
Sprint 2 – identified requirement for “complex machines”, consisting of
boards and sub-boards, each with VLSI chips
Hardware Tier Middle Tier Client Tier
Drivers
<interface>
HardwareView
HardwareViewFactory
builds
Actual
Hardware
System
Component
Manager
XML
File
Status Monitor
Client A
Client B
Client C
pollStatus()
pollStatus()
pollStatus()
Encrypted
status
Bo
ard
Su
b-B
oa
rd
VL
SI C
hip
creates
Component
www.synerzip.com
Case Study – MWave Hardware Monitor
28 © Three Beacons LLC, 2013
Sprint 4 – identified requirement for different Encryption mechanisms
Hardware Tier Middle Tier Client Tier
Drivers
<interface>
HardwareView
HardwareViewFactory
builds
Actual
Hardware
System
Component
Manager
XML
File
Status Monitor
Client A
Client B
Client C
pollStatus()
pollStatus()
pollStatus()
Encrypted
status
Bo
ard
Su
b-B
oa
rd
Ch
ip
creates
En
cry
ptio
n
Component
www.synerzip.com
Fully Integrated Agile
Architecture Approach
© Three Beacons LLC, 2013 29 www.synerzip.com
Fully Integrated Agile Architecture Approach
30 © Three Beacons LLC, 2013
Initial
architectural
options
Develop
prototypes
Develop
frameworks
Technical
guidance Diagrams /
documents
Offer architecture-
impacting backlog
items
Help identify PBIs
for early sprints
Monitor team
progress Evolve architecture
based on coding
Ownership of final
architecture
Last responsible
moment decisions
SERVE the
team
Provide feedback
LISTEN to feedback
Review options
with team and
business side
Scrum Team
Agile Architect
responsibilities
Communicate current
arch to business side
Verify arch meets
requirements
Break rules
correctly
www.synerzip.com
Conclusion
© Three Beacons LLC, 2013 31 www.synerzip.com
4 Take-aways
32 © Three Beacons LLC, 2013
"Architecture is not living in a document - it is living in code, otherwise it
would be a beautiful piece of fiction.“
- Jim Coplien
1. Agile and Architecture are not at odds
2. Agile Architects are part of the Scrum team -
they code and are part of the daily game
3. Agile methods help insure an optimal
architecture is achieved
4. Supposed “loss of power” is more than offset
by the trust gained while supporting and
guiding the developers!
Agile Architect
www.synerzip.com
References
33 © Three Beacons LLC, 2013
White Papers:
• “Agility and Architecture: Can They Coexist?”, Abrahamsson, Babar, and Krutchen, IEEE Software
• “Architects as Service Providers”, Roland Faber, IEEE Software
• “Agile-Architecture Interactions”, James Madison, IEEE Software
• “Peaceful Coexistence: Agile Developer Perspectives on Software Architecture”, IEEE Software
• “Agile Architecture IS Possible – You First have to Believe!”, IEEE Computer Society
www.synerzip.com
Questions?
www.threebeacons.com
© Three Beacons LLC, 2013 34
Agile Methods training: Scrum Team Training
Intro to Agile
Distributed Agile
Agile Immersion
User Stories – Requirements w/ Agility
Extreme Programming
Product Owner Role
ScrumMaster Role
Etc.
All courses can be delivered onsite at your location
Short/Long term Agile coaching
Facilitated improvement Michael Hall, [email protected]
214.783.3936
www.synerzip.com
www.synerzip.com
Hemant Elhence, [email protected]
469.322.0349
Synerzip in a Nut-shell
1. Software product development partner for small/mid-sized technology companies
Exclusive focus on small/mid-sized technology companies, typically venture-backed companies in growth phase
By definition, all Synerzip work is the IP of its respective clients
Deep experience in full SDLC – design, dev, QA/testing, deployment
2. Dedicated team of high caliber software professionals for each client
Seamlessly extends client’s local team, offering full transparency
Stable teams with very low turn-over
NOT just “staff augmentation”, but provide full mgmt support
3. Actually reduces risk of development/delivery Experienced team - uses appropriate level of engineering discipline
Practices Agile development – responsive, yet disciplined
4. Reduces cost – dual-shore team, 50% cost advantage
5. Offers long term flexibility – allows (facilitates) taking offshore team captive – aka “BOT” option
Our Clients
www.synerzip.com