architecture in agile - synerzip..."architecture is not living in a document - it is living in...

Post on 11-Jun-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Michael Hall

Three Beacons

mike@threebeacons.com

214.783.3936

Architecture in Agile

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, mike@threebeacons.com

214.783.3936

www.synerzip.com

www.synerzip.com

Hemant Elhence, hemant@synerzip.com

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

37 37

Questions?

www.synerzip.com

Hemant Elhence

hemant@synerzip.com

469.322.0349

Michael Hall

Three Beacons

mike@threebeacons.com

214.783.3936

THE END

top related