strategisk og taktisk soa

Post on 24-Feb-2016

44 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Strategisk og taktisk SOA. Fagforbundet/Sykehuspartner Johannes Brodwall, Ikke virksomhetsarkitekt Steria Norway. Skill på taktisk og strategisk SOA. 2. Overlat taktiske valg til teamene. 3 . Organiser i Feature Teams. Taktisk og strategisk SOA. Hva er SOA?. Hva er SOA? - PowerPoint PPT Presentation

TRANSCRIPT

Strategisk og taktisk SOA

Fagforbundet/SykehuspartnerJohannes Brodwall, Ikke virksomhetsarkitekt

Steria Norway

1. Skill på taktisk og strategisk

SOA

2. Overlat taktiske valg til teamene

3. Organiser i Feature Teams

Taktisk og strategisk SOA

Hva er SOA?

Hva er SOA?

”Det har noe med tjenester å gjøre”

Hva er SOA?

Eksempler på tjenester?

Hva er SOA?

Eksempler på gode tjenester?

https://www.paypal.com/cgi-bin/webscr?business=paypal%40smidig.no&cmd=_cart&upload=1&currency_code=N

OK&notify_url=http%3A%2F%2Fstagingsmidig.heroku.com

%2Fpayment_notifications&return=http%3A%2F%2Fstagingsmidig.heroku.com%2Fusers

%2F485&invoice=2011t-486&amount_1=10.0&item_name_1=Earlybird-

billett+til+Smidig+2011&item_number_1=1&quantity_1=1

EDIFACT

EDIFACT(The UN punishes those

who speak ill of XML)

Hva synes dere om følgende eksempler

på gjenbruk?

”The enterprise address book”

”Betalingstjenesten”

”Skjemamotor”

”Oppgaveliste”

java.util.Collection

Hibernate, Spring

Apache commons

java.net.HttpURLConnection

Dozer

The library the other team made because

they didn’t like Dozer

The ”Save Customer” service

Strategic reuseHigh value

Often servicesNew functionality

Tactical reuseLow value

Often componentReduce cost

Opportunistic

Relative cost of writing for reuse:125%-300%

Publishing

Input validation

Wider usage

Documentation

Testing

Relative cost of reuse:10%-40%

Learning

Not finding

Bugs

Finding

Adapting

Surface to volume ratio

Don’t make

Strategic decisionbased on

Tactical reasons

Teamene tar de taktiske valgene

(Følgende er et moteksempel)

J Random

Consider John Random Developer

Rules Engine Team

Front End Team

Service Layer Team

PM

J Random

Jira

J Random

”User gets DataBindingException

when submitting payment (see attached SOAP msg)”

Test server

Payment svc

J Random

Reproduce…

Test server

Payment svc

J Random

J Random

Payment Service

Payment XML

Payment DTO

Domain

Rules DTO

Rules XML

Rules

Which of the layers is the bug in…?

Rules Engine Team

Front End Team

Service Layer Team

PM

J Random

You sent a new field: currency

Rules Engine Team

Front End Team

Service Layer Team

PM

J Random

You sent a new field: currency

Didn’t you get the memo?

J Random

Sigh!

Payment Service

Payment XML

Payment DTO

Domain

Rules DTO

Rules XML

Rules

J Random

Test serverNew version

J Random

Test server

New version

Test server

New version

J Random

Let’s test it out

Test server

J Random

Okay

Okay

OkayOkay

OkayOkay

Okay

Okay

Not okay

It look good. Waaait….

Test server

J Random

Okay

Okay

OkayOkay

OkayOkay

Okay

Okay

Not okay

Duh! Null pointer exception!

J Random

Test serverNew version

J Random

Test server

New version

How did it get to this?

J Random

What does the program do?

I’m just a small cog in a big

machine

What’s up with all this data shuffling?

Bad architecture

UI UI UI UI

Service Service Service Service

Data Data Data Data

Reused service Reused library

Bad architecture

Technol-orgy Reuse fixation

Team per component

Suffering

Rules Engine Team

Front End Team

Service Layer Team

PM

Of course the Front End guys can deal with

an empty list

Rules Engine Team

Front End Team

Service Layer Team

PM

I better check that field is

present

I better check that field is

presentI better check that field is

present

Rules Engine Team

Front End Team

Service Layer Team

PMI wonder if anyone will

use this

Rules Engine Team

Front End Team

Service Layer Team

PM

Done with A soon?

Rules Engine Team

Front End Team

Service Layer Team

PM

Done with A soon?

I’m done, I just have to wait for

the rules engine!

Rules Engine Team

Front End Team

Service Layer Team

PM

Done with A soon?

I’m done, I just have to wait for

the rules engine!… and then test it

Rules Engine Team

Front End Team

Service Layer Team

PM

Done with A soon?

I’m done, I just have to wait for

the rules engine!… and then test it

… and then fix that tiny bug

Rules Engine Team

Front End Team

Service Layer Team

PM

Done with A soon?

I’m done, I just have to wait for

the rules engine!

I better hurry with B, everyone’s

waiting

Bahamas!

Rules Engine Team

Overworked!

Proud dad!

Front End Team

Service Layer Team

PM

Baby

!

Bahamas!

Rules Engine Team

Overworked!

Proud dad!

Front End Team

Service Layer Team

PM

Can you guys help out?

Baby

Bahamas!

Rules Engine Team

Overworked!

Proud dad!

Front End Team

Service Layer Team

PM

Can you guys help out?

Baby

Would love to help, but I don’t

know rules engine

Overworked!

Rules Engine Team

Front End Team

Service Layer Team

PM

This iteration, Product Owner just wants to improve the UI

!

Client A 1.0 Client B 1.0

Enterprise Payment

Client A 1.0 Client B 1.0

Enterprise Payment

Client A 2.0 Client B 1.0

Enterprise Payment 2.0

Client A 2.0 Client B 1.0

Enterprise Payment 2.0

Hva skjedde?

Rules Engine Team

Front End Team

Service Layer Team

PM

Rules Engine Team

Front End Team

Service Layer Team

PM

Hvilke problemer så dere?

Fremmedgjøring”Mura”

”Muda”: ”Motion”

Feature teams

UI UI UI UI

Service Service Service Service

Data Data Data Data

Reused service Reused library

UI UI UI UI

Service Service Service Service

Data Data Data Data

Reused service Reused library

Et feature teamEr opptatt av en brukerFølger strategiske valg

Tar taktiske avgjørelser selv

User:Human or machine

GUI

Logic

Data

Service

Machines are people, too!

Kjenner programmererne

brukere ved navn?

Kjenner brukere programmerere ved

navn?

Som programmere1. Møte brukeren

2. Ta taktiske avgjørelse3. Si fra når det gjør vondt

Som arkitekt1. Organiser team per feature

2. Begrens avgjørelse til strategi3. Lytt til utviklere og brukere

Takk for megjohannes.brodwall@steria.no

http://johannesbrodwall.comhttp://sterkblanding.no

http://twitter.com/jhannes

Spørsmål til dere:1. Hvilke ”features” finnes hos dere?

2. Hvilke avgjørelser er taktiske?3. Hva skal gjenbrukes?

4. Hva skal løses med en magic box?5. Hva kan dere overlate til team?

top related