24
1 Decide at the Last Responsible Moment! …in the Agile landscape Florin Cardasim, Moldova ICT Summit 28 April 2016

Decide at the last responsible moment

Embed Size (px)

Citation preview

Page 1: Decide at the last responsible moment

1

Decide at the Last Responsible Moment!…in the Agile landscape

Florin Cardasim, Moldova ICT Summit28 April 2016

Page 2: Decide at the last responsible moment

The Agile Architecture Landscape

Page 3: Decide at the last responsible moment

4

Architects

[verb]

what is the verb? shoot quickly

decisions

until the last responsible moment

make? (wrong answer)defer making

Page 4: Decide at the last responsible moment

7

The Last Responsible Moment

"the moment at which failing to make a decision eliminates an important alternative.“

Mary and Tom Poppendieck

Keep as many options open for as long as possible

Commit when you must or when you have a good reason to

Page 5: Decide at the last responsible moment

8

Early and Late Decisions

Some decisions can be made late in projectslook-and-feel

Some have to be made early onimplementation language

The majority of design decisions fall between

Page 6: Decide at the last responsible moment

10

Sample Decision - Fitnesse

Page 7: Decide at the last responsible moment

13

Sample Decision – How Many Servers

Context Internet-facing system requires about 12 services to be implemented

Decision Implement as 12 different servers?Implement as small number of monolithic servers?

Forces Separation of concerns, operational complexity, duplication of effort, evolution

Result Chose to create 12 different servers, despite the operational complexity.

Page 8: Decide at the last responsible moment

14

Abstract

Hide the decision behind an abstraction to allow later change

e.g. data access library

Page 9: Decide at the last responsible moment

15

Renegotiate

Change the decision to be made by renegotiating time, scope, constraints, …

e.g. persuade client to allow late change to the user interface

Page 10: Decide at the last responsible moment

16

RedesignAvoid the decision by redesigning your system to avoid the problematic element

e.g. alter structure to avoid connection to element needing early decision

Page 11: Decide at the last responsible moment

17

Late/Dynamic Binding

Explicitly add a mechanism to allow the decision to be changed later

e.g. late binding of components via configuration

Page 12: Decide at the last responsible moment

Create Open Space

Split into groups

Page 13: Decide at the last responsible moment

21

Exercise

Identify one early decisionDiscuss ways we can architect and design systems to defer or manage better.

10 minutes

Present4 teams, 5 minutes each

Page 14: Decide at the last responsible moment

22

Sample Decision – How Many Servers

Context Internet-facing system requires about 12 services to be implemented

Decision Implement as 12 different servers?Implement as small number of monolithic servers?

Forces Separation of concerns, operational complexity, duplication of effort, evolution

Result Chose to create 12 different servers, despite the operational complexity.

Page 15: Decide at the last responsible moment

23

Presentations

Page 16: Decide at the last responsible moment

Growing Your Architecture…in the Agile landscape

[email protected] ICT Summit

28 April 2016

Page 17: Decide at the last responsible moment
Page 18: Decide at the last responsible moment

Grow (not build!) a framework

Goal: Allow developers to focus on meeting requirements, not repetitive programming

Time: Incrementally done.

Results from seeing repeated code and identifying common functionality.

Page 19: Decide at the last responsible moment

Experiment on Branches

Goal: Experiment away from main code branch.

Time: Few hours to a few days.

When done: Merge or throwaway branch code.

Page 20: Decide at the last responsible moment

Spikes

Used to figure out a functional or design approach.

Functionalbreak down and clarify large functionality, identify critical & risky functionality,

Technicalidentify feasibility and impact of design strategies

Where: part of the product backlogWhen: whenever necessary.Allocated time: Few hours to few days.

Page 21: Decide at the last responsible moment

33

Exercise

Split into groups

Start from the Product Vision

Think of1 functionality which is unclear or risky1 architecturally significant problems

Analyze them in a functional and technical spike10 minutes

Present2 teams – functional spike, 5 minutes each team2 teams – technical spike, 5 minutes each team

Page 22: Decide at the last responsible moment

34

Our Product VisionGreat apps for your Mac. Right on your Mac.

The Mac App Store is just like the App Store for iPad, iPhone, and iPod touch. So it’s as easy to find and download Mac apps as it is to add your favourite magazine to iPod or a new game to iPod touch. You can browse Mac apps by category, such as games, productivity, music, and more. Or do a quick search for something specific. Read developer descriptions and user reviews. Flip through screenshots. When you find an app you like, click to buy it. The Mac App Store has apps for just about everything and everyone. Here are a few of our favourites.

Page 23: Decide at the last responsible moment

35

Presentations

Page 24: Decide at the last responsible moment

36

Thank [email protected]

Moldova ICT Summit 2016