Architect Bootcamp

Post on 22-Feb-2016

96 views 0 download

Tags:

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

Transcript of Architect Bootcamp

Architect BootcampJohannes 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

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)

How to «do» architecture?

Project initiation

Communicating vision

Maintaining the architecture

Toolchest

Example«Smidig» conference application

VisionStakeholders

Usage flowContext

Domain modelImplementation

Deployment

Example vision statement

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.

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.

Example stakeholders

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

Sponsor

Description• Busy• Manager• Not very interested

Duties• Provide logo• Pay sponsorship

Values• Informal

communication• Easy evaluation

Example usage flow

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

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

Example context model

Smidig2011.no

Participant Speaker

Organizer

Printing company

Paypal

Example domain model

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

Example implementation

diagram

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

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 …

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

Alternative

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

Example deployment model

HerokuSmtp.dreamhost.com

Paypal

PostgreSQL

Smidig-conference

(Rails)

Web user

Developer

smidigdb

git.herokugithub

git pushgit pushgit pull

html/http

http

smtp

Your turn

Practice example

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.

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.

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

Break until 13:30

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»

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

Real world example:CRM

14:30 Finn and Johannes discuss CRM vision live

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

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

For ________________Who ________________The ________________

Is a _________________Which ________________.

Unlike ______________________This _______________________.

Vision: Customer conference

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

Real world example

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

How would you break it down?

Context model• What parties are involved?

• How do they communicate?

Domain model• What concepts are

involved?• How do they relate?

Start after lunch:13:30

Resume after break15:45

Implementation:Time series

Q&A

Your systems

Example vision statement

For some stakeholderWho has a problem

The systemIs a type of system

Which gives a capability.

Unlike most relevant alternativeThis has a distinguishing attribute.

Example stakeholders

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?• …

Example usage flow

….

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

Example context model

What actors did you mention in scenario?

Example domain model

What concepts did you mention in

scenario?

Example implementation

diagram

How does the code work?

Example deployment model

Which servers are involved in

production?

Conclusion:

Tomorrow: Make your system shine!

Thank youjbr@exilesoft.com

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

http://twitter.com/jhannes