Top Banner
Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global
81

Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Apr 01, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Architect BootcampJohannes Brodwall, Chief scientist

Exilesoft Global

Page 2: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Agenda

Page 3: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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

One architect toolchest• Practice

Page 4: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

What is an architect?

Page 5: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

(Hands on)

Page 6: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Types of architects

Page 7: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Problems for Solution architects

Page 8: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Skill for Solution architects

Page 9: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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 Johannes Brodwall, Chief scientist Exilesoft Global.

How to «do» architecture?

Page 11: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Project initiation

Page 12: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Communicating vision

Page 13: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Maintaining the architecture

Page 14: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Toolchest

Page 15: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example«Smidig» conference application

Page 16: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.
Page 17: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Vision

Stakeholders

Usage flow

Context

Domain model

Implementation

Deployment

Page 18: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example vision statement

Page 19: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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.

Page 20: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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.

Page 21: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.
Page 22: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example stakeholders

Page 23: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Speaker

Description• Experienced• New speaker• Passionate

Duties• Register talk• Upload slide• Give talkValues• 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

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

Page 24: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Sponsor

Description• Busy• Manager• Not very interested

Duties• Provide logo• Pay sponsorship

Values• Informal

communication• Easy evaluation

Page 25: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example usage flow

Page 26: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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

Page 27: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.
Page 28: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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

Page 29: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example context model

Page 30: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Smidig2011.no

Participant Speaker

Organizer

Printing company

Paypal

Page 31: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example domain model

Page 32: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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 Johannes Brodwall, Chief scientist Exilesoft Global.

Example implementation

diagram

Page 34: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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 Johannes Brodwall, Chief scientist Exilesoft Global.

Router

/app/controllers

UsersController

1. Find UserController

2. update(id)

/app/models

User class3. find(id)

app/models

User

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 Johannes Brodwall, Chief scientist Exilesoft Global.

Router

/app/controllers

UsersController

1. Find UsersController

2. show(id)

/app/models

User class3. find(id)

UserDatabase

/app/views/users

show.html.erb

5. Render

GET /users/<id>

4. SELECT … FROM users

6. Get attributes

Page 37: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Alternative

Page 38: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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 Johannes Brodwall, Chief scientist Exilesoft Global.

Example deployment model

Page 40: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Heroku

Smtp.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 Johannes Brodwall, Chief scientist Exilesoft Global.

Your turn

Page 42: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Practice example

Page 43: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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.

Page 44: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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.

Page 45: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

1. Groups of three

2. Presentation of group visions

3. Lets’s make a shared vision!

Page 46: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Break until 13:30

Page 47: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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

Duties• Arrange coach• Talk to customers• Nominate participants

Values• Credible Exile

«architects»

Page 48: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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

Page 49: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Real world example:

CRM

Page 50: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

14:30 Finn and Johannes discuss CRM vision live

Page 51: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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

Page 52: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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

Page 53: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

For ________________

Who ________________

The ________________

Is a _________________

Which ________________.

Unlike ______________________

This _______________________.

Vision: Customer conference

Page 54: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Usage flow – breakfast seminar1. 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 list1. 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

Page 55: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Real world example

Page 56: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Statnett electricity reserves1. 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 plant1. 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 capacity1. 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

Page 57: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

How would you break it down?

Page 58: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Context model• What parties are involved?

• How do they communicate?

Page 59: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Domain model• What concepts are

involved?• How do they relate?

Page 60: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Start after lunch:

13:30

Page 61: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Resume after break

15:45

Page 62: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Implementation:

Time series

Page 63: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Q&A

Page 64: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Your systems

Page 65: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example vision statement

Page 66: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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.

Page 67: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example stakeholders

Page 68: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

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 Johannes Brodwall, Chief scientist Exilesoft Global.

Example usage flow

Page 70: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

….

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

Page 71: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example context model

Page 72: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

What actors did you mention in scenario?

Page 73: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example domain model

Page 74: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

What concepts did you mention in

scenario?

Page 75: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example implementation

diagram

Page 76: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

How does the code work?

Page 77: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Example deployment model

Page 78: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Which servers are involved in

production?

Page 79: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Conclusion:

Page 80: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Tomorrow: Make your system shine!

Page 81: Architect Bootcamp Johannes Brodwall, Chief scientist Exilesoft Global.

Thank [email protected]

http://johannesbrodwall.com

http://exilesoft.com

http://twitter.com/jhannes