Agile architecture
Download
1 / 106

Agile Architecture - PowerPoint PPT Presentation


  • 99 Views
  • Uploaded on

Agile Architecture. Colombo Agile Meetup Johannes Brodwall, Chief scientist Exilesoft Global. What is an architect? From greek Arkhi-Tecton Arkhi : Chief. Like “Arch angel” Or “Arch nemesis” Tecton : Builder. What is an architect? (Exilesoft definition).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Agile Architecture' - henry


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Agile architecture

Agile Architecture

Colombo Agile Meetup

Johannes Brodwall, Chief scientist

Exilesoft Global


What is an architect?

From greekArkhi-Tecton

Arkhi: Chief. Like “Arch angel”

Or “Arch nemesis”

Tecton: Builder


What is an architect?

(Exilesoft definition)


A solution architect is someone who understands the problem of the customer

and uncoversand communicates

a feasible solution


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)


Uncover problem customer’s problem (vision, stakeholders, usage flow

Describe problemcontext and domain model

Describe solutiondeployment, implementation model

Simplify architecturefeature oriented structure

Deliver softwarerainbow plans


Describing architecture customer’s problem (

Simplifying architecture

Delivering architecture

Delivering software

  • Delivering architecture


Part I: customer’s problem (


Describing architecture customer’s problem (


Understanding the problem customer’s problem (


(Tool time) customer’s problem (


For customer’s problem (some stakeholder

Who has a goal

The Colombo Agile Meetup

Is a type of activity

Which gives a capability.

Unlike most relevant alternative

This has a distinguishing attribute.


For customer’s problem (anyone interested in agile methods

Who ________________

The Colombo Agile Meetup

Is a _________________

Which ________________.

Unlike ______________________

This _______________________.


Example customer’s problem (

«Smidig» conference application


Example vision statement customer’s problem (


For customer’s problem (Agile practitioners

Who need to expand on their experience and network

TheSmidig conference

Is a networking event

Which connects you with other Agile practitioners.

Unlike traditional conferences

Thispresents the experience of many people through lightning talks.


For customer’s problem (Conference organizers

Who want to organize a good conference

TheSmidig conference app

Is a web application

Which eliminates unnecessary work.

Unlike commercial conference apps

Thisis optimized for the large number of talks we have and allows us to make changes fast.


Example stakeholders customer’s problem (


Organizer customer’s problem (

Attendee

Description

Volunteer

Works in evenings

Has network

Description

Experienced

New speaker

Passionate

Description

Knows about agile

Works in project

Norwegian

Speaker

Duties

Select talks

Follow up payments

Duties

Register talk

Upload slide

Give talk

Duties

Pay for conference

Get approval to go

Values

Easy selection process

Good information overview

Never lose a participant

Financial transparency

Values

Constructive feedback on talk

Easy CfP

Fast answer

Values

Easy registration


Sponsor customer’s problem (

Description

Busy

Manager

Not very interested

Duties

Provide logo

Pay sponsorship

Values

Informal communication

Easy evaluation


Example usage flow customer’s problem (


Attendance
Attendance customer’s problem (

  • Agile project practitioner wants to learn

  • Attendee goes to Smidig website

  • Attendee registers

  • Attendee pays

  • Attendee receives confirmation mail

  • Organizer can see the registration

  • Organizer sends reminder email to attendee to come

  • Organizer prints badges for attendees

  • Attendee shows up at Smidig and has an excellent time


Speaker
Speaker customer’s problem (

  • Agile experts wants to share knowledge

  • Potential speaker goes to Smidig website

  • Potential speaker registers personal info

  • Potential speaker registers talk

  • Potential speaker receives registration confirmation email

  • Organizer sees registered talk and can market speaking opportunities

  • Organizer accepts talk for confence

  • Speaker receives acceptance email

    • Alternative: Speaker withdraws talk – organizer updates the talk and selects another

  • Organizer prints badges for speakers

  • Speaker shows up at Smidig and gives talk


/Understanding the problem customer’s problem (


Uncovering a solution customer’s problem (


Example context model customer’s problem (


Paypal customer’s problem (

Smidig2011.no

Printing company

Participant

Speaker

Organizer


Example domain model customer’s problem (


  • User customer’s problem (

  • Name

  • Email

  • Company

  • Phone

  • Password

  • Accepts email?

  • Registration

  • Ticket type

  • Price

  • Paid amount

  • Paypal ref

  • Payment date

  • Invoice address [optional]

*

*

  • Comment

  • Title

  • Text

  • Created date

Speaker

*

*

  • Talk

  • Title

  • Description

  • Tags[]

  • Slide file

  • Status : {pending, accept, reject}

  • Email_sent

  • Position

  • Period

  • Stage

  • Title

  • Time of day

  • Day


Example implementation diagram customer’s problem (


Paypal.com customer’s problem (

Browser

Smidig2012.no

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


Example deployment model customer’s problem (


h customer’s problem (tml/http

Heroku

git push

git pull

git push

Smidig-conference (Rails)

Paypal

http

github

git.heroku

smtp

Web user

Developer

Smtp.dreamhost.com

PostgreSQL

smidigdb


/Uncovering a solution customer’s problem (


Communicating a solution customer’s problem (


Vision customer’s problem (

Stakeholders

Usage flow

Context

Domain model

Implementation

Deployment



Team effort customer’s problem (


/Communicating a solution customer’s problem (


/Describing architecture customer’s problem (


Part II: customer’s problem (


Simplifying architecture customer’s problem (


Lasagna architecture customer’s problem (


Person-Controller customer’s problem (

Person-Service

Person-Repository

PersonDao

Person-Controller-Impl

Person-ServiceImpl

Person-Repository

Impl

PersonDao

Impl

Session-Factory


Controllers customer’s problem (

Services

Managers

Workers

Repositories


Controllers customer’s problem (

DTO

Services

Mapping

Domain

Managers

Workers

Repositories


Customer customer’s problem (

Invoice

Order

Product


Tidying up art ( customer’s problem (UrsusWehrli)


Feature oriented architecture customer’s problem (


Coherence customer’s problem (

What changes together lives together


Tolerance customer’s problem (

What should be differentcan be different


Meaning customer’s problem (

What is central in domain is central in code



Controllers customer’s problem (

DTO

Services

Mapping

Domain

Managers

Workers

Repositories



Browser customer’s problem (

JSON/http

Web Application

DTO?

Controller

Consumer

DTO

SOAP

Web user

Web Service

Web Service

Service

DTO

Database


Browser customer’s problem (

JSON/http

Web Application

DTO?

Controller

Web user

DAO

Database


h customer’s problem (tml/http

Web Application

Controller

DAO

Web user

Database


h customer’s problem (tml/http

Reverse proxy

html/http

Web Application

Controller

Web user

DAO

Database


Rich client customer’s problem (

Controller

DTO

Objects over http

Web Application

DTO

Web user

Database


Rich client customer’s problem (

Controller

DTO

Consumer

Web service

Web Application

Service

DTO

Web user

Database


Browser customer’s problem (

External client

JSON/http

Web Application

Controller

DTO?

Consumer

DTO

SOAP

Web user

Web Service

Service

DTO

DAO

Database


Browser customer’s problem (

External client

JSON/http

Web Application

Controller

Service

DTO

Web user

DAO

Database


/Simplifying architecture customer’s problem (


Part III: customer’s problem (


Delivering software customer’s problem (


Common Sprint problems customer’s problem (


User stories without context customer’s problem (



Users don’t understand the demo customer’s problem (


One-sentence Scrum customer’s problem (



It’s all about the demo customer’s problem (


We demonstrate customer’s problem (progress at regular intervals


Progress towards what? customer’s problem (


Usage flow
Usage flow customer’s problem (

  • Something happens in the real world

  • The event is communicated to the system

  • The system does something

  • Someone does something with the system

  • Some goal is achieved


Rainbow plan customer’s problem (


Usage flow frugalflights com
Usage flow: frugalflights.com customer’s problem (

  • A customer wants cheap vacations

  • The customer signs up for daily or weekly notifications of special flight offers

  • Periodically the System checks which customers should get notifications

  • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

  • The System notifies customer of any matching offers via SMS

    • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • What would you do in Sprint 1? customer’s problem (


    Usage flow frugalflights com1
    Usage flow: frugalflights.com customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • Sprint 1 walking skeleton
    Sprint 1: Walking skeleton customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • Sprint 2 sms support
    Sprint 2: SMS support customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • Sprint 3 complete workflow
    Sprint 3: Complete workflow customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • Sprint 4 complete sms
    Sprint 4: Complete SMS customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • Sprint 5 web pages
    Sprint 5: Web pages customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • Sprint 7 integration
    Sprint 7: Integration customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • Sprint 8 spit and polish
    Sprint 8: Spit-and-polish customer’s problem (

    • A customer wants cheap vacations

    • The customer signs up for daily or weekly notifications of special flight offers

    • Periodically the System checks which customers should get notifications

    • The System checks for offers that matches the customer’s travel preference by looking up flights with the travel provider system

    • The System notifies customer of any matching offers via SMS

      • Variation: The System notifies customer of any matching offers via email

  • The customer accepts the offer via SMS

    • Variation: The customer accepts the offer on the system website

  • The System books the tickets on behalf of the customer

  • The system confirms the booking by sending an SMS to the customer

  • The customer can at any point see their active offers and accepted offers on the system website

  • The customer enjoys a cheap vacation!


  • /Delivering software customer’s problem (


    Conclusion: customer’s problem (


    Travel light – 7 perspectives customer’s problem (

    Domain oriented architecture

    Sprint with a (rainbow) plan


    What’s the common theme? customer’s problem (


    Usage flow customer’s problem (


    Good architecture comes from customer’s problem (understanding usage


    Thank you
    Thank you customer’s problem (

    [email protected]

    http://johannesbrodwall.com

    http://exilesoft.com

    http://twitter.com/jhannes

    Vision

    Stakeholders

    Usage flows – rainbow plans

    Context

    Domain

    (Simple) Deployment

    (Feature oriented) implementation


    ad