1 / 107

Agile Architecture

Agile Architecture. XP Days 2012 Johannes Brodwall, Chief scientist Exilesoft Global. What is an architect? From greek Arkhi-Tecton Tecton : Builder Arkhi : Chief. Like “Arch angel” Or “Arch villain”. What is an architect? “Chief builder”. What is an architect?

jalen
Télécharger la présentation

Agile Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agile Architecture XP Days 2012 Johannes Brodwall, Chief scientist Exilesoft Global

  2. What is an architect? From greekArkhi-Tecton Tecton: Builder Arkhi: Chief. Like “Arch angel” Or “Arch villain”

  3. What is an architect? “Chief builder”

  4. What is an architect? (Exilesoft definition)

  5. A solution architect is someone who understands the problem of the customer and uncoversand communicates a feasible solution

  6. 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)

  7. Uncover problemvision, stakeholders, usage flow Describe problemcontext and domain model Describe solutiondeployment, implementation model

  8. Describing architecture Simplifying architecture Delivering architecture Delivering software • Delivering architecture

  9. Part I:

  10. Describing architecture

  11. Understanding problem Uncovering solution Communicating architecture

  12. Understanding the problem

  13. (Tool time)

  14. For some stakeholder Who has a responsibility The Bare-bones architecture workshop Is a type of activity Which gives a capability. Unlike most relevant alternative This has a distinguishing attribute.

  15. For __________________ Who ________________ The _________________ Is a _________________ Which ________________. Unlike ______________________ This _______________________.

  16. ??? ??? Description Who are they? Description Participant? Duties What do they do? Duties Values Why do they care? Values

  17. Example «Smidig» conference application

  18. Example vision statement

  19. For Agile practitioners Who need to expand on their experience and network TheSmidig conference Is a networking event Which connects you with other Agile practitioners. Unlike traditional conferences Thispresents the experience of many people through lightning talks.

  20. For Conference organizers Who want to organize a good conference TheSmidig conference app Is a web application Which eliminates unnecessary work. Unlike commercial conference apps Thisis optimized for the large number of talks we have and allows us to make changes fast.

  21. Example stakeholders

  22. Organizer Attendee Description Volunteer Works in evenings Has network Description Experienced New speaker Passionate Description Knows about agile Works in project Norwegian Speaker Duties Select talks Follow up payments Duties Register talk Upload slide Give talk Duties Pay for conference Get approval to go Values Easy selection process Good information overview Never lose a participant Financial transparency Values Constructive feedback on talk Easy CfP Fast answer Values Easy registration

  23. Sponsor Description Busy Manager Not very interested Duties Provide logo Pay sponsorship Values Informal communication Easy evaluation

  24. Example usage flow

  25. Attendance • Agile project practitioner wants to learn • Attendee goes to Smidig website • Attendee registers • Attendee pays using Paypal • Attendee receives confirmation mail • Organizer can see the registration • Organizer sends reminder email to attendee to come • Organizer prints badges for attendees with Print Company • Attendee shows up at Smidig and has an excellent time

  26. Speaker • Agile experts wants to share knowledge • Potential speaker goes to Smidig website • Potential speaker registers personal info • Potential speaker registers talk • Potential speaker receives registration confirmation email • Organizer sees registered talk and can market speaking opportunities • Organizer accepts talk for confence • Speaker receives acceptance email • Alternative: Speaker withdraws talk – organizer updates the talk and selects another • Organizer prints badges for speakers • Speaker shows up at Smidig and gives talk

  27. /Understanding the problem

  28. Uncovering a solution

  29. Example context model

  30. Paypal Smidig2011.no Printing company Participant Speaker Organizer

  31. Example domain model

  32. User • Name • Email • Company • Phone • Password • Accepts email? • Registration • Ticket type • Price • Paid amount • Paypal ref • Payment date • Invoice address [optional] * * • Comment • Title • Text • Created date Speaker * * • Talk • Title • Description • Tags[] • Slide file • Status : {pending, accept, reject} • Email_sent • Position • Period • Stage • Title • Time of day • Day *

  33. Example deployment model

  34. html/http Heroku git push git pull git push Smidig-conference (Rails) Paypal http github git.heroku smtp Web user Developer Smtp.dreamhost.com PostgreSQL smidigdb

  35. Example implementation diagram

  36. Router 1. Find controller 2. Dispatch action Controller Model class 3. Find model Database 4. Manipulate model Model 5.? Save model 6. Render model with view template View template View template

  37. POST /users/<id> Router 1. Find UserController 2. update(id) /app/controllers UsersController /app/models User class 4. SELECT … FROM users 3. find(id) Database 5. update_attr(params) app/models User 7. UPDATE users SET … 6. save 8. Redirect /users/<id>

  38. GET /users/<id> Router 1. Find UsersController 2. show(id) /app/controllers UsersController /app/models User class 4. SELECT … FROM users 3. find(id) Database User 5. Render /app/views/users show.html.erb 6. Get attributes

  39. Alternative

  40. Paypal.com Browser Smidig2012.no 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

  41. /Uncovering a solution

  42. Communicating a solution

  43. Vision Stakeholders Usage flow Context Domain model Deployment Implementation

  44. Does the architect have to do this herself?

  45. Team effort

More Related