Download - Decide at the last responsible moment
![Page 1: Decide at the last responsible moment](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/1.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/2.jpg)
The Agile Architecture Landscape
![Page 3: Decide at the last responsible moment](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/3.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/4.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/5.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/6.jpg)
10
Sample Decision - Fitnesse
![Page 7: Decide at the last responsible moment](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/7.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/8.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/9.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/10.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/11.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/12.jpg)
Create Open Space
Split into groups
![Page 13: Decide at the last responsible moment](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/13.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/14.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/15.jpg)
23
Presentations
![Page 17: Decide at the last responsible moment](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/17.jpg)
![Page 18: Decide at the last responsible moment](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/18.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/19.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/20.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/21.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/22.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022051709/587dc9031a28ab1b498b7bc5/html5/thumbnails/23.jpg)
35
Presentations