Strategisk og taktisk SOA Fagforbundet Johannes Brodwall ikke
Strategisk og taktisk SOA Fagforbundet Johannes Brodwall, ikke virksomhetsarkitekt Steria Norway
1. Skill på taktisk og strategisk SOA
2. Overlat taktiske valg til teamene
3. Organiser i Feature Teams
Hva er SOA?
«Det har noe med tjenester å gjøre»
Hva er eksempler på tjenester?
Hva er eksempler på gode tjenester?
https: //www. paypal. com/cgibin/webscr? busine ss=paypal%40 smidi g. no&cmd=_cart&u
EDIFACT
EDIFACT (The UN punishes those who speak ill of XML)
Relative cost of writing for reuse: 125%-300% Documentation Input validation Testing Publishing Wider usage
Relative cost of reuse: 10%-40% Finding Not finding Adapting Learning Bugs
Surface to volume ratio
Andre eksempler på gjenbruk
«The Enterprise Address Book»
java. util. Collection
Hibernate, Spring
Apache commons
java. net. Http. URLConnection
Dozer
«Skjemamotor»
«Oppgaveliste»
The library the other team made because they didn’t like Dozer
The ”Save Customer” service
Don’t make Strategic decision based on Tactical reasons
Taktiske valg
Dette er ikke et feature team:
Consider John Random Developer J Random
Front End Team PM Rules Engine Team Service Layer Team J Random
”User gets Data. Binding. Exception when submitting payment (see attached SOAP msg)” Jira J Random
Reproduce… Payment svc Test server J Random
Payment svc Test server J Random
Payment Service Which of the layers is the bug in…? Payment XML Payment DTO Domain J Random Rules DTO Rules XML Rules
Front End Team PM You sent a new field: currency Rules Engine Team Service Layer Team J Random
Front End Team PM You sent a new field: currency Didn’t you get the memo? Rules Engine Team Service Layer Team J Random
Payment Service Payment XML Sigh! Payment DTO Domain J Random Rules DTO Rules XML Rules
New version J Random Test server
J Random New version Test server
Let’s test it out New version Test server J Random
It look good. Waaait…. Okay Not okay Okay Test server J Random
Duh! Null pointer exception! Okay Not okay Okay Test server J Random
New version J Random Test server
How did it get to this? J Random New version Test server
What does the program do? J Random I’m just a small cog in a big machine What’s up with all this data shuffling?
Bad architecture
UI UI Service Reused service Data Reused library Data
Technol-orgy Reuse fixation Bad architecture Team per component Suffering
Front End Team PM Of course the Front End guys can deal with an empty list Service Layer Team Rules Engine Team
I better check that field is Front End Team present PM I better check that field is present Service Layer Team I better check that field is present Rules Engine Team
Front End Team I wonder if anyone will use this PM Rules Engine Team Service Layer Team
Done with A soon? Front End Team PM Rules Engine Team Service Layer Team
Done with A soon? Front End Team PM I’m done, I just have to wait for the rules engine! Rules Engine Team Service Layer Team
Done with A soon? Front End Team PM I’m done, I just have to wait for the rules engine! … and then test it Rules Engine Team Service Layer Team
Done with A soon? Front End Team PM I’m done, I just have to wait for the rules engine! … and then test it Rules Engine Team … and then fix that tiny bug Service Layer Team
Done with A soon? Front End Team PM I’m done, I just have to wait for the rules engine! Rules Engine Team Service Layer Team I better hurry with B, everyone’s waiting
! Front End Team Bahamas! PM Rules Engine Team Service Layer Team Overworked! Baby Proud dad!
Can you guys help out? Front End Team Bahamas! PM Rules Engine Team Service Layer Team Overworked! Baby Proud dad!
Can you guys help out? Front End Team Bahamas! PM Would love to help, but I don’t know rules engine Rules Engine Team Service Layer Team Overworked! Baby Proud dad!
This iteration, Product Owner just wants to improve the UI Front End Team ! PM Rules Engine Team Service Layer Team
Hva skjedde?
Front End Team PM Rules Engine Team Service Layer Team
Front End Team PM Rules Engine Team Service Layer Team
Hvilke problemer så dere?
Fremmedgjøring Mura Muda: «Motion»
Feature teams
UI UI Service Reused service Data Reused library Data
UI UI Service Reused service Data Reused library Data
Et feature team Er opptatt av en bruker Forholder seg til strategiske valg Tar taktiske avgjørelser
User: Human or machine
Service GUI Logic Data
Machines are people, too!
Kjenner programmerene brukere ved navn?
Kjenner brukere programmerene ved navn?
Som programmerer 1. Møt brukeren 2. Ta taktiske avgjørelser 3. Si fra når det gjør vondt
Som arkitekt 1. Organiser team per feature 2. Begrens deg til strategiske avgjørelser 3. Ønsk uenighet velkommen
Takk for meg johannes. brodwall@steria. no http: //johannesbrodwall. com http: //sterkblanding. no http: //twitter. com/jhannes
Spørsmål: 1. Hvilke «features» finnes? 2. Hvilke avgjørelser er taktiske? 3. Hva tenker dere på å gjenbruke? 4. Hva tenker dere å løse med en magic box? 5. Hvilke beslutninger vil dere
- Slides: 81