Features

Agile Teams
and
Architecture
Tommy Ågren
Some guiding
values and principles
What is Lean and Agile?
A set of Values and Principles
– That have proven to work!
Lean: Toyota (manufacturing & production)
Agile: Software lightweight methods
2001 Agile Manifesto
Copyright Agesis AB
www.agesis.se
3
Adopting Lean & Agile
Benefits and Why
Wanted business effects!
Values and Principles
Principles that govern the wanted effects
Creates context and alignment
Practices, how to do it
Processes, Organization, Methods and Tools
Try out, learn
and Adapt
Copyright Agesis AB
www.agesis.se
4
Agile & Lean
Architecture
Agile principles
– Continuous attention to technical excellence and good
design enhances agility
– The best architectures, requirements, and design solutions
emerge from self-organizing teams
– Simplicity is essential
Lean Software principles
– Build Integrity in (system integrity and quality)
– No defects!
– The system should function as a cohesive unit
Copyright Agesis AB
www.agesis.se
5
Agile Teams
Self-organizing
Responsible
Cross-functional
(within a context)
5-9 members
Copyright Agesis AB
www.agesis.se
Long living
for the result
6
Roles, Skills and Responsibility
I’m the Tester
I’m the Designer
Want to grow knowledge and skills,
favor collaboration and coach
team members to that take
responsibility for ”the whole”
I’m the Java Developer
Want to avoid static and
appointed responsibilities!
Copyright Agesis AB
www.agesis.se
7
An Agile Architect ?
A person highly skilled in architecture work
Works in, or close with, an Agile Development Team
Embraces the Agile/Lean values and principles
•
•
•
•
•
•
Copyright Agesis AB
www.agesis.se
Collaborates with and coaches team members
Acknowledges and empowers people
Communicates architecture and decisions (face-to-face)
Accepts and adapts to ideas from others
Keeps things simple - travels light!
Embraces and manages change!
8
An Agile Architecture ?
Supports Agile Development!
• Makes the system easy to understand, maintain and
build upon
• Reduce system complexity
• Makes the system easy to test, integrate and deploy
• Supports change
Copyright Agesis AB
www.agesis.se
9
Examples of Architecture
Requirements (Quality Attributes)
Structural
•
•
•
•
•
•
•
Modularity
Maintainability
Portability
Reusability
Integrability
Testability
…
Architectural
Run-time
•
•
•
•
•
•
•
•
•
• Conceptual Integrity
• Correctness and completeness
• …
Copyright Agesis AB
www.agesis.se
Performance
Interoperability
Scalability
Reliability
Availability
Security
Safety
Usability
…
10
Agile friendly Architecture
Requirements (QAs), examples
•
•
•
•
•
•
•
•
Copyright Agesis AB
www.agesis.se
Modularity
Maintainability
Testability
Integrability
Conceptual Integrity
Scaled development
Interoperability
Usability (UX)
11
Product and Anatomy (meta model)
Requirements are described
as customer-oriented
Features
Marketable
“Product/Service”
seen from the
Customer perspective
Feature
Feature
Feature
Feature
A working
potentially releasable
increment
Customers /
Stakeholders
The ”product anatomy/structure” seen as a set
of modules/components/systems/services
Copyright Agesis AB
www.agesis.se
12
Smaller organization
One or few independent teams
Smaller organization,
one Development Team
pull
A cross-functional and self-organizing
Development Team
Feature
Feature
Feature
Feature
Feature
working releasable
increment of the product
(Customer perspective)
• The knowledge and the skills needed to build increments of
the end-product, can be captured by one single team
• The team can take responsibility for architecture work
Copyright Agesis AB
www.agesis.se
14
Include Architecture work
in the process events
Example: Scrum
Daily Scrum
Sprint Planning
Sprint Review (demo)
Retrospective
Arch.
Arch.
Feature
Feature
Feature
Feature
Feature
Development Team
SAD
Definition
of Done
QAs
Backlog Management
and Preparation
Copyright Agesis AB
www.agesis.se
15
Feature and Component Teams
two Development Team stereotypes
Feature Teams
Feature
Feature
Feature Team
Working product
increment
• End-to-End oriented
‒ Take on (pull) customer-oriented Features, and produce
working product increments
• Highly cross-functional
– Able to work across the product structure
– Develop, integrate and deploy “components”
independently of other teams
Copyright Agesis AB
www.agesis.se
17
Feature Teams
Feature
Feature
Feature Team
Working product
increment
Address Solution Architecture
+ Realize customer-oriented requirement
+ See to solution consistency
+ Integration, Acceptance Testing and Deployment
+ Address architecture requirements/qualities on solution level
‒
‒
‒
‒
Copyright Agesis AB
www.agesis.se
Performance
Communication mechanisms
Availability (overall fault detection and recovery)
Scalability (solution level)
18
Feature Teams
Feature
Feature
Feature Team
Working product
increment
! Usually need to work in parallel with other teams in the
same code base
‒ Consistency and Conceptual Integrity (overall, components)
‒ Infrastructure and tools for cross-product and parallel work
(CM, CI, CD)
Copyright Agesis AB
www.agesis.se
19
Component Teams
Feature
Req.
Req.
Component Team
• Specialists on one particular part of the
product structure - a “component”
– Owns and guards the component
• Develops, builds and delivers the component,
as a result of their work
Copyright Agesis AB
www.agesis.se
20
Component Teams
Feature
Req.
Req.
Component Team
Address “Component Architecture”
+ Integrity and responsibility
+ Testability
+ Maintainability
+ Performance
+ Reliability (robustness & usage, well defined API, …)
+ Availability (fault isolation and detection, recovery, …)
+ Scalability
Copyright Agesis AB
www.agesis.se
21
Component Teams
Feature
Req.
Req.
Component Team
!
Need to break down Features into “component-oriented”
requirements
‒ Understanding of the whole picture and Customer value
!
Awareness of overall Product Structure and Architecture
‒ Solution consistency and integrity
Copyright Agesis AB
www.agesis.se
22
What type of teams to prefer?
• Can mix Feature Teams with Component Teams in
various constellations
– Prefer Feature Teams (focus on making Features done)
– Complement with Component Teams where strategic
• Note: Feature and Component Teams are stereotypes
– Try out what works, reflect and adapt
Copyright Agesis AB
www.agesis.se
23
Scaling up, multiple teams
A more complex product …
Higher demand
of work …
Feature
Feature
Feature
Feature
Feature
Customers &
Stakeholders
Feature
Feature
working releasable
increment of the product
(Customer perspective)
One single team cannot span all the skills needed to build
increments of the “product”, nor meet the demand of work!
Copyright Agesis AB
www.agesis.se
25
A group of Development Teams
with common focus
Architecture and
code must scale!
A cross-functional and self-organizing group of teams
Feature
Feature Team C
Feature
workflow (end-to-end)
Feature
Feature
Feature Team A
Feature
Customers &
Stakeholders
Feature Team D
Feature
Feature
working releasable
increment of the product
(Customer perspective)
Component Team B
• The teams need to collaborate and build working increments of
the product solution together (common responsibility)
• The teams also need to take responsibility for the architecture!
Copyright Agesis AB
www.agesis.se
26
Multiple Development Teams,
Architecture Governance
Multiple Development Teams,
Governance and Support
Cross-team governance, examples
-
Architecture
Strategies for testing
CM, CI, CD
Requirements and User eXperience (UX)
Infrastructure, environment and tools
…
workflow(s)
end-results
Copyright Agesis AB
www.agesis.se
28
Architecture governance, example
?!
Who the heck has
changed the interface?
All integration test
cases fail!
Feature
Feature Team C
Feature
Feature
workflow (end-to-end)
Feature
Feature
Feature
Customers &
Stakeholders
Feature Team A
Feature
Feature Team D
Component Team B
Hmm, what is
the point with these
asynchronous calls ..?
I will create a new
asynchronous interface
for our component
Copyright Agesis AB
www.agesis.se
29
Architecture Forum, example
Members from different teams can meet and
coordinate architecture issues in a common
Architecture Forum / Community
- Possibly facilitated by a senior ”Agile Architect”
Feature Team A
Architecture
Forum
(e.g. virtual team)
•
Arch.
Arch.
QAs
•
•
Experts that support and governs the
Development Teams
Ensure common engineering practices –
overall consistency and integrity
Works close with the Development Teams
–
–
Communicate and explain the big picture
Coach, mentor, educate, show how, review …
Component Team B
Feature Team C
Copyright Agesis AB
www.agesis.se
30
Architecture work, multiple teams
• Need to map architecture work into
a Scaled Agile method/process
• Examples
–
–
–
–
Copyright Agesis AB
www.agesis.se
Scaled Scrum set-up
Kanban, project/program/enterprise level
SAFe (Scaled Agile Framework)
…
31
Example, common Kanban workflow
Note: WIP limits left out for this discussion
Input
Feature
Analyze
Feature
Story
Feature
Feature
Story
Feature
Story
Story
Waiting for
Dev.
Develop
Plan
Feature
Feature
Feature
Feature
Story
Feature
Story
Story
Story
Story
Story
Story
Story
Story
Story
Story
Validate
Feature
Story
Story
Story
In Service
Feature
Story
Story
Story
Story
Story
Feature
Analyze
Architecture impact?
Specify overall solution
Break down work
What team builds what?
Copyright Agesis AB
www.agesis.se
Integrated
Story
Story
Story
Story
•
•
•
Implement
Waiting for
Validation
Develop
•
•
•
•
Plan
•
Manage dependencies
Coordinate and takt work •
Guard conceptual integrity
Validate
Validate result
(Customer perspective)
Validate solution
(reflect and improve)
32
Scaling up, multiple workflows
Multiple workflows (SAFe)
Need to govern Architecture
within as well as across
the workflows
Solution and “component”
Architecture
Feature
Epic
Arch.
Arch.
Feature
Feature
QAs
Arch.
Epic
Epic
Epic
Epic
Epic
Roadmap
QAs
Feature
Feature
QAs
Portfolio
Enterprise
Architecture
Epic
Feature
Arch.
Feature
Feature
QAs
Copyright Agesis AB
www.agesis.se
34
References and further reading
Agile Architect
http://www.agilearchitect.org
Agile Modeling, Scott W. Ambler
http://www.agilemodeling.com
Scaled Agile Framework (SAFe)
http://scaledagileframework.com
Lean Kanban University, David J. Anderson
http://www.leankanbanuniversity.com
Succeeding with Agile, Mike Cohn
https://www.mountaingoatsoftware.com
www.agesis.se
Om utbildningen !
Certifierad IT-arkitekt Master
Michael Thurell
Handledare och lärare
Kort om utbildningen
K54 sep 2015
Start 1999
Personlig Handledare
Inlämningsuppgifter
&
Arkitekturuppsats
>1500 IT-arkitekter
6 X 2 dagar
Ca 25 lärare
”Alla” IT-arkitekter
Innehåll
Innehåll
1
Vad är IT-arkitektur?
Vad gör en IT-arkitekt?
Begrepp: System, egenskapskrav, ”tactics”, mönster, ramverk, komponent,
tjänst etc.
Standarder & arkitekturramverk:
ISO/IEC/IEEE 42010, Kruchten 4+1, Rozanski & Woods, RM-ODP,
TOGAF, Zachmann 2
Innehåll
Verksamhetsnära IT-arkitektur.
Verksamhetsobjekt och verksamhetskomponenter.
Verksamhetsmodellering.
Övergripande arkitekturarbete
(Enterprise Architecture).
Innehåll
3
Teknisk IT-arkitektur.
Arkitektur för distribuerade system.
Infrastruktur, middleware, databaser, säkerhet, utvecklingsplattformar etc.
Realisering av egenskapskrav.
6
Innehåll
4
Metoder för arkitekturutveckling:
ADD, RUP, etc. Olika typer av Agila metoder etc.
Modellering med UML
Styrning av arkitekturarbete (Governance)
Metoder för arkitekturutvärdering: Scenariobedömningar, ATAM etc.
7
5
Innehåll
Mönster och stilar för integration.
”Point-to-Point”, ”Buss”, ”Nav” etc.
SOA, EAI, ESB, etc.
Molnet.
Innehåll
6
Kvalitet och lönsamhet.
Test.
Ledningens syn på IT-arkitektur.
Trender.
Redovisning av uppsatsarbete.
Vad ”utmärker” en IT-arkitekt ?
Egenskaper
Förmågor
•  Kommunikativ & pedagogisk
–  förstå olika intressenters synpunkter
och krav
–  förmedla, förklara och tydliggöra
olika aspekter/vyer av en ITarkitektur för olika intressenter
•  Analytisk & strukturerad
–  se och förstå helheten
–  förenkla komplexa frågeställningar
–  kunna identifiera de viktigaste
arkitekturdrivande kraven
•  Kreativ
•  Ödmjuk
•  Etc.
•  Kunna behärska och tillämpa
etablerade principer och metoder för
utformning av IT-lösningar
•  Kunna förstå & värdera
verksamhetsmodeller
•  Kunna identifiera de arkitekturdrivande
kraven i en komplex kravbild
•  Kunna omsätta systemkraven till en
realiserbar arkitektur
•  Kunna behärska och tillämpa viktiga
stilar & mönster för en IT-arkitektur
•  Kunna beskriva & kommunicera
arkitekturen till aktuella målgrupper