doing architecture with agile teams iasa uk summit 2013

48
Software Architectur e with Agile Teams Chris F. Carroll & Alan Gawthorpe photo: http://d.lib.ncsu.edu ua023_025 copyright not known

Upload: chris-carroll

Post on 19-Nov-2014

2.210 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Doing Architecture with Agile Teams IASA UK Summit 2013

Software Architecture

with Agile Teams

Chris F. Carroll&

Alan Gawthorpe

photo: http://d.lib.ncsu.edu ua023_025 copyright not known

Chris F Carroll
Combined this and the simplest thing onto the first 'tactics to achieve agility' slide
Chris F Carroll
probably remove this slide, having the picture draws too much attention to it.
Page 2: Doing Architecture with Agile Teams IASA UK Summit 2013

First, a couple of questions...

Page 3: Doing Architecture with Agile Teams IASA UK Summit 2013

Agile vs ArchitectureDestined to Fight?

Individuals & Interactions over processes and tools

Working Software vs comprehensive documentation

Customer Collaborationover contract negotiation

Responding to Changeover following a plan

ITABOKISO 42010

40 years of experience!

Page 4: Doing Architecture with Agile Teams IASA UK Summit 2013

Agile & ArchitectureCommon Priorities

“Our highest priority is to satisfy the customer ...”

ISO42010 Systems & Software Engineering — Architecture Description

Page 5: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture with Agile TeamsQuestions & Issues

• Methodologicalo Scaling agile – howo Architecture in an agile lifecycle – where/wheno Enterprise concerns: governance, risk, adoption,

maturity – how

• Personalo How can an agile team and an architect relate

effectivelyo How do I the architect add value effectively

• Technicalo Agility as a software qualityo What kind of architecture might count as agile

Page 6: Doing Architecture with Agile Teams IASA UK Summit 2013

Summary of Agile

Page 7: Doing Architecture with Agile Teams IASA UK Summit 2013

Achitecture with Agile TeamsQuestions & Issues

• Methodologicalo Scaling agile – howo Architecture in an agile lifecycle – where/wheno Enterprise concerns: governance, risk, adoption,

maturity – how

• Personalo How can an agile team and an architect relate

effectivelyo How do I the architect add value effectively

• Technicalo Agility as a software qualityo What kind of architecture might count as agile

Page 8: Doing Architecture with Agile Teams IASA UK Summit 2013

How does Agile Scale?

“Out of the box ‘core’ agile methods do not give adequate consideration to the risks associated with delivering solutions on large enterprise projects and as a result we're seeing organizations investing a lot of effort creating hybrid methodologies ...”

Ambler & Lines, Disciplined Agile Delivery, 2012

Page 9: Doing Architecture with Agile Teams IASA UK Summit 2013

Scaling Agile:Enterprise-level Methodologies

Agile Unified Process & Agile Modeling

– Scott Ambler, 2005

Open Unified Process

– Eclipse Foundation, 2005

MSF4ASD

– Microsoft, 2005

agile@scale – IBM-Rational, 2008

Disciplined Agile Delivery

–Scott Ambler & Mark Lines, 2012

Page 10: Doing Architecture with Agile Teams IASA UK Summit 2013

Disciplined Agile: •Risk-Value lifecycle•Self-organised within governance framework •Full delivery cycle

IBM: Agile Scaling Model

Core Agile: •Value Driven•Self-OrganisedFocus on Construction

Agility@Scale: •Disciplined with scaling factors applied

Page 11: Doing Architecture with Agile Teams IASA UK Summit 2013

Scaling Agile: OpenUP

Page 12: Doing Architecture with Agile Teams IASA UK Summit 2013

Scaling Agile:Agility@Scale Scaling Factors

Page 13: Doing Architecture with Agile Teams IASA UK Summit 2013

How does agile scale? The same way as all software:

• By scaling the methodologyo http://disciplinedagiledelivery.com/o SlideShare: “IBM Rational Achieving Agility at Scale,

