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

38
Michael Hall Three Beacons [email protected] 214.783.3936 Architecture in Agile

Upload: others

Post on 11-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architecture in Agile - Synerzip..."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

Michael Hall

Three Beacons

[email protected]

214.783.3936

Architecture in Agile

Page 2: Architecture in Agile - Synerzip..."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

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

Page 3: Architecture in Agile - Synerzip..."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

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

Page 4: Architecture in Agile - Synerzip..."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

Traditional vs. Agile

Architecture

© Three Beacons LLC, 2013 4 www.synerzip.com

Page 5: Architecture in Agile - Synerzip..."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

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

Page 6: Architecture in Agile - Synerzip..."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

Traditional Architecture with an Agile Team

6 © Three Beacons LLC, 2013

Architecture Scrum development

Architecture Document

www.synerzip.com

Page 7: Architecture in Agile - Synerzip..."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

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

Page 8: Architecture in Agile - Synerzip..."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

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

Page 9: Architecture in Agile - Synerzip..."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

Agile Architecture

9 © Three Beacons LLC, 2013

• Artifacts

• Diagrams

• Vision presentations

• Conceptual models

• Wikis

• Brief overview documents

• Discussions - important findings

www.synerzip.com

Page 10: Architecture in Agile - Synerzip..."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

Agile Architecture in Enterprise Scrum

10 © Three Beacons LLC, 2013 www.synerzip.com

Page 11: Architecture in Agile - Synerzip..."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

Agile Architecture – in a nutshell

11 © Three Beacons LLC, 2013 www.synerzip.com

Page 12: Architecture in Agile - Synerzip..."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

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

Page 13: Architecture in Agile - Synerzip..."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

The “Agile Architect”

© Three Beacons LLC, 2013 13 www.synerzip.com

Page 14: Architecture in Agile - Synerzip..."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

Roles of the Agile Architect

14 © Three Beacons LLC, 2013

• Service Provider

• Alternatives Creator

• Technical Coach

• Linchpin

www.synerzip.com

Page 15: Architecture in Agile - Synerzip..."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

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

Page 16: Architecture in Agile - Synerzip..."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

Service Provider – middle ground

16 © Three Beacons LLC, 2013 www.synerzip.com

Page 17: Architecture in Agile - Synerzip..."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

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

Page 18: Architecture in Agile - Synerzip..."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

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

Page 19: Architecture in Agile - Synerzip..."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

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

Page 20: Architecture in Agile - Synerzip..."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

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

Page 21: Architecture in Agile - Synerzip..."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

Emergent Architecture

© Three Beacons LLC, 2013 21 www.synerzip.com

Page 22: Architecture in Agile - Synerzip..."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

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

Page 23: Architecture in Agile - Synerzip..."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

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

Page 24: Architecture in Agile - Synerzip..."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

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

Page 25: Architecture in Agile - Synerzip..."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

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

Page 26: Architecture in Agile - Synerzip..."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

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

Page 27: Architecture in Agile - Synerzip..."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

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

Page 28: Architecture in Agile - Synerzip..."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

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

Page 29: Architecture in Agile - Synerzip..."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

Fully Integrated Agile

Architecture Approach

© Three Beacons LLC, 2013 29 www.synerzip.com

Page 30: Architecture in Agile - Synerzip..."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

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

Page 31: Architecture in Agile - Synerzip..."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

Conclusion

© Three Beacons LLC, 2013 31 www.synerzip.com

Page 32: Architecture in Agile - Synerzip..."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

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

Page 33: Architecture in Agile - Synerzip..."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

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

Page 34: Architecture in Agile - Synerzip..."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

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

Page 35: Architecture in Agile - Synerzip..."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

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

Page 37: Architecture in Agile - Synerzip..."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

37 37

Questions?

www.synerzip.com

Hemant Elhence

[email protected]

469.322.0349

Page 38: Architecture in Agile - Synerzip..."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

Michael Hall

Three Beacons

[email protected]

214.783.3936

THE END