bbs moderniseringprogram stay i 2006: erfaringer med arkitektur og gjennomføring
DESCRIPTION
BBS moderniseringprogram STAY i 2006: Erfaringer med arkitektur og gjennomføring. Johannes Brodwall Lead Software Architect. Hva er STAY?. Moderniseringprogram. Mainframe ut – UNIX inn. COBOL ut – Java inn. Hvem er jeg?. Johannes Brodwall. Lead software architect. - PowerPoint PPT PresentationTRANSCRIPT
BBS moderniseringprogram STAY i 2006: Erfaringer med arkitektur og gjennomføring
Johannes Brodwall
Lead Software Architect
Hva er STAY?
Moderniseringprogram
Mainframe ut – UNIX inn
COBOL ut – Java inn
Hvem er jeg?
Johannes Brodwall
Lead software architect
Bakgrunn fra Java programmering og arkitektur
Foredraget
En tidslinje + erfaringer
Fokus på utvikling
Still spørsmål!
(Jeg kan kaste slidene)
2003
2/5
Marked i nedgang
Respons: Konsolidering
Mål: Kvitte oss med mainframe
Mål: Time to marked
2004
5/28
Kravfangst: Use cases
Informasjonstjenester
Regningsbetaling
Sommerferie
Pilotprosjekt ...
... avbrytes
(Råd: Kjør pilot)
Høst 2004
Kravfangst fortsetter
Arkitektur
Forretningsarkitektur
Teknisk arkitektur
DCRI
DCRI = Data Center Reference Implementation
Applikasjonsarkitektur
Implementasjonsarkitektur
(Skrives av meg)
Domain Driven Design
”Domain-Driven Design var vår ledestjerne fra dag 1. Det har påvirket oss mye og hjulpet oss såpass mye at ”forretningslogikk er vanskelig” ikke står på listen over erfaringer. Tvert imot føler jeg at ”forretningslogikk er ikke så vanskelig!”
-- Eirik Torske, utvikler
Spring, Hibernate, JMS
Anti-SOA (?): Gjenbruk via tradisjonell gjenbruk, integrasjon via databaser (og meldingskø)
Utviklingsarkitektur
Test driven design
(eller i det minste enhetstester)
Continuous Integration
Smalt nåløye ved rekruttering
Tilbakeblikk på arkitektur:
”Arkitekturbildene er i dag en selvfølge. Det er først når vi tenker på det at vi
innser at vi har en arkitektur”-- NN
2005
Kravfangst fortsetter
Analysis paralysis?
Blankett: 160 use casesRegningsbetaling: 300 use cases
NICS: 100 use cases
Sentral aktør: ”Klokka”...
... Hmmm.
Tilbakeblikk:
Use cases er vanskelig
(For mye og for lite detalj på en gang)
Implementasjonsprosjekter
Direkte remittering
NICS
NICS = Norwegian Interbank Clearing System
ATI
ATI = Applikasjonsteknisk infrastruktur
Oppskalering: 10 50 utviklere
Scrum binder prosjektene sammen
Arkitekturkjernen utkrystaliserer seg
Referanseapplikasjon
Sommer 2005
”Jeg ser du skal i samme R1”
WebSphere 6.0
(Bleeding edge...?)
Forsinkelser forplanter seg
Sikkerhet og web
Høst: Use case utfordringer
Stabilisering av utviklingsarkitektur
Byggsystem
(men kunne brukt mer tid på selve systemet)
"Continuous integration har en oppdragende effekt på utviklere som gjør at man tester bedre.”
– Hans Petter Vadseth
Refactoring av 300 klasser
Vi blir for smarte...
... overdesign
... spekulative anskaffelser
Kravtester
JavaZone 2005: FitNesse
JavaZone 2005: Anti-SOA
Integrasjon mot mainframe og NonStop
Involverer mange personer
Vanskelig å teste
Tidkrevende
”WAS-ifisering”
WAS = WebSphere Application Server
Urovekkende tidkrevende
(Men vi tester utenfor server)
Release 2
DB2 -> Oracle
Besparelse realisert
Ikke helt smertefri leveranse
(Liten tue velter stort lass)
”Half-full”: Problemløsning
Prosjekt blir program
Forsinkelser
Folk starter å fokusere på oppsplitting
Erfaring: Store leveranser: Bordet fanger
Andre prosjekter starter å få fokus
BBS:Endring fra
konsolidering-> Fokusert vekst
-> Ekspansiv vekst
Jul 2005
Omorganisering av IT og prosjekt
Mindre fokus på ”det ene store prosjektet”
ATI forsvinner
Arkitektur i organisasjonen
2006
Leveranse R3
Ingen overraskelser
Rutinifisering av utviklingsarkitektur
(Etter vinterferien har jeg har lite å gjøre)
Arkitekten som veps
Testkvalitet
Hastighet
Brittle tests
Testene våre er gode, men kan alltid bli bedre!
Continuous Integration rutiner
"Byggsystemet kan være vanskelig å forstå og bruke riktig dersom man ikke vet hvordan dette virker. Dette er spesielt vanskelig for de som ikke har benytter junit eller maven før.”
– Hans Petter Vadseth
”Vær varsom” flagg
”De problemene som oppstår med continuous integration er problemer som vi bare hadde oppdaget senere”
– Bjørn Bjerkeli
Infrastrukturprosesser
Infrastrukturarkitekt
Teknisk validering av arkitekturelementer
Litt sent, da!
Sommer 2006
Leveranser på STAY arkitektur
eFaktura B2B
Elektronisk avtale
Direkte remittering
Sommer 2006
Erfaringer og optimisme
JavaZone: 6 STAY relaterte CfP
”Java i BBS 2007”
Gjenstående risikoer
Software som ferskvare
Kompleksitet på infrastruktur
Og arkitekter?
Nå kan vi bare lukke øynene og håper vi har pekt i riktig retning og at de er flinke
nok til å komme i mål
Erfaringer
Arkitektur
Unngå krystallkulearkitektur
Kompleksitet er din største fiende
Arkitekturen bør forvinne
Referanseapplikasjon
Infrastrukturteam: Må fokusere på teknisk test
Prosjektplanlegging
Vi blir ikke ærlige før vi skal produksjonssette
Pilotprosjekt kunne hjulpet
Krav er ferskvare
Kravfangst med krystallkule
Prosjektgjennomføring
Omstillingsprosjekter kan ikke leve i isolasjon
Unngå overspesialisering
Enhetstesting: Enormt effektivt
Continuous integration
Scrum, scrum, scrum!
Hva har jeg lært?
”Når vi forsøkte å tenke for mye framover tenkte vi ofte feil....
... Når gjorde det mulig å endre kurs, fikk vi stor gevinst!”
Takk for meg