copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
1
Al Shalloway CEO, Net Objectives
Scaled Architecture
© Copyright Net Objectives, Inc. All Rights Reserved 2
Al Shalloway [email protected]
@AlShalloway
CEO, Founder
co-founder of Lean-Systems Society co-founder Lean-Kanban University
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
2
© Copyright Net Objectives, Inc. All Rights Reserved 3
Lean Enterprise
Business
Management
Team
ASSESSMENTS CONSULTING
TRAINING COACHING
Lean Management Project Management
Lean for Executives Product Portfolio Management Business Product Owner Product Owner
technical process
Onsite SPC Leading SAFe + with extended topics SAFe Architecture PM/PO
Kanban / Scrum ATDD / TDD / Design Patterns
© Copyright Net Objectives, Inc. All Rights Reserved 4
a day of SAFe
Achieving Scale
Architectural Runway
Kanban
Achieving Scale
Architectural Runway
Kanban
what to watch if interested in SAFe
Executive Overview
Executive Overview
what to watch if not interested in SAFe
Q&A
See recordings at www.netobjectives.com/dayofsafe
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
3
© Copyright Net Objectives, Inc. All Rights Reserved 5
all with minimal risk
© Copyright Net Objectives, Inc. All Rights Reserved 6
1. Design emerges 2. Bigger systems require longer runways 3. Quality high, complexity minimized 4. Build & test together 5. Holistic innovation 6. Implement architectural flow
Principles of Agile Architecture
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
4
© Copyright Net Objectives, Inc. All Rights Reserved 7
Emergent Design Build to what you know Maintain high quality Learn as you go Mitigate risk
© Copyright Net Objectives, Inc. All Rights Reserved 8
When working on a mature system consider when adding a new function…
which task area takes more time
– writing the new function or
– integrating it into the system?
Question to Ask
Why?
Suggest due to
– Redundancy
– Lack of encapsulation
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
5
© Copyright Net Objectives, Inc. All Rights Reserved 9
architecture what is architecture? • Structure • Layers • Underlying technology What can’t be changed?
© Copyright Net Objectives, Inc. All Rights Reserved 10
architecture what if…
integrating functionality wasn’t hard?
we weren’t tied to our system’s architecture?
we were truly object-oriented?
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
6
© Copyright Net Objectives, Inc. All Rights Reserved 11
Not trying to anticipate change
Cannot prevent change
Designing to accommodate change requires • Layered architectures • Code clarity and
maintainability
© Copyright Net Objectives, Inc. All Rights Reserved 12
architecture How do we allow for evolutionary architecture?
How do we make system architecture decisions in an Agile environment?
there is a parallel between agile architecture and agile discovery
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
7
© Copyright Net Objectives, Inc. All Rights Reserved 13
The day I lost an (imaginary) argument with “Uncle” Bob Martin.
© Copyright Net Objectives, Inc. All Rights Reserved 14
Framework Needed Several UIs Several different business logics Brain overload
Lessons learned: • Solve smaller problems • While preparing for what’s coming
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
8
© Copyright Net Objectives, Inc. All Rights Reserved 15
Refactoring Bad Code
Code "smells"
Improve Design without changing Function.
Refactor to improve code quality
A way to clean up code without fear of breaking the system
Types of Refactoring
The day I “kidnapped” Martin Fowler
© Copyright Net Objectives, Inc. All Rights Reserved 16
Refactoring Bad Code Refactoring Good Code
Code "smells"
Improve Design without changing Function.
Refactor to improve code quality
A way to clean up code without fear of breaking the system
Code is "tight"
A new Requirement means code needs to be changed
Design needs to change to accommodate this.
A way to make this change without fear of breaking the system
Types of Refactoring
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
9
© Copyright Net Objectives, Inc. All Rights Reserved 17
When your design is insufficient, refactor it before adding new functionality
© Copyright Net Objectives, Inc. All Rights Reserved 18
Emergent design alone is insufficient at scale Intentional architecture is necessary Create big picture for local decisions Factors outside of Agile Release Trains drive intentional architecture
• Usability, extensibility, performance
• Cross-cutting patterns
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
10
© Copyright Net Objectives, Inc. All Rights Reserved 19
Intentional architecture Driven by event horizon
• Close in work building now • Prepare for next PSI • Conceptualize anything further out
Similar to decomposition of functional stories
© Copyright Net Objectives, Inc. All Rights Reserved 20
all collaborate together
Program Portfolio
Management
Agile Teams
Product Management
Enterprise Architect
System Architect
System Team
Collaboration across the value stream
Agile Release Train
Direct trains to work on most important items
Ensure proper architecture is in place
to allow for this
Sequence work to improve value delivery
& lower risk
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
11
© Copyright Net Objectives, Inc. All Rights Reserved 21
Program Level Architect
Enterprise Architect
Portfolio and Program Collaboration Te
ams
Port
folio
P
rogr
am
System Team
When decisions arise at the portfolio
Enterprise creates context for programs
© Copyright Net Objectives, Inc. All Rights Reserved 22
Program Level Architect
Enterprise Architect
Portfolio and Program Collaboration
Team
s Po
rtfo
lio
Pro
gram
System Team
When decisions arise at program
Communicated to enterprise for future roll-out to other programs
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
12
© Copyright Net Objectives, Inc. All Rights Reserved 23
Business Stakeholders
Product Management System architects
Enterprise Architect
Responsibilities of Enterprise Architect Initiatives & strategy of enterprise architecture Drive architectural epics (and manage WIP) Synchronizes production infrastructure & NFRs across solutions whenever applicable
© Copyright Net Objectives, Inc. All Rights Reserved 24
1. Design emerges 2. Bigger systems require longer runways 3. Quality high, complexity minimized 4. Build & test together 5. Holistic innovation 6. Implement architectural flow
Principles of Agile Architecture
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
13
© Copyright Net Objectives, Inc. All Rights Reserved 25
Use Spikes To Prepare Stories Spikes investigate unknowns
Spikes are estimated, time-boxed and use up velocity
Architect provides guidance
PSI n PSI n + 1
Architectural Feature
Tech story
Tech story
Tech story
refactor
refactor
refactor
spike
spike
Architect provides guidance
© Copyright Net Objectives, Inc. All Rights Reserved 26
Other Methods Mocks Defer Decisions
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
14
© Copyright Net Objectives, Inc. All Rights Reserved 27
1. Design emerges 2. Bigger systems require longer runways 3. Quality high, complexity minimized 4. Build & test together 5. Holistic innovation 6. Implement architectural flow
Principles of Agile Architecture
© Copyright Net Objectives, Inc. All Rights Reserved 28
Design Simplicity Best code quality for today, none for tomorrow High code quality means easier extensibility
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Principle 2 of Agile Manifesto
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
15
© Copyright Net Objectives, Inc. All Rights Reserved 29
Best Practices Follow mandates of design patterns
• Separation of concerns • Delegation • Encapsulation • No redundancy
Test-First
© Copyright Net Objectives, Inc. All Rights Reserved 30
1. Design emerges 2. Bigger systems require longer runways 3. Quality high, complexity minimized 4. Build & test together 5. Holistic innovation 6. Implement architectural flow
Principles of Agile Architecture
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
16
© Copyright Net Objectives, Inc. All Rights Reserved 31
Fundamental Agile test philosophy Those who build it shall test it. Test-first. Automated testing, continuous integration. Teams must comply with Release Train, enterprise-wide conventions
© Copyright Net Objectives, Inc. All Rights Reserved 32
Attending to testability is design High testability results in high code quality
• Follows mandates from design patterns
Testability requires separation of: • UI from business logic • System architecture from
application architecture • Use from creation
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
17
© Copyright Net Objectives, Inc. All Rights Reserved 33
1. Design emerges 2. Bigger systems require longer runways 3. Quality high, complexity minimized 4. Build & test together 5. Holistic innovation 6. Implement architectural flow
Principles of Agile Architecture
© Copyright Net Objectives, Inc. All Rights Reserved 34
Innovate at all levels • Teams must have time to keep
quality high • Hardening, Innovation, Planning (HIP)
sprints are one opportunity • We write quality code all of the time
“Inertia is the residue of past innovation efforts. Left unmanaged it consumes the resources required to fund next-generation innovation.”
Geoffrey Moore
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
18
© Copyright Net Objectives, Inc. All Rights Reserved 35
Enterprise Scale Initiatives
Architectural epics represent cross-cutting initiatives and are peers to business epics (Enterprise architect is owner) May span multiple Agile Release Trains (ARTs) and require coordination Enterprise Architect leads the architect team that drives the implementation of epics in ARTs Effective flow of architectural work is achieved via Epic Kanban
© 2008 - 2013 Scaled Agile, Inc. and Leffingwell, LLC. All rights reserved.
© Copyright Net Objectives, Inc. All Rights Reserved 36
1. Design emerges 2. Bigger systems require longer runways 3. Quality high, complexity minimized 4. Build & test together 5. Holistic innovation 6. Implement architectural flow
Principles of Agile Architecture
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
19
© Copyright Net Objectives, Inc. All Rights Reserved 37
Architectural Epics Peers to business epics Enable sustainability of business value Cross-cutting: products, systems, solutions Arise from: • New opportunities • Changing technologies • Improving existing systems • Reduction of duplication Examples: • Frameworks • Cross-organization systems • Replacing systems
© Copyright Net Objectives, Inc. All Rights Reserved 38
Business Epics Architectural Epic
Portfolio Kanban
Product Manager
Deliver in Stages
Holistic View
Runs across trains as needed
Portfolio Kanban
Enterprise Architect
Run across PSIs as needed
Across Enterprise
Cross-train impact
Architectural Epics Managed Similarly, but Separately
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
20
© Copyright Net Objectives, Inc. All Rights Reserved 39
Use Spikes To Prepare Stories Spikes investigate unknowns
Spikes are estimated, time-boxed and use up velocity
Architect provides guidance
PSI n PSI n + 1
Architectural Feature
Tech story
Tech story
Tech story
refactor
refactor
refactor
spike
spike
Architect provides guidance
© Copyright Net Objectives, Inc. All Rights Reserved 40
Architectural Runway A pragmatic view to Agile architecture Risk driven Quality driven Avoids waste of too much & not enough
copyright (c) Net Objectives, Inc. All Rights Reserved.
27 June 2014
21
Al Shalloway email: [email protected] Twitter tag @alshalloway Register at www.netobjectives.com/register to receive notices of monthly webinars See www.netobjectives.com/resources Leading SAFe With Net Objectives Extensions July 8-10, Seattle
Thank You