Download presentation
Presentation is loading. Please wait.
Published byPeyton Singleton Modified over 9 years ago
1
Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global
2
Agenda
3
What’s an architect? How to “do” architecture One architect toolchest Practice
4
What is an architect?
5
(Hands on)
6
Types of architects
7
Problems for Solution architects
8
Skill for Solution architects
9
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)
10
How to «do» architecture?
11
Project initiation
12
Communicating vision
13
Maintaining the architecture
14
Toolchest
15
Example «Smidig» conference application
17
Vision Stakeholders Usage flow Context Domain model Implementation Deployment
18
Example vision statement
19
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.
20
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.
22
Example stakeholders
23
Speaker Description Experienced New speaker Passionate Duties Register talk Upload slide Give talk Values 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 payments Values Easy selection process Good information overview Never lose a participant Financial transparency
24
Sponsor Description Busy Manager Not very interested Duties Provide logo Pay sponsorship Values Informal communication Easy evaluation
25
Example usage flow
26
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
28
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
29
Example context model
30
Smidig2011.no Participant Speaker Organizer Printing company Paypal
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] 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
33
Example implementation diagram
34
Router Controller 1. Find controller 2. Dispatch action Model class 3. Find model Model 4. Manipulate model 5.? Save model Database View template 6. Render model with view template
35
Router /app/controllers UsersController 1. Find UserController 2. update(id) / app/models User class 3. find(id) app/models User 5. update_attr(params) 6. save Database 8. Redirect /users/ POST /users/ 4. SELECT … FROM users 7. UPDATE users SET …
36
Router /app/controllers UsersController 1. Find UsersController 2. show(id) /app/models User class 3. find(id) User Database /app/views/users show.html.erb 5. Render GET /users/ 4. SELECT … FROM users 6. Get attributes
37
Alternative
38
BrowserSmidig2012.no Paypal.com 1. POST /users 2. Redirect to paypal with return_url and notify_url 3. Perform payment 4. POST /payment_notifications 5. Redirect to return_url 5. GET /user/ Update user info Show user info Save user info
39
Example deployment model
40
Heroku Smtp.dreamhost.com Paypal PostgreSQL Smidig- conference (Rails) Web userDeveloper smidigdb git.herokugithub git push git pull html/http http smtp
41
Your turn
42
Practice example
43
For some stakeholder Who has a problem The architect bootcamp Is a type of activity Which gives a capability. Unlike most relevant alternative This has a distinguishing attribute.
44
For Exile Developers Who need to make architectural decisions and design The architect bootcamp Is an interactive workshop Which gives a set of tools. Unlike spending the time in projects This gives a chance for reflective learning.
45
1.Groups of three 2.Presentation of group visions 3.Lets’s make a shared vision!
46
Break until 13:30
47
Participants Description Developer Nominated In a project Likes to learn Duties Share knowledge Participate actively Get permission to attend Values Becoming productive Continue to learn after course Analytical skills Get to know people with ideas Customer Description Not here Pays for the time Duties Evaluate request to attend Values Productivity Domain understanding Skilled consultants Want your time! Exile mgmt Description PMO, Finn Some are present Duties Arrange coach Talk to customers Nominate participants Values Credible Exile «architects»
48
Coach Description Experienced architect Experience from real projects Reputation Can talk to customer Duties «Sell» the workshop Prepare Define scope Values «Adventure» Get to know participants for future cooperation Learn about different different projects Grow the Exilesoft brand
49
Real world example: CRM
50
14:30 Finn and Johannes discuss CRM vision live
51
For Exilesoft PMO Who should start up Pocket Mobile in Sweden 21st November The CRM task system Is a workflow system Which help organize all the practical details towards a goal. Unlike Outlook This gives a total picture for everyone involved. Vision: Pocket Mobile kickoff
52
For Exilesoft Sweden Sales Director Who needs to gather prospective customers into a room The CRM marketing module Is a mass marketing tool Which identifies, emails and follow-up potential systems using. Unlike Excel and YMLP This Identified receipients and let the whole sales team see the followup. Vision: Stockholm breakfast seminar
53
For ________________ Who ________________ The ________________ Is a _________________ Which ________________. Unlike ______________________ This _______________________. Vision: Customer conference
54
Usage flow – breakfast seminar 1.Exilesoft decides to have breakfast seminar 2.First time: Someone imports contact info and do-not-mail list from spreadsheets and Highrise 3.Campaign manager creates a receipent list 1.Include by geography (include unknown) 2.Exclude by financial parameters 3.Exclude by e.g. @hotmail.com 4.Exclude do-not-send-list 5.Make filter reusable in the future 4.Graphics guys make email 5.Campaign manager exports recipient list into YMLP 6.Campaign manager verifies mail and sends 7.YMLP tracks when users open, forward or delete emails 8.CRM fetches email events from YMLP 9.Receipient find more info and signs-up for event (in CRM??) 10.Campaign manager finds out who should receive reminders 11.Campaign manager gets participant list 1.Optional : Participant list includes pictures from Linkedin
55
Real world example
56
Statnett electricity reserves 1.Grid operator want to maintain balance of electric production and consumption 2.Power producer sends unused capacity per hour for each power plant to Statnett using EDIFACT –Detail: The capacity “line” has a price –Detail: Each plant may have several capacities at different prices –Detail: Capacity may be to increase or to decrease production 3.A spike occurs in the consumption or production 4.Grid operator lists the available reserves per power plant 1.Alternative: Operator filters the list by area 5.Grid operator selects a capacity to compensate for spike 6.Grid operator enters power usage on the capacity 1.Alternative: The system verifies that capacity is valid 7.Balance is restored 8.At end of hour, system sends usage to pricing system (XML/http) 9.Some time later, pricing system sends price for usage (XML/http) 10.System sends price capacity usage to accounting system 11.Accounting system pays producer for usage
57
How would you break it down?
58
Context model What parties are involved? How do they communicate?
59
Domain model What concepts are involved? How do they relate?
60
Start after lunch: 13:30
61
Resume after break 15:45
62
Implementation: Time series
63
Q&A
64
Your systems
65
Example vision statement
66
For some stakeholder Who has a problem The system Is a type of system Which gives a capability. Unlike most relevant alternative This has a distinguishing attribute.
67
Example stakeholders
68
User Who are they … What do they do? … What do they value? … User Who are they … What do they do? … What do they value? … User Who are they … What do they do? … What do they value? … User Who are they … What do they do? … What do they value? …
69
Example usage flow
70
…. 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
71
Example context model
72
What actors did you mention in scenario?
73
Example domain model
74
What concepts did you mention in scenario?
75
Example implementation diagram
76
How does the code work?
77
Example deployment model
78
Which servers are involved in production?
79
Conclusion:
80
Tomorrow: Make your system shine!
81
Thank you jbr@exilesoft.com http://johannesbrodwall.com http://exilesoft.com http://twitter.com/jhannes
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.