strategisk og taktisk soa
Post on 24-Feb-2016
44 Views
Preview:
DESCRIPTION
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¤cy_code=N
OK¬ify_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