agile architecture in odessa
DESCRIPTION
Agile Architecture as shown on Odessa Java Tech TalksTRANSCRIPT
![Page 1: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/1.jpg)
Agile Architecture
OdessaJohannes Brodwall, Chief scientist
Exilesoft Global
![Page 2: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/2.jpg)
What is an architect?From greek Arkhi-Tecton
Tecton: Builder
Arkhi: Chief.
Like “Arch angel”
Or “Arch nemesis”
![Page 3: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/3.jpg)
What is an architect?“Chief builder”
![Page 4: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/4.jpg)
What is an architect?(Exilesoft definition)
![Page 5: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/5.jpg)
A solution architect is someone who understands the problem of
the customerand uncovers and
communicatesa feasible solution
![Page 6: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/6.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 7: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/7.jpg)
Uncover problemvision, stakeholders, usage flow
Describe problemcontext and domain model
Describe solutiondeployment, implementation model
Simplify architecturefeature oriented structure
Deliver softwarerainbow plans
![Page 8: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/8.jpg)
• Describing architecture• Simplifying architecture• Delivering architecture
• Delivering software
• Delivering architecture
![Page 9: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/9.jpg)
Part I:
![Page 10: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/10.jpg)
Describing architecture
![Page 11: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/11.jpg)
• Understanding problem• Uncovering solution
• Communicating architecture
![Page 12: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/12.jpg)
Understanding the problem
![Page 13: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/13.jpg)
(Tool time)
![Page 14: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/14.jpg)
For some stakeholder
Who has a goal
The Odessa agile user group (?)
Is a type of activity
Which gives a capability.
Unlike most relevant alternative
This has a distinguishing attribute.
![Page 15: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/15.jpg)
For __________________
Who ________________
The Odessa agile user group (?)
Is a _________________
Which ________________.
Unlike ______________________
This _______________________.
![Page 16: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/16.jpg)
Example«Smidig» conference application
![Page 17: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/17.jpg)
Example vision statement
![Page 18: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/18.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 19: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/19.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 20: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/20.jpg)
![Page 21: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/21.jpg)
Example stakeholders
![Page 22: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/22.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 23: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/23.jpg)
Sponsor
Description• Busy• Manager• Not very interested
Duties• Provide logo• Pay sponsorship
Values• Informal
communication• Easy evaluation
![Page 24: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/24.jpg)
Example usage flow
![Page 25: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/25.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 26: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/26.jpg)
![Page 27: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/27.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 28: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/28.jpg)
/Understanding the problem
![Page 29: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/29.jpg)
Uncovering a solution
![Page 30: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/30.jpg)
Example context model
![Page 31: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/31.jpg)
Smidig2011.no
Participant Speaker
Organizer
Printing company
Paypal
![Page 32: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/32.jpg)
Example domain model
![Page 33: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/33.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 34: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/34.jpg)
Example deployment model
![Page 35: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/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 in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/36.jpg)
Example implementation
diagram
![Page 37: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/37.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 38: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/38.jpg)
/Uncovering a solution
![Page 39: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/39.jpg)
Communicating a solution
![Page 40: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/40.jpg)
![Page 41: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/41.jpg)
Vision
Stakeholders
Usage flow
Context
Domain model
Implementation
Deployment
![Page 42: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/42.jpg)
Does the architect have to do this
herself?
![Page 43: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/43.jpg)
Team effort
![Page 44: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/44.jpg)
![Page 45: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/45.jpg)
/Communicating a solution
![Page 46: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/46.jpg)
/Describing architecture
![Page 47: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/47.jpg)
Part II:
![Page 48: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/48.jpg)
Simplifying architecture
![Page 49: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/49.jpg)
• Lasagna architecture• Feature oriented architecture
• Deployment constraints
![Page 50: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/50.jpg)
Lasagna architecture
![Page 51: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/51.jpg)
Person-Controller
Person-Controller-
Impl
Person-Service
Person-ServiceImpl
Person-Repository
Person-Repository
Impl
PersonDao
PersonDaoImpl
Session-Factory
![Page 52: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/52.jpg)
Controllers
Services
Managers
Workers
Repositories
![Page 53: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/53.jpg)
Controllers
Services
Managers
Workers
Repositories
DTO
Domain
Mapping
![Page 54: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/54.jpg)
![Page 55: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/55.jpg)
Customer
Invoice
Order
Product
![Page 56: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/56.jpg)
Tidying up art (Ursus Wehrli)
![Page 57: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/57.jpg)
![Page 58: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/58.jpg)
![Page 59: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/59.jpg)
Feature oriented architecture
![Page 60: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/60.jpg)
Coherence• What changes together
lives together
![Page 61: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/61.jpg)
![Page 62: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/62.jpg)
Tolerance• What should be different
can be different
![Page 63: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/63.jpg)
![Page 64: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/64.jpg)
Meaning• What is central in domain
is central in code
![Page 65: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/65.jpg)
![Page 66: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/66.jpg)
Your thinking is contrained by
technology fashion:
![Page 67: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/67.jpg)
Controllers
Services
Managers
Workers
Repositories
DTO
Domain
Mapping
![Page 68: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/68.jpg)
Your solution is constrained by
deployment
![Page 69: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/69.jpg)
Web Application
Web user
Database
Browser
JSON/http
Web Service
SOAP
Web ServiceService
Consumer
DTO?
DTO
DTO
Controller
![Page 70: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/70.jpg)
Web Application
Web user
Database
Browser
JSON/http
DTO?Controller
DAO
![Page 71: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/71.jpg)
Web Application
Web user
html/http
Database
Controller
DAO
![Page 72: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/72.jpg)
Web Application
Web user
html/http
Database
Reverse proxy
html/http
Controller
DAO
![Page 73: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/73.jpg)
Web Application
Web user
Database
Rich client
Objects over http
DTO
DTOController
![Page 74: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/74.jpg)
Web Application
Web user
Database
Rich client
Web service
DTO
DTO
Service
Consumer
Controller
![Page 75: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/75.jpg)
Web Application
Web user
Database
Browser
JSON/http
Web Service
SOAP
Service
Consumer
DTO?
DTO
DTO
External client
Controller
DAO
![Page 76: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/76.jpg)
Web Application
Web user
Database
Browser
JSON/http
Service
External client
DTOController
DAO
![Page 77: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/77.jpg)
/Simplifying architecture
![Page 78: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/78.jpg)
Part III:
![Page 79: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/79.jpg)
Delivering software
![Page 80: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/80.jpg)
• Common sprint problems• Demo driven development
• Rainbow plans
![Page 81: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/81.jpg)
Common Sprint problems
![Page 82: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/82.jpg)
User stories without context
![Page 83: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/83.jpg)
Every feature must be perfect at first try
![Page 84: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/84.jpg)
Users don’t understand the demo
![Page 85: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/85.jpg)
One-sentence Scrum
![Page 86: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/86.jpg)
We demonstrate progress at regular intervals
![Page 87: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/87.jpg)
It’s all about the demo
![Page 88: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/88.jpg)
We demonstrate progress at regular intervals
![Page 89: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/89.jpg)
Progress towards what?
![Page 90: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/90.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 91: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/91.jpg)
![Page 92: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/92.jpg)
![Page 93: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/93.jpg)
Rainbow plan
![Page 94: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/94.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 95: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/95.jpg)
What would you do in Sprint 1?
![Page 96: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/96.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 97: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/97.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 98: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/98.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 99: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/99.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 100: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/100.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 101: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/101.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 102: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/102.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 103: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/103.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 104: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/104.jpg)
/Delivering software
![Page 105: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/105.jpg)
Conclusion:
![Page 106: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/106.jpg)
Travel light – 7 perspectives
Domain oriented architecture
Sprint with a (rainbow) plan
![Page 107: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/107.jpg)
What’s the common theme?
![Page 108: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/108.jpg)
Usage flow
![Page 109: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/109.jpg)
Good architecture comes from
understanding usage
![Page 110: Agile Architecture in Odessa](https://reader033.vdocuments.site/reader033/viewer/2022051411/547c1fb1b4af9fc3188b465d/html5/thumbnails/110.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