agile architecture
Download
Skip this Video
Download Presentation
Agile Architecture

Loading in 2 Seconds...

play fullscreen
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

slide2

What is an architect?

From greekArkhi-Tecton

Arkhi: Chief. Like “Arch angel”

Or “Arch nemesis”

Tecton: Builder

slide3

What is an architect?

(Exilesoft definition)

slide4

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

and uncoversand communicates

a feasible solution

slide5

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)

slide6

Uncover problemvision, stakeholders, usage flow

Describe problemcontext and domain model

Describe solutiondeployment, implementation model

Simplify architecturefeature oriented structure

Deliver softwarerainbow plans

slide7

Describing architecture

Simplifying architecture

Delivering architecture

Delivering software

  • Delivering architecture
slide12

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

slide13

For anyone interested in agile methods

Who ________________

The Colombo Agile Meetup

Is a _________________

Which ________________.

Unlike ______________________

This _______________________.

slide14

Example

«Smidig» conference application

slide16

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

slide17

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

slide20

Organizer

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

slide21

Sponsor

Description

Busy

Manager

Not very interested

Duties

Provide logo

Pay sponsorship

Values

Informal communication

Easy evaluation

attendance
Attendance
  • 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
  • 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
slide29

Paypal

Smidig2011.no

Printing company

Participant

Speaker

Organizer

slide31

User

  • 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
slide33

Paypal.com

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

slide35

html/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

slide39

Vision

Stakeholders

Usage flow

Context

Domain model

Implementation

Deployment

slide48

Person-Controller

Person-Service

Person-Repository

PersonDao

Person-Controller-Impl

Person-ServiceImpl

Person-Repository

Impl

PersonDao

Impl

Session-Factory

slide49

Controllers

Services

Managers

Workers

Repositories

slide50

Controllers

DTO

Services

Mapping

Domain

Managers

Workers

Repositories

slide52

Customer

Invoice

Order

Product

slide57

Coherence

What changes together lives together

slide59

Tolerance

What should be differentcan be different

slide61

Meaning

What is central in domain is central in code

slide64

Controllers

DTO

Services

Mapping

Domain

Managers

Workers

Repositories

slide66

Browser

JSON/http

Web Application

DTO?

Controller

Consumer

DTO

SOAP

Web user

Web Service

Web Service

Service

DTO

Database

slide67

Browser

JSON/http

Web Application

DTO?

Controller

Web user

DAO

Database

slide68

html/http

Web Application

Controller

DAO

Web user

Database

slide69

html/http

Reverse proxy

html/http

Web Application

Controller

Web user

DAO

Database

slide70

Rich client

Controller

DTO

Objects over http

Web Application

DTO

Web user

Database

slide71

Rich client

Controller

DTO

Consumer

Web service

Web Application

Service

DTO

Web user

Database

slide72

Browser

External client

JSON/http

Web Application

Controller

DTO?

Consumer

DTO

SOAP

Web user

Web Service

Service

DTO

DAO

Database

slide73

Browser

External client

JSON/http

Web Application

Controller

Service

DTO

Web user

DAO

Database

usage flow
Usage flow
  • 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
usage flow frugalflights com
Usage flow: frugalflights.com
  • 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!
usage flow frugalflights com1
Usage flow: frugalflights.com
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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!
slide102

Travel light – 7 perspectives

Domain oriented architecture

Sprint with a (rainbow) plan

thank you
Thank you

[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