Alan Brown”o IBM Developerworks: Agility@Scale

• By doing architecture

“It’s not agile that’s hard to scale, it’s software that’s hard to scale.” Tom McMillen, CTO intilery.com

Page 14: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture in an agile lifecycle?

Options for Where, as in, when

Scrum / XP ☛ Architecture SpikeSprint Zero

Unified Process ☛ Inception & Elaboration

Poppendieck, “Lean Toolkit…”Fairbanks,”Just Enough…”

☛ Continuously with Feedback

Page 15: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture in Core Agile:Architecture Spike or Sprint Zero

Before development, have just enough architecture, design decisions, tool & environment work to support it.

Page 16: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture in UP-derivatives:Inception and Elaboration

To leave Elaboration you must:

Design, implement, validate, and establish the baseline for the architecture and test a skeleton structure of the system ...

This is an executable architecture.

Page 17: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture in UP-derivatives:Construction

• The Agile Development phase – full steam ahead

• The Evolutionary Architecture practiseo Perform architecture work “just in time”o Document key architectural decisions and outstanding issueso Implement and test key capabilitieso In spite of the name, it is still assumed that the bulk of architecture

work is done during elaboration

Page 18: Doing Architecture with Agile Teams IASA UK Summit 2013

G. Fairbanks, 2010:Just Enough Software Architecture

Architecture and design activities during each phase, addressing architecture and risk in each sprint alongside features

Page 19: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture & Agile Methodology

o Are there 'enterprise level' agile methodologies?

o How does agile scale?o Where & how does architecture fit in an agile lifecycle?o How are ‘enterprise’ concerns addressed

o maturityo governanceo risko adoptiono ...

Page 20: Doing Architecture with Agile Teams IASA UK Summit 2013

GovernanceArchitecture & Agile Methodology

• Addressing governance is perhaps the cutting edge of agile adoption

• Traditional governance may be anti-agile

• You may benefit from critically assessing whether your governance framework is cost-effective

Page 21: Doing Architecture with Agile Teams IASA UK Summit 2013

Governance for Agile DeliveryNational Audit Office, July 2012

• Governance should mirror the philosophy of Agile methods – only do a task if it brings value to the business and does not introduce delays

• Light touch and proactive

• Focus on the activities and on value, in contrast to traditional methods which check what the team has done to improve predictions and estimates and reduce the variation between the baseline and forecast

http://www.nao.org.uk/wp-content/uploads/2012/07/governance_agile_delivery.pdf pp8–10

Page 22: Doing Architecture with Agile Teams IASA UK Summit 2013

Governance for Agile DeliveryAmbler & Lines, Disciplined Agile Delivery

Q: Is your governance strategy designed to enable the work or control the workers?

“Three Bold Claims”

• Agile teams are significantly easier to govern than traditional teams.

• Traditional approaches to governance are guaranteed to harm agile teams.

• Disciplined Agile Delivery teams must demand good governance by their organization.

Page 23: Doing Architecture with Agile Teams IASA UK Summit 2013

Risk Management in Agile

Agile brings two big guns to risk management

• Emphasis on plenty of communication between customer and development team

• Early & continuous delivery of software with feedback

These must be in addition to – not instead of – your existing approaches. Agile doesn't answer all the questions.

Page 24: Doing Architecture with Agile Teams IASA UK Summit 2013

Risk Management in Agile Methodologies

• UP-inspired approaches still follow the UP mantras: Attack risks early, before they attack you, and the architecture is a risk.

• Fairbanks’ “Just Enough Software Architecture” is a risk-centric approach:

1. Identify and prioritize risks

2. Apply relevant architecture activities

3. Re-evaluate

Page 25: Doing Architecture with Agile Teams IASA UK Summit 2013

FairbanksJust Enough Software Architecture

A quick test : Are your risks written down?

Developers probably have a written list of features to develop but the list of risks is often made up on the spot.

