+ All Categories
Home > Documents > Architect Bootcamp

Architect Bootcamp

Date post: 22-Feb-2016
Category:
Upload: gilon
View: 99 times
Download: 0 times
Share this document with a friend
Description:
Architect Bootcamp. Johannes Brodwall, Chief scientist Exilesoft Global. Agenda. What’s an architect? How to “do” architecture One architect toolchest Practice. What is an architect?. (Hands on). Types of architects. Problems for Solution architects. Skill for Solution architects. - PowerPoint PPT Presentation
Popular Tags:
81
Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global
Transcript
Page 1: Architect Bootcamp

Architect BootcampJohannes Brodwall, Chief scientist

Exilesoft Global

Page 2: Architect Bootcamp

Agenda

Page 3: Architect Bootcamp

What’s an architect?How to “do” architecture

One architect toolchest• Practice

Page 4: Architect Bootcamp

What is an architect?

Page 5: Architect Bootcamp

(Hands on)

Page 6: Architect Bootcamp

Types of architects

Page 7: Architect Bootcamp

Problems for Solution architects

Page 8: Architect Bootcamp

Skill for Solution architects

Page 9: Architect Bootcamp

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 10: Architect Bootcamp

How to «do» architecture?

Page 11: Architect Bootcamp

Project initiation

Page 12: Architect Bootcamp

Communicating vision

Page 13: Architect Bootcamp

Maintaining the architecture

Page 14: Architect Bootcamp

Toolchest

Page 15: Architect Bootcamp

Example«Smidig» conference application

Page 16: Architect Bootcamp
Page 17: Architect Bootcamp

VisionStakeholders

Usage flowContext

Domain modelImplementation

Deployment

Page 18: Architect Bootcamp

Example vision statement

Page 19: Architect Bootcamp

For Agile practitionersWho need to expand on their experience and

networkThe Smidig conference

Is a networking eventWhich connects you with other Agile practitioners.

Unlike traditional conferencesThis presents the experience of many people

through lightning talks.

Page 20: Architect Bootcamp

For Conference organizersWho want to organize a good conference

The Smidig conference appIs a web application

Which eliminates unnecessary work.

Unlike commercial conference appsThis is optimized for the large number of talks we have and allows us to make changes fast.

Page 21: Architect Bootcamp
Page 22: Architect Bootcamp

Example stakeholders

Page 23: Architect Bootcamp

Speaker

Description• Experienced• New speaker• PassionateDuties• Register talk• Upload slide• Give talkValues• Constructive feedback

on talk• Easy CfP• Fast answer

AttendeeDescription• Knows about agile• Works in project• NorwegianDuties• Pay for conference• Get approval to go

Values• Easy registration

OrganizerDescription• Volunteer• Works in evenings• Has networkDuties• Select talks• Follow up

paymentsValues• Easy selection process• Good information overview• Never lose a participant• Financial transparency

Page 24: Architect Bootcamp

Sponsor

Description• Busy• Manager• Not very interested

Duties• Provide logo• Pay sponsorship

Values• Informal

communication• Easy evaluation

Page 25: Architect Bootcamp

Example usage flow

Page 26: Architect Bootcamp

Attendance

1. 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

Page 27: Architect Bootcamp
Page 28: Architect Bootcamp

Speaker

1. 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 another

9. Organizer prints badges for speakers10. Speaker shows up at Smidig and gives talk

Page 29: Architect Bootcamp

Example context model

Page 30: Architect Bootcamp

Smidig2011.no

Participant Speaker

Organizer

Printing company

Paypal

Page 31: Architect Bootcamp

Example domain model

Page 32: Architect Bootcamp

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 33: Architect Bootcamp

Example implementation

diagram

Page 34: Architect Bootcamp

Router

Controller

1. Find controller

2. Dispatch action

Model class3. Find model

Model4. Manipulate model

5.? Save model

Database

View template View template

6. Render model with view template

Page 35: Architect Bootcamp

Router

/app/controllersUsersController

1. Find UserController

2. update(id)

/app/modelsUser class

3. find(id)

app/modelsUser

5. update_attr(params)

6. save

Database

8. Redirect /users/<id>

POST /users/<id>

4. SELECT … FROM users

7. UPDATE users SET …

Page 36: Architect Bootcamp

Router

/app/controllersUsersController

1. Find UsersController

2. show(id)

/app/modelsUser class

3. find(id)

UserDatabase

/app/views/usersshow.html.erb

5. Render

GET /users/<id>

4. SELECT … FROM users

6. Get attributes

Page 37: Architect Bootcamp

Alternative

Page 38: Architect Bootcamp

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 39: Architect Bootcamp

Example deployment model

Page 40: Architect Bootcamp

HerokuSmtp.dreamhost.com

Paypal

PostgreSQL

Smidig-conference

(Rails)

Web user

Developer

smidigdb

git.herokugithub

git pushgit pushgit pull

html/http

http

smtp

Page 41: Architect Bootcamp

Your turn

Page 42: Architect Bootcamp

Practice example

Page 43: Architect Bootcamp

For some stakeholderWho has a problem

The architect bootcampIs a type of activity

Which gives a capability.

Unlike most relevant alternativeThis has a distinguishing attribute.

Page 44: Architect Bootcamp

