These are my slides from the Bare-Bones Software Architecture course at XP Days Ukraine 2012. The workshop outlines a quick workshop-oriented process for initiating software projects
5. A solution architect is
someone who understands
the problem of the customer
and uncovers and
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)
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. Participant? ??? ???
Who are they? Description Description
What do they do? Duties Duties
Why do they care? Values Values
20. 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.
21. 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.
24. Speaker Attendee Organizer
Description Description Description
• Experienced • Knows about agile • Volunteer
• New speaker • Works in project • Works in evenings
• Passionate • Norwegian • Has network
Duties Duties Duties
• Register talk • Pay for conference • Select talks
• Upload slide • Get approval to go • Follow up
• Give talk payments
Values Values
Values • Easy selection process
• Constructive
• Easy registration • Good information
feedback on talk overview
• Easy CfP • Never lose a participant
• Fast answer • Financial transparency
27. Attendance
1. Agile project practitioner wants to learn
2. Attendee goes to Smidig website
3. Attendee registers
4. Attendee pays using Paypal
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 with Print
Company
9. Attendee shows up at Smidig and has an
excellent time
28.
29. 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
35. 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
39. 1. Find controller
Router
2. Dispatch action
3. Find model
Controller Model class
4. Manipulate model Database
Model
5.? Save model
6. Render model with
view template
View template View template
40. POST /users/<id>
Router 1. Find UserController
2. update(id)
/app/controllers 3. find(id) /app/models 4. SELECT …
UsersController FROM users
User class
5. update_attr(params) Database
app/models
6. save User 7. UPDATE
8. Redirect /users/<id> users SET …
41. GET /users/<id>
Router 1. Find UsersController
2. show(id)
/app/controllers 3. find(id) /app/models 4. SELECT …
UsersController User class FROM users
Database
User
5. Render
/app/views/users
6. Get attributes
show.html.erb
43. 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
56. For some stakeholder
Who has a responsibilty
The system name
Is a type of system
Which gives a capability.
Unlike most relevant alternative
This has a distinguishing attribute.
57. Participant? ??? ???
Who are they? Description Description
What do they do? Duties Duties
What do they care Values Values
about?
58. ….
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
62. Frugalflights.com
1. 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 SMS
1. 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!
63. User User
Who are they Who are they
• … • …
What do they do? What do they do?
• … • …
What do they value? What do they value?
• … • …
User User
Who are they Who are they
• … • …
What do they do? What do they do?
• … • …
What do they value? What do they value?
• … • …
66. Context: Frugalflights.com
1. A customer wants cheap vacations
2. The customer signs up for daily or weekly notifications of special
flight offers (where?)
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 SMS
1. Variation: The customer accepts the offer on the system website
7. The System books the tickets on behalf of the customer (where?)
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!
67. Domain: Frugalflights.com
1. A customer wants cheap vacations
2. The customer signs up (?) for daily or weekly notifications of
special flight offers (=> “create a subscription”?)
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
(=> “sends notification”?)
• Variation: The System notifies customer of any matching offers via
email
6. The customer accepts the offer via SMS (=> “send acceptance”)
1. 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 (=> “sends confirmation”?)
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!
74. Statnett electricity reserves
1. Grid operator want to maintain balance of electric production and consumption
2. Power producer sends unused capacity (reserves) per hour for each power plant to
LARM using EDIFACT via Sterling Integrator
– 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 sees list of available reserves per power plant
1. Alternative: Operator filters the list by grid market area
5. Grid operator selects a reserve to regulate for spike
6. Grid operator enters power usage on the regulation
1. Alternative: The system verifies that regulation is valid
7. Grid operator communicates the regulation to producer’s operation center using phone
1. Future: The system sends the regulation to the producer as XML/http
8. Balance is restored
9. At end of hour, system sends usage to pricing system (NOIS) (XML/http) via Sterling
Integrator
10. Some time later, pricing system sends price for usage via SI
11. System sends price capacity usage to accounting system via SI
12. Accounting system pays producer for usage