⚐Agile usually gives public visibility to progress.

When risks other than non-delivery are an issue, give the same visibility to risk as is given to delivery

Page 26: Doing Architecture with Agile Teams IASA UK Summit 2013

Risk mitigation strategies typically rejected in agile

• Trying to predict the future in detail

• Doing detailed design without code & test

• Gathering detailed requirements in a setting where they will be outdated by the time you've delivered them

• Believing that the right process allows you to plug anyone in as an interchangeable resource

Page 27: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture with Agile TeamsQuestions & Issues

• Methodologicalo Scaling agile – howo Architecture in an agile lifecycle – where/wheno Enterprise concerns: governance, risk, adoption,

maturity – how

• Personalo How can an agile team and an architect relate

effectively?o How do I the architect add value effectively?

• Technicalo Agility as a software qualityo What kind of architecture might count as agile

Page 28: Doing Architecture with Agile Teams IASA UK Summit 2013

Threats in RelationshipsThe Architect vs. the Agile Team

“The chief measure of progress is working software” so what value are you adding?

“Your up-front design won’t solve our actual problems or help us respond to change”

Page 29: Doing Architecture with Agile Teams IASA UK Summit 2013

Architect & Agile Team RelationshipsThe power of metaphor

Architect is to builder & bricklayer

as

Software architect is to _______________ ?

Page 30: Doing Architecture with Agile Teams IASA UK Summit 2013

Architect & Agile Team RelationshipsThe power of metaphor

But coding is design, not bricklaying.

Otherwise robots would do it.

If you relate to developers by tossing blueprints over the wall, saying ‘here, implement this’ then your brightest and best will go either elsewhere or will want to be architects instead of developers.

Page 31: Doing Architecture with Agile Teams IASA UK Summit 2013

Architect & Agile Team RelationshipsThe power of metaphor

software delivery is to manufacturing

as

coding & testing is to product development

Coding is not stamping out identical copies, it is always developing something new.Copying we can automate; coding we can’t.

Poppendieck & Poppendieck, Lean Software Development, 2003

Page 32: Doing Architecture with Agile Teams IASA UK Summit 2013

The Architect vs. the Agile TeamThreats

“Architect”

is a

high-prestige

word and

may imply

a claim to

superiority

http://clutchtees.com/

Page 33: Doing Architecture with Agile Teams IASA UK Summit 2013

The Architect and the Agile TeamRoles for the Architect?

If the “best software architectures emerge from self-organising teams” then your choices are

• Join the team

• Adopt the Consultant or Coach or Servant role

• Be a validator/peer-reviewer

• Be the Architecture Product Owner

Page 34: Doing Architecture with Agile Teams IASA UK Summit 2013

The Role of the Agile Architect

Hands-On

Hands-Off

vs

Page 35: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture with Agile TeamsQuestions & Issues

• Methodologicalo Scaling agile – howo Architecture in an agile lifecycle – where/wheno Enterprise concerns: governance, risk, adoption,

maturity – how

• Personalo How can an agile team and an architect relate

effectivelyo How do I the architect add value effectively

• Technicalo Agility as a software qualityo What kind of architecture might count as agile

Page 36: Doing Architecture with Agile Teams IASA UK Summit 2013

An Agile Technical Architecture–What would it look like?

Three possible ways to see this question:

• Doing architecture within the agile lifecycleo Methodology

• Doing architecture in the spirit of agile valueso How you relate to people

• Present an architecture that enables agile developmento What might an agile architecture look like?

Page 37: Doing Architecture with Agile Teams IASA UK Summit 2013

Coplien & Bjørnvig, 2010: Lean Architecture for Agile Software Development

• Getting the right architecture enables rapid agile development.

• “Lean” does mean thinking ahead.

Page 38: Doing Architecture with Agile Teams IASA UK Summit 2013

Agility as a Software Quality Attribute?

Agility would be a kind of modifiability that enables:

• Self-organising teamso Allow teams to work autonomously

• Continuous deliveryo Adding features & improvements to a software system over an

extended period

• Responding to changeo Delivering unpredicted requirements at acceptable cost

We should be able to describe scenarios/measures for agility, and describe tactics to achieve it.

The scenario is largely fixed: The team is presented with requirements at the start of a sprint and responds by delivering an increment of working software

Page 39: Doing Architecture with Agile Teams IASA UK Summit 2013

• Measure 1: Cross-team dependencies should be rare

• Measure 2: Velocity should not nose-diveo “The team should be able to deliver software at

similar velocity in months N1-N2 of the project as they did in the first few months.”

• Measure 3: Responsiveness to change should be higho “The team should be able to deliver on new

requirements in each sprint at similar velocity as they can deliver on known-beforehand requirements”

Agility as a Quality Attribute:Proposed Measures

Page 40: Doing Architecture with Agile Teams IASA UK Summit 2013

Tactics for Agility:The Growable Walking Skeleton

Page 41: Doing Architecture with Agile Teams IASA UK Summit 2013

Lean Architecture for Agile Software:Coplien & Bjørnvig's Partitioning Steps

1) Distinguish

What the system is

vs

What the system does

A kind of “partition by rate of change”:

Stable domain knowledge

vs

Volatile functionality

Page 42: Doing Architecture with Agile Teams IASA UK Summit 2013

Lean Architecture for Agile SoftwareCoplien & Bjørnvig's Partitioning Steps

2) Partition to maximise the autonomy of teams

• You can't fight Conway’s Law

“Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of those organizations”

Let the human considerations drive the partitioning, with software engineering concerns secondary

Page 43: Doing Architecture with Agile Teams IASA UK Summit 2013

Lean Architecture for Agile SoftwareCoplien & Bjørnvig's Partitioning Steps

3) Respect domain knowledge

• Partition around domains–which should in fact match business structure

• Don't split a domain across geographic locations or across architectural units

• Re-use existing products & product lines to bolster domain partitioning

• Co-ordinate with Conway's Law; it shouldn't take a village to raise a module.

• Elicit and use the End-User Mental Model

Page 44: Doing Architecture with Agile Teams IASA UK Summit 2013

Tactics for Agility:Architecture as a ‘space’ for functionality

Consider how the architecture for a hotel enables the functionalities of hotelling, e.g. eating and sleeping.

It does so by providing spaces within which the functions can take place.

So the growable skeleton should have identified places where an expanding series of use-cases can be added.

(Software has expandable walls)

Page 45: Doing Architecture with Agile Teams IASA UK Summit 2013

OO principles such as SOLID

XP practices & simple design

YAGNI

DoTheSimplestThingThatCouldPossiblyWork

Agility as a Quality Attribute:Tactics to achieve it

Page 46: Doing Architecture with Agile Teams IASA UK Summit 2013

Agility as a Quality Attribute:Tactics to achieve it

• An early walking skeleton with identifiable space for use-cases to expand in

• Partition by: rates of change, team structure and domain knowledge

• Architect the spaces for adding functionality

• YAGNI and Simple Design

Page 47: Doing Architecture with Agile Teams IASA UK Summit 2013

Architecture with Agile TeamsThank You For Participating!

• Methodologyo Scaling agile – howo Architecture in an agile lifecycle – where/wheno Enterprise concerns: governance, risk, adoption,

maturity – how

• Personalo How can an agile team and an architect relate

effectivelyo How do I the architect add value effectively

• Technicalo Agility as a software qualityo What kind of architecture might count as agile

Page 48: Doing Architecture with Agile Teams IASA UK Summit 2013

Software Architecture

with Agile Teams

Alan Gawthorpe

&Chris F. Carroll

photo: http://d.lib.ncsu.edu ua023_025 copyright not known

http://future-thought.co.uk/abouthttp://www.cafe-encounter.net/about