Your SlideShare is downloading. ×
Agile Architecture
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Agile Architecture

648
views

Published on

Agile Archite

Agile Archite


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
648
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
36
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Agile Architecture Colombo Agile Meetup Johannes Brodwall, Chief scientist Exilesoft Global
  • 2. What is an architect? From greek Arkhi-TectonArkhi: Chief. Like “Arch angel” Or “Arch nemesis” Tecton: Builder
  • 3. What is an architect? (Exilesoft definition)
  • 4. A solution architect is someone who understandsthe problem of the customer and uncovers and communicates a feasible solution
  • 5. A solution architect is someone who understands the customer’s problem (includingcontraints, context, domain knowledge) and uncovers (though a team effort) and communicates (with credibility) a feasible solution (primarily, but not exclusively technical)
  • 6. Uncover problem vision, stakeholders, usage flow Describe problem context and domain model Describe solutiondeployment, implementation model Simplify architecture feature oriented structure Deliver software rainbow plans
  • 7. • Describing architecture• Simplifying architecture • Delivering architecture • Delivering software
  • 8. Part I:
  • 9. Describingarchitecture
  • 10. Understanding the problem
  • 11. (Tool time)
  • 12. For some stakeholder Who has a goal The Colombo Agile Meetup Is a type of activity Which gives a capability. Unlike most relevant alternativeThis has a distinguishing attribute.
  • 13. For anyone interested in agile methods Who ________________ The Colombo Agile Meetup Is a _________________ Which ________________. Unlike ______________________ This _______________________.
  • 14. Example«Smidig» conference application
  • 15. Example vision statement
  • 16. For Agile practitionersWho need to expand on their experience and network The Smidig conference Is a networking event Which connects you with other Agile practitioners. Unlike traditional conferencesThis presents the experience of many people through lightning talks.
  • 17. 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 appsThis is optimized for the large number of talkswe have and allows us to make changes fast.
  • 18. Examplestakeholders
  • 19. Speaker Attendee OrganizerDescription Description Description• Experienced • Knows about agile • Volunteer• New speaker • Works in project • Works in evenings• Passionate • Norwegian • Has networkDuties Duties Duties• Register talk • Pay for conference • Select talks• Upload slide • Get approval to go • Follow up• Give talk paymentsValues Values Values • Easy selection process• Constructive • Easy registration • Good information feedback on talk overview• Easy CfP • Never lose a participant• Fast answer • Financial transparency
  • 20. SponsorDescription• Busy• Manager• Not very interestedDuties• Provide logo• Pay sponsorshipValues• Informal communication• Easy evaluation
  • 21. Example usage flow
  • 22. Attendance1. Agile project practitioner wants to learn2. Attendee goes to Smidig website3. Attendee registers4. Attendee pays5. Attendee receives confirmation mail6. Organizer can see the registration7. Organizer sends reminder email to attendee to come8. Organizer prints badges for attendees9. Attendee shows up at Smidig and has an excellent time
  • 23. Speaker1. Agile experts wants to share knowledge2. Potential speaker goes to Smidig website3. Potential speaker registers personal info4. Potential speaker registers talk5. Potential speaker receives registration confirmation email6. Organizer sees registered talk and can market speaking opportunities7. Organizer accepts talk for confence8. Speaker receives acceptance email – Alternative: Speaker withdraws talk – organizer updates the talk and selects another9. Organizer prints badges for speakers10. Speaker shows up at Smidig and gives talk
  • 24. /Understanding the problem
  • 25. Uncovering a solution
  • 26. Example context model
  • 27. Participant Speaker OrganizerPaypal Smidig2011.no Printing company
  • 28. Example domain model
  • 29. User • Name Registration • Email • Ticket type • Price • Company • Paid amount • Phone • Paypal ref • Password • Payment date • Invoice address [optional] • Accepts email? *Comment *• Title Speaker• Text• Created date * * Talk Period • Title • Description • Stage • Tags[] • Title • Slide file • Time of day • Status : • Day {pending, accept, rejec t} • Email_sent • Position
  • 30. Exampleimplementation diagram
  • 31. Browser Smidig2012.no Paypal.com 1. POST /users Save user info 2. Redirect to paypal with return_url and notify_url 3. Perform payment 4. POST /payment_notifications Update user info 5. Redirect to return_url 5. GET /user/<id> Show user info
  • 32. Exampledeployment model
  • 33. Web user Developer html/httpgit push git pushgit pull Smidig- conference http Paypal github git.heroku (Rails) smtp Heroku Smtp.dreamhost.com smidigdb PostgreSQL
  • 34. /Uncovering a solution
  • 35. Communicating a solution
  • 36. Vision Stakeholders Usage flow Context Domain modelImplementation Deployment
  • 37. Does the architect have to do this herself?
  • 38. Team effort
  • 39. /Communicating a solution
  • 40. /Describingarchitecture
  • 41. Part II:
  • 42. Simplifyingarchitecture
  • 43. Lasagnaarchitecture
  • 44. Person- Person- Person- PersonDaoController Service Repository Person- Person- Person- PersonDaoController- Repository ServiceImpl Impl Impl Impl Session- Factory
  • 45. Controllers Services Managers WorkersRepositories
  • 46. Controllers DTO Services Mapping Domain Managers WorkersRepositories
  • 47. CustomerInvoiceOrderProduct
  • 48. Tidying up art (Ursus Wehrli)
  • 49. Feature oriented architecture
  • 50. Coherence• What changes together lives together
  • 51. Tolerance• What should be different can be different
  • 52. Meaning• What is central in domain is central in code
  • 53. Your thinking is contrained bytechnology fashion:
  • 54. Controllers DTO Services Mapping Domain Managers WorkersRepositories
  • 55. Your solution is constrained by deployment
  • 56. Web user Browser JSON/httpController DTO? Web ApplicationConsumer DTO SOAPService DTO Web Service Database
  • 57. Web user Browser JSON/http DTO?ControllerWeb Application DAO Database
  • 58. Web user html/httpControllerWeb Application DAO Database
  • 59. Web user html/http Reverse proxy html/httpControllerWeb Application DAO Database
  • 60. Web userController Rich client DTO Objects over http DTOWeb Application Database
  • 61. Web userController Rich clientConsumer DTO Web serviceService DTOWeb Application Database
  • 62. Web userExternal client Browser JSON/http Controller DTO? Web Application Consumer DTO SOAP Service DTO Web Service DAO Database
  • 63. Web userExternal client Browser JSON/http Service Controller DTO Web Application DAO Database
  • 64. /Simplifyingarchitecture
  • 65. Part III:
  • 66. Delivering software
  • 67. Common Sprint problems
  • 68. User stories without context
  • 69. Every feature must be perfect at first try
  • 70. Users don’t understand the demo
  • 71. One-sentence Scrum
  • 72. We demonstrate progress at regular intervals
  • 73. It’s all about the demo
  • 74. We demonstrate progress at regular intervals
  • 75. Progress towards what?
  • 76. Usage flow1. Something happens in the real world2. The event is communicated to the system3. The system does something4. Someone does something with the system5. …6. …7. …8. …9. …10. Some goal is achieved
  • 77. Rainbow plan
  • 78. Usage flow: frugalflights.com1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 79. What would you do in Sprint 1?
  • 80. Usage flow: frugalflights.com1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 81. Sprint 1: Walking skeleton1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 82. Sprint 2: SMS support1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 83. Sprint 3: Complete workflow1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 84. Sprint 4: Complete SMS1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 85. Sprint 5: Web pages1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 86. Sprint 7: Integration1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 87. Sprint 8: Spit-and-polish1. A customer wants cheap vacations2. The customer signs up for daily or weekly notifications of special flight offers3. Periodically the System checks which customers should get notifications4. The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system5. The System notifies customer of any matching offers via SMS • Variation: The System notifies customer of any matching offers via email6. The customer accepts the offer via SMS 1. Variation: The customer accepts the offer on the system website7. The System books the tickets on behalf of the customer8. The system confirms the booking by sending an SMS to the customer9. The customer can at any point see their active offers and accepted offers on the system website10. The customer enjoys a cheap vacation!
  • 88. /Delivering software
  • 89. Conclusion:
  • 90. Travel light – 7 perspectivesDomain oriented architecture Sprint with a (rainbow) plan
  • 91. What’s the common theme?
  • 92. Usage flow
  • 93. Good architecture comes fromunderstanding usage
  • 94. Thank you jbr@exilesoft.com http://johannesbrodwall.com http://exilesoft.com http://twitter.com/jhannes • Vision • Stakeholders • Usage flows – rainbow plans • Context • Domain • (Simple) Deployment • (Feature oriented) implementation