For Exile DevelopersWho need to make architectural decisions and

designThe architect bootcamp

Is an interactive workshopWhich gives a set of tools.

Unlike spending the time in projectsThis gives a chance for reflective learning.

Page 45: Architect Bootcamp

1. Groups of three2. Presentation of group visions3. Lets’s make a shared vision!

Page 46: Architect Bootcamp

Break until 13:30

Page 47: Architect Bootcamp

Participants

Description• Developer• Nominated• In a project• Likes to learn

Duties• Share knowledge• Participate actively• Get permission to

attendValues• 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 mgmtDescription• PMO, Finn• Some are present

Duties• Arrange coach• Talk to customers• Nominate participants

Values• Credible Exile

«architects»

Page 48: Architect Bootcamp

Coach

Description• Experienced architect• Experience from real projects• Reputation• Can talk to customer

Duties• «Sell» the workshop• Prepare• Define scopeValues• «Adventure»• Get to know participants for

future cooperation• Learn about different different

projects• Grow the Exilesoft brand

Page 49: Architect Bootcamp

Real world example:CRM

Page 50: Architect Bootcamp

14:30 Finn and Johannes discuss CRM vision live

Page 51: Architect Bootcamp

For Exilesoft PMOWho should start up Pocket Mobile in

Sweden 21st NovemberThe CRM task system

Is a workflow systemWhich help organize all the practical details

towards a goal.Unlike Outlook This gives a total picture for

everyone involved.

Vision: Pocket Mobile kickoff

Page 52: Architect Bootcamp

For Exilesoft Sweden Sales DirectorWho needs to gather prospective customers into a room

The CRM marketing moduleIs a mass marketing tool

Which identifies, emails and follow-up potential systems using.

Unlike Excel and YMLPThis Identified receipients and let the whole sales team see

the followup.

Vision: Stockholm breakfast seminar

Page 53: Architect Bootcamp

For ________________Who ________________The ________________

Is a _________________Which ________________.

Unlike ______________________This _______________________.

Vision: Customer conference

Page 54: Architect Bootcamp

Usage flow – breakfast seminar1. Exilesoft decides to have breakfast seminar2. First time: Someone imports contact info and do-not-mail list from spreadsheets and

Highrise3. Campaign manager creates a receipent list

1. Include by geography (include unknown)2. Exclude by financial parameters3. Exclude by e.g. @hotmail.com4. Exclude do-not-send-list5. Make filter reusable in the future

4. Graphics guys make email5. Campaign manager exports recipient list into YMLP6. Campaign manager verifies mail and sends7. YMLP tracks when users open, forward or delete emails8. CRM fetches email events from YMLP9. Receipient find more info and signs-up for event (in CRM??)10. Campaign manager finds out who should receive reminders11. Campaign manager gets participant list

1. Optional: Participant list includes pictures from Linkedin

Page 55: Architect Bootcamp

Real world example

Page 56: Architect Bootcamp

Statnett electricity reserves1. Grid operator want to maintain balance of electric production and

consumption2. 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 production4. Grid operator lists the available reserves per power plant

1. Alternative: Operator filters the list by area5. Grid operator selects a capacity to compensate for spike6. Grid operator enters power usage on the capacity

1. Alternative: The system verifies that capacity is valid7. Balance is restored8. 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 system11. Accounting system pays producer for usage

Page 57: Architect Bootcamp

How would you break it down?

Page 58: Architect Bootcamp

Context model• What parties are involved?

• How do they communicate?

Page 59: Architect Bootcamp

Domain model• What concepts are

involved?• How do they relate?

Page 60: Architect Bootcamp

Start after lunch:13:30

Page 61: Architect Bootcamp

Resume after break15:45

Page 62: Architect Bootcamp

Implementation:Time series

Page 63: Architect Bootcamp

Q&A

Page 64: Architect Bootcamp

Your systems

Page 65: Architect Bootcamp

Example vision statement

Page 66: Architect Bootcamp

For some stakeholderWho has a problem

The systemIs a type of system

Which gives a capability.

Unlike most relevant alternativeThis has a distinguishing attribute.

Page 67: Architect Bootcamp

Example stakeholders

Page 68: Architect Bootcamp

UserWho are they• …What do they do?• …What do they value?• …

UserWho are they• …What do they do?• …What do they value?• …

UserWho are they• …What do they do?• …What do they value?• …

UserWho are they• …What do they do?• …What do they value?• …

Page 69: Architect Bootcamp

Example usage flow

Page 70: Architect Bootcamp

….

1. 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

Page 71: Architect Bootcamp

Example context model

Page 72: Architect Bootcamp

What actors did you mention in scenario?

Page 73: Architect Bootcamp

Example domain model

Page 74: Architect Bootcamp

What concepts did you mention in

scenario?

Page 75: Architect Bootcamp

Example implementation

diagram

Page 76: Architect Bootcamp

How does the code work?

Page 77: Architect Bootcamp

Example deployment model

Page 78: Architect Bootcamp

Which servers are involved in

production?

Page 79: Architect Bootcamp

Conclusion:

Page 80: Architect Bootcamp

Tomorrow: Make your system shine!

Page 81: Architect Bootcamp

Thank [email protected]

http://johannesbrodwall.comhttp://exilesoft.com

http://twitter.com/jhannes


Recommended