agile architecture
DESCRIPTION
Agile ArchiteTRANSCRIPT
![Page 1: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/1.jpg)
Agile Architecture
Colombo Agile MeetupJohannes Brodwall, Chief scientist
Exilesoft Global
![Page 2: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/2.jpg)
What is an architect?From greek Arkhi-Tecton
Arkhi: Chief. Like “Arch angel”
Or “Arch nemesis”
Tecton: Builder
![Page 3: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/3.jpg)
What is an architect?(Exilesoft definition)
![Page 4: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/4.jpg)
A solution architect is someone who understands the problem
of the customerand uncovers and
communicatesa feasible solution
![Page 5: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/5.jpg)
A solution architect is someone who understands the customer’s problem
(including contraints, context, domain knowledge) and uncovers (though a
team effort) and communicates (with credibility) a feasible solution
(primarily, but not exclusively technical)
![Page 6: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/6.jpg)
Uncover problemvision, stakeholders, usage flow
Describe problemcontext and domain model
Describe solutiondeployment, implementation model
Simplify architecturefeature oriented structure
Deliver softwarerainbow plans
![Page 7: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/7.jpg)
• Describing architecture• Simplifying architecture• Delivering architecture
• Delivering software
• Delivering architecture
![Page 8: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/8.jpg)
Part I:
![Page 9: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/9.jpg)
Describing architecture
![Page 10: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/10.jpg)
Understanding the problem
![Page 11: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/11.jpg)
(Tool time)
![Page 12: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/12.jpg)
For some stakeholder
Who has a goal
The Colombo Agile Meetup
Is a type of activity
Which gives a capability.
Unlike most relevant alternative
This has a distinguishing attribute.
![Page 13: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/13.jpg)
For anyone interested in agile methods
Who ________________
The Colombo Agile Meetup
Is a _________________
Which ________________.
Unlike ______________________
This _______________________.
![Page 14: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/14.jpg)
Example«Smidig» conference application
![Page 15: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/15.jpg)
Example vision statement
![Page 16: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/16.jpg)
For Agile practitioners
Who need to expand on their experience and network
The Smidig conference
Is a networking event
Which connects you with other Agile practitioners.
Unlike traditional conferences
This presents the experience of many people through lightning talks.
![Page 17: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/17.jpg)
For Conference organizers
Who want to organize a good conference
The Smidig conference app
Is a web application
Which eliminates unnecessary work.
Unlike commercial conference apps
This is optimized for the large number of talks we have and allows us to make changes fast.
![Page 18: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/18.jpg)
![Page 19: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/19.jpg)
Example stakeholders
![Page 20: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/20.jpg)
Speaker
Description• Experienced• New speaker• Passionate
Duties• Register talk• Upload slide• Give talkValues• Constructive feedback
on talk• Easy CfP• Fast answer
Attendee
Description• Knows about agile• Works in project• Norwegian
Duties• Pay for conference• Get approval to go
Values• Easy registration
Organizer
Description• Volunteer• Works in evenings• Has network
Duties• Select talks• Follow up
paymentsValues• Easy selection process• Good information overview• Never lose a participant• Financial transparency
![Page 21: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/21.jpg)
Sponsor
Description• Busy• Manager• Not very interested
Duties• Provide logo• Pay sponsorship
Values• Informal
communication• Easy evaluation
![Page 22: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/22.jpg)
Example usage flow
![Page 23: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/23.jpg)
Attendance
1. Agile project practitioner wants to learn
2. Attendee goes to Smidig website
3. Attendee registers
4. Attendee pays
5. Attendee receives confirmation mail
6. Organizer can see the registration
7. Organizer sends reminder email to attendee to come
8. Organizer prints badges for attendees
9. Attendee shows up at Smidig and has an excellent time
![Page 24: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/24.jpg)
![Page 25: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/25.jpg)
Speaker
1. Agile experts wants to share knowledge
2. Potential speaker goes to Smidig website
3. Potential speaker registers personal info
4. Potential speaker registers talk
5. Potential speaker receives registration confirmation email
6. Organizer sees registered talk and can market speaking opportunities
7. Organizer accepts talk for confence
8. Speaker receives acceptance email– Alternative: Speaker withdraws talk – organizer updates the talk
and selects another
9. Organizer prints badges for speakers
10. Speaker shows up at Smidig and gives talk
![Page 26: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/26.jpg)
/Understanding the problem
![Page 27: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/27.jpg)
Uncovering a solution
![Page 28: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/28.jpg)
Example context model
![Page 29: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/29.jpg)
Smidig2011.no
Participant Speaker
Organizer
Printing company
Paypal
![Page 30: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/30.jpg)
Example domain model
![Page 31: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/31.jpg)
User• Name• Email• Company• Phone• Password• Accepts email?
Registration• Ticket type• Price• Paid amount• Paypal ref• Payment date• Invoice address [optional]
Talk• Title• Description• Tags[]• Slide file• Status : {pending, accept,
reject}• Email_sent• Position
Speaker*
*
Comment• Title• Text• Created date
*
*
Period• Stage• Title• Time of day• Day
![Page 32: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/32.jpg)
Example implementation
diagram
![Page 33: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/33.jpg)
Browser Smidig2012.no Paypal.com
1. POST /users
2. Redirect to paypalwith return_url and notify_url
3. Perform payment
4. POST /payment_notifications
5. Redirect to return_url
5. GET /user/<id>
Update user info
Show user info
Save user info
![Page 34: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/34.jpg)
Example deployment model
![Page 35: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/35.jpg)
Heroku
Smtp.dreamhost.com
Paypal
PostgreSQL
Smidig-conference
(Rails)
Web user
Developer
smidigdb
git.herokugithub
git pushgit pushgit pull
html/http
http
smtp
![Page 36: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/36.jpg)
/Uncovering a solution
![Page 37: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/37.jpg)
Communicating a solution
![Page 38: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/38.jpg)
![Page 39: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/39.jpg)
Vision
Stakeholders
Usage flow
Context
Domain model
Implementation
Deployment
![Page 40: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/40.jpg)
Does the architect have to do this
herself?
![Page 41: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/41.jpg)
Team effort
![Page 42: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/42.jpg)
![Page 43: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/43.jpg)
/Communicating a solution
![Page 44: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/44.jpg)
/Describing architecture
![Page 45: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/45.jpg)
Part II:
![Page 46: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/46.jpg)
Simplifying architecture
![Page 47: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/47.jpg)
Lasagna architecture
![Page 48: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/48.jpg)
Person-Controller
Person-Controller-
Impl
Person-Service
Person-ServiceImpl
Person-Repository
Person-Repository
Impl
PersonDao
PersonDaoImpl
Session-Factory
![Page 49: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/49.jpg)
Controllers
Services
Managers
Workers
Repositories
![Page 50: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/50.jpg)
Controllers
Services
Managers
Workers
Repositories
DTO
Domain
Mapping
![Page 51: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/51.jpg)
![Page 52: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/52.jpg)
Customer
Invoice
Order
Product
![Page 53: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/53.jpg)
Tidying up art (Ursus Wehrli)
![Page 54: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/54.jpg)
![Page 55: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/55.jpg)
![Page 56: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/56.jpg)
Feature oriented architecture
![Page 57: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/57.jpg)
Coherence• What changes together
lives together
![Page 58: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/58.jpg)
![Page 59: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/59.jpg)
Tolerance• What should be different
can be different
![Page 60: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/60.jpg)
![Page 61: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/61.jpg)
Meaning• What is central in domain
is central in code
![Page 62: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/62.jpg)
![Page 63: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/63.jpg)
Your thinking is contrained by
technology fashion:
![Page 64: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/64.jpg)
Controllers
Services
Managers
Workers
Repositories
DTO
Domain
Mapping
![Page 65: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/65.jpg)
Your solution is constrained by
deployment
![Page 66: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/66.jpg)
Web Application
Web user
Database
Browser
JSON/http
Web Service
SOAP
Web ServiceService
Consumer
DTO?
DTO
DTO
Controller
![Page 67: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/67.jpg)
Web Application
Web user
Database
Browser
JSON/http
DTO?Controller
DAO
![Page 68: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/68.jpg)
Web Application
Web user
html/http
Database
Controller
DAO
![Page 69: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/69.jpg)
Web Application
Web user
html/http
Database
Reverse proxy
html/http
Controller
DAO
![Page 70: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/70.jpg)
Web Application
Web user
Database
Rich client
Objects over http
DTO
DTOController
![Page 71: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/71.jpg)
Web Application
Web user
Database
Rich client
Web service
DTO
DTO
Service
Consumer
Controller
![Page 72: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/72.jpg)
Web Application
Web user
Database
Browser
JSON/http
Web Service
SOAP
Service
Consumer
DTO?
DTO
DTO
External client
Controller
DAO
![Page 73: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/73.jpg)
Web Application
Web user
Database
Browser
JSON/http
Service
External client
DTOController
DAO
![Page 74: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/74.jpg)
/Simplifying architecture
![Page 75: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/75.jpg)
Part III:
![Page 76: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/76.jpg)
Delivering software
![Page 77: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/77.jpg)
Common Sprint problems
![Page 78: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/78.jpg)
User stories without context
![Page 79: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/79.jpg)
Every feature must be perfect at first try
![Page 80: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/80.jpg)
Users don’t understand the demo
![Page 81: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/81.jpg)
One-sentence Scrum
![Page 82: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/82.jpg)
We demonstrate progress at regular intervals
![Page 83: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/83.jpg)
It’s all about the demo
![Page 84: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/84.jpg)
We demonstrate progress at regular intervals
![Page 85: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/85.jpg)
Progress towards what?
![Page 86: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/86.jpg)
Usage flow
1. Something happens in the real world
2. The event is communicated to the system
3. The system does something
4. Someone does something with the system
5. …
6. …
7. …
8. …
9. …
10. Some goal is achieved
![Page 87: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/87.jpg)
![Page 88: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/88.jpg)
![Page 89: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/89.jpg)
Rainbow plan
![Page 90: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/90.jpg)
Usage flow: frugalflights.com1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 91: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/91.jpg)
What would you do in Sprint 1?
![Page 92: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/92.jpg)
Usage flow: frugalflights.com1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 93: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/93.jpg)
Sprint 1: Walking skeleton1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 94: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/94.jpg)
Sprint 2: SMS support1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 95: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/95.jpg)
Sprint 3: Complete workflow1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 96: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/96.jpg)
Sprint 4: Complete SMS1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 97: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/97.jpg)
Sprint 5: Web pages1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 98: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/98.jpg)
Sprint 7: Integration1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 99: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/99.jpg)
Sprint 8: Spit-and-polish1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special flight offers
3. Periodically the System checks which customers should get notifications
4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system
5. The System notifies customer of any matching offers via SMS• Variation: The System notifies customer of any matching offers via email
6. The customer accepts the offer via SMS1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer
8. The system confirms the booking by sending an SMS to the customer
9. The customer can at any point see their active offers and accepted offers on the system website
10. The customer enjoys a cheap vacation!
![Page 100: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/100.jpg)
/Delivering software
![Page 101: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/101.jpg)
Conclusion:
![Page 102: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/102.jpg)
Travel light – 7 perspectives
Domain oriented architecture
Sprint with a (rainbow) plan
![Page 103: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/103.jpg)
What’s the common theme?
![Page 104: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/104.jpg)
Usage flow
![Page 105: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/105.jpg)
Good architecture comes from
understanding usage
![Page 106: Agile Architecture](https://reader033.vdocuments.site/reader033/viewer/2022061202/547c1fb3b4af9fee468b48ef/html5/thumbnails/106.jpg)
Thank [email protected]
http://johannesbrodwall.com
http://exilesoft.com
http://twitter.com/jhannes
• Vision• Stakeholders
• Usage flows – rainbow plans• Context• Domain
• (Simple) Deployment• (Feature oriented) implementation