SlideShare a Scribd company logo
1 of 20
Smidig data på Stortinget
Om foredraget
ALM avdelingen har siden 2012 jobbet med innføring av smidig
metoder hos Stortinget. Foredraget oppsummere våre erfaringer og
vil spesifikt adressere hvordan data-modellering, persistens av data
og kontinuerlig leveranse bidro til endring av utviklingsprosessen.
Bakgrunn
• Stortingets IKT-avdeling har en utviklergruppe på seks personer.
• Inmeta (ALM) kom inn via en rammeavtale på et
kompetansehevings prosjekt.
• Fomålet med prosjektet var å løfte IKT-avdelingen over på
moderne utvikling med ALM via opplæring og coaching.
• En web applikasjon skulle utvikles som en del av prosjektet.
• Prosjektet varte halv annet år.
Utgangspunktet
Prosess
• Ingen definert eller smidig prosess (litt ITIL…)
• Ingen produkteiere
• Tekniske kravspekker
• Fossefall
• Fragmentert ansvar
Teknologi
• Database-sentrisk (business logikk i lagrede prosedyrer)
• Web-Forms med datareader i code-behind
• Bruker TFS, men kun som source control
• Ikke erfaring med smidig, enhetstester, bygg, test, QA
Opplæringen
• SCRUM / SCRUMBAN
• Kravhåndtering og analyse
• Arkitektur og modellering
• Testing
• Continous Integration
• Continous delivery
• Kodekvalitet, SOLID prinsipper
• ++
Learning by doing
Opplæring ved å praktisere
Litt om applikasjonen
• En web-applikasjon for administrasjon av ansatte/eksterne
• Integrasjon mot eksterne applikasjoner.
Teknologi
• ASP.Net MVC / jQuery
• Entity Framework (Code First)
Hvor begynner man?
class StortingsInfo
Avdeling
Id* :int
Navn :string
Kortnavn :string
Beskrivelse :string
Sporing :Sporing
Seksjon
Id* :int
Avdeling :Avdeling
Navn :string
Kortnavn :string
Beskrivelse :string
Sporing :Sporing
Parti
Id* :int
Partikode :string
Navn :string
Kortnavn :string
Sporing :Sporing
Seksjonsgruppe
Id* :int
Seksjon :Seksjon
Navn :string
Kortnavn :string
Beskrivelse :string
Sporing :Sporing
OrgEnhet
Id* :int
Navn :string
Kortnavn :string
Beskrivelse :string
Rom
Id* :int
RomType :id
RomNr :string
Beskrivelse :String
Merknad :string
TlfIntern :string
Bygningskode :id
OrgEnhet :id
Sporing :Sporing
Firma
Id* :int
Navn :string
BransjeId :int
Orgnr :string
Postadresse :string
Postnr :string
Kontaktpersoner :List<Person>
Telefon :string
OrgEnheter :List<OrgEnhet>
Sporing :Sporing
Komite
Id* :int
Kode :string
Navn :string
Kortnavn :string
Beskrivelse :string
Eksempel på merknad:
"Kun betjent i et gitt
tidsrom"
RomType
Id* :int
Type :int
Brukskode :string
Beskrivelse :string
FunksjonerOgTjenester
Id* :int
Navn :int
OrgEnhet :id
Rom :Rom
Sporing :Sporing
Beskrivelse :string
Epostadresse :string
TlfIntern :string
Status :string
Sluttdato :date
Startdato :date
Postmottak :Postmottak
Postmottak
Id :int
Navn :string
Etternavn :string
Beskrivelse :string
OrgEnhet :IOrgEnhet
Avdeling :Avdeling
Seksjon :Seksjon
Epostadresse :string
AdBrukernavn :string
0..*
0..*
0..*
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
composite structure Person
Person
Id* :int
Sporing :Sporing
Personalia :Personalia
Fasiliteter :Fasiliteter
Status :PersonStatus
Stortingsansatt :Stortingsansatt
Gruppeansatt :Gruppeansatt
EksternPerson :EksternPerson
EposPerson :EposPerson
TiltredelsesPerioder :List<TiltredelsesPeriode>
Fodselsdato :string
EpostPrivat :string
Stortingsansatt
PersonId* :int
Person :Person
PersonKategori :PersonKategori
Status :PersonStatus
Ansettelsesforhold :Ansettelsesforhold
TiltredelsesPeriode :TiltredelsesPeriode
Stilling :Stilling
OrgEnhet :OrgEnhet
Avdeling :Avdeling
Seksjon :Seksjon
SeksjonsGruppe :SeksjonsGruppe
Permisjon :Permisjon
VikarFor :Person
Komite :Komite
Idkort :Idkort
Fasiliteter
AdBrukernavn :string
SkalHaRom :bool
Rom :Rom
InternTlf :string
BiblioteksId :int?
Personalia
Etternavn :string
Fornavn :string
Fodselsdato :DateTime
AdressePrivat :Adresse
TlfMobil :string
TlfHjemme :string
TlfArbeid :string
Adresse
Linje :string
PostNr :string
Poststed :string
Land :string
Permisjon
Fra :DateTime
Til :DateTime
PermAarsak :string
Ansettelsesforhold
Id* :int
Navn :string
ForStortingsansatt :bool
ForGruppeansatt :bool
PersonStatus
Kommer
Aktiv
Permisjon
Sluttet
StortingsansattEndring
Id* :int
Stortingsansatt :Stortingsansatt
EndringFra :DateTime
Ansettelsesforhold :Ansettelsesforhold
Stilling :Stilling
Avdeling :Avdeling
Seksjon :Seksjon
SeksjonsGruppe :SeksjonsGruppe
1 1
1
0..1
1
0..1
1
10..*
Domene-modellering
Før
• Domene-språket reflekterte relasjonsdata i database (SQL)
• Fokus på optimalisering
• Tekniske diskusjoner uten innhold
Etter
• Domene-språket reflekterte virkeligheten
• Fokus på innhold
• Objekt-orientert
• Domene-modell != Database, Domene-modell => Database
Om optimalisering
“… We should forget about small efficiencies, say about
97% of the time: premature optimization is the root of
all evil. Yet we should not pass up our opportunities in
that critical 3%”
- Donaldt Knuth
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Mapping med ORM (EF)
EF tilbyr tre måter å mappe objekter /
relasjonsdata:
• Database First (Generering)
• Model First (POCO/Generering)
• Code First (POCO)
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Database First – Erfaringer
Positivt
• Valgfri database-modelleringsverkøy
• Visualisering i designer
• Enkelt, lav læringskurve
• Optimalisering av database
Negativt
• Database-sentrisk domene modell
• Generering/Partial classes
• Ikke 100% sporbarhet
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Model First - Erfaringer
Positivt
• Visualisering av mapping i designer
• GUI for mapping
• Sporbarhet
Negativt
• Dårlig tooling (bugs i designer)
• Generering/Partial classes
• Merging av XML
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Code First - Erfaringer
Positivt
• POCO, OOP-sentrisk
• Convensions over configuration
• Merge-vennlig
• 100% sporbarhet
• (Migrations)
Negativt
• Mapping ikke visualisert
• Høy læringskurve ved komplisert mapping
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Entity Framework - Erfaringer
• Objekter != Relasjonsdata
• Krever kunnskap om optimalisering (LINQ)
• Optimalisering med mapping
• Tilfeller av nødvendig DTO abstraksjon
Domene modellen reflekterte
forretningslogikken!
Performance - Dokumentasjon
https://github.com/Inmeta/Knowledge/wiki/Entity-Framework.Performance
Legg til egne tips og
erfaringer her, evt.
lenker til blog’er
etc.
Testing
Før
• Ad-hoc testing i ikke-sporbare (multiple) testmiljø
• Ingen test-planer
• Ingen enhetstester
Etter
• Automatisert testmiljø
• Testplaner (delvis)
• Enhetstester
Utfordring
• Manuelle testere / Tid
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Continous Integration
Før
• Ingen bygg
• Ingen feedback
• “Works on my machine”
Etter
• Automatisert feedback
• Sporbarhet
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Continous Delivery
Før
• Manuell deployment
• Filkopiering, konfig editering
• Tregt, krever planlegging, waste
• Vegring
Etter
• Helautomatisert test/produksjonsbygg
• Sporbarhet
• Hurtig/smidig
• Ingen vegring
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Infrastruktur
Før
• Database pr. utvikler/miljø
• Endringer direkte i test/prod
• Lite dokumentasjon
Etter
• Alt i kildekode, 100% sporbarhet
• Automatisering, repeterbarhet
• Dokumentasjon via installasjons-diagrammer
Kravhåndtering
Arkitektur
UtviklingTesting
Installasjon
Forvaltning
Oppsumering
• Domenespråk fremfor teknologispråk  Effektiv og tydelig kommunikasjon
• OOP fremfor database-sentrisk  Synlig og tydelig forretningslogikk
• Automatisering fremfor waste  Smidighet, kvalitet, effektivitet
• Team fremfor individer  Samarbeid, effektivitet, engasjement
• Kildekode fremfor databaser  Sporbarhet, tigjengelighet, effektivitet, kvalitet
Utfordringer
• Endring tar tid!
• Forvent mostand og endringsfrykt!
• Indentifiser champions
Spørsmål?

More Related Content

Similar to Smidig data på stortinget

En guide igjennom tåkeheimen
En guide igjennom tåkeheimenEn guide igjennom tåkeheimen
En guide igjennom tåkeheimenmudnaes
 
Slik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSlik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSimen Sommerfeldt
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Morten Bergset
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterThor Henning Hetland
 
Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014Geodata AS
 
Forretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototypingForretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototypingTormod Varhaugvik
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februarSturla Grelland
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenFriprogsenteret
 
Digital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løftDigital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løftIngrid Melve
 
JavaZone 2006 - Gode grep når prosjektet blir stort
JavaZone 2006 -  Gode grep når prosjektet blir stortJavaZone 2006 -  Gode grep når prosjektet blir stort
JavaZone 2006 - Gode grep når prosjektet blir stortEirik Torske
 
Prototyping med Microsoft Web Matrix
Prototyping med Microsoft Web MatrixPrototyping med Microsoft Web Matrix
Prototyping med Microsoft Web MatrixØyvind Malin
 
Intranett i NSB-konsernet
Intranett i NSB-konsernetIntranett i NSB-konsernet
Intranett i NSB-konsernetPia Solheim
 
IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013
IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013
IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013Egil Søgaard
 
Inngåelse og oppfølging av it kontrakter
Inngåelse og oppfølging av it kontrakterInngåelse og oppfølging av it kontrakter
Inngåelse og oppfølging av it kontrakterKjell Steffner
 
Teams voice historisk reise.pptx
Teams voice historisk reise.pptxTeams voice historisk reise.pptx
Teams voice historisk reise.pptxKai Stenberg
 
20140128 Firstpoint seminar - Tid For Oppgradering
20140128   Firstpoint seminar - Tid For Oppgradering20140128   Firstpoint seminar - Tid For Oppgradering
20140128 Firstpoint seminar - Tid For OppgraderingSturla Grelland
 
SharePoint - En Brukervennlig Standardløsning?
SharePoint -  En Brukervennlig Standardløsning?SharePoint -  En Brukervennlig Standardløsning?
SharePoint - En Brukervennlig Standardløsning?Eli Toftøy-Andersen
 

Similar to Smidig data på stortinget (20)

En guide igjennom tåkeheimen
En guide igjennom tåkeheimenEn guide igjennom tåkeheimen
En guide igjennom tåkeheimen
 
Slik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node redSlik kan du prototype enkelt med node red
Slik kan du prototype enkelt med node red
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekter
 
SharePoint Migrering unngå fallgruver
SharePoint Migrering unngå fallgruverSharePoint Migrering unngå fallgruver
SharePoint Migrering unngå fallgruver
 
Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014Geografiske analyser i ArcGIS - Esri norsk BK 2014
Geografiske analyser i ArcGIS - Esri norsk BK 2014
 
Forretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototypingForretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototyping
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug Hanssen
 
Digital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løftDigital eksamen og andre nasjonale løft
Digital eksamen og andre nasjonale løft
 
Research studio og CRM
Research studio og CRMResearch studio og CRM
Research studio og CRM
 
JavaZone 2006 - Gode grep når prosjektet blir stort
JavaZone 2006 -  Gode grep når prosjektet blir stortJavaZone 2006 -  Gode grep når prosjektet blir stort
JavaZone 2006 - Gode grep når prosjektet blir stort
 
AWS på kartet
AWS på kartetAWS på kartet
AWS på kartet
 
Prototyping med Microsoft Web Matrix
Prototyping med Microsoft Web MatrixPrototyping med Microsoft Web Matrix
Prototyping med Microsoft Web Matrix
 
Intranett i NSB-konsernet
Intranett i NSB-konsernetIntranett i NSB-konsernet
Intranett i NSB-konsernet
 
IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013
IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013
IPnett Contact Center Solutions - WORKSHOP OSLO 4thDec 2013
 
Inngåelse og oppfølging av it kontrakter
Inngåelse og oppfølging av it kontrakterInngåelse og oppfølging av it kontrakter
Inngåelse og oppfølging av it kontrakter
 
Teams voice historisk reise.pptx
Teams voice historisk reise.pptxTeams voice historisk reise.pptx
Teams voice historisk reise.pptx
 
20140128 Firstpoint seminar - Tid For Oppgradering
20140128   Firstpoint seminar - Tid For Oppgradering20140128   Firstpoint seminar - Tid For Oppgradering
20140128 Firstpoint seminar - Tid For Oppgradering
 
SharePoint - En Brukervennlig Standardløsning?
SharePoint -  En Brukervennlig Standardløsning?SharePoint -  En Brukervennlig Standardløsning?
SharePoint - En Brukervennlig Standardløsning?
 

Smidig data på stortinget

  • 1. Smidig data på Stortinget
  • 2. Om foredraget ALM avdelingen har siden 2012 jobbet med innføring av smidig metoder hos Stortinget. Foredraget oppsummere våre erfaringer og vil spesifikt adressere hvordan data-modellering, persistens av data og kontinuerlig leveranse bidro til endring av utviklingsprosessen.
  • 3. Bakgrunn • Stortingets IKT-avdeling har en utviklergruppe på seks personer. • Inmeta (ALM) kom inn via en rammeavtale på et kompetansehevings prosjekt. • Fomålet med prosjektet var å løfte IKT-avdelingen over på moderne utvikling med ALM via opplæring og coaching. • En web applikasjon skulle utvikles som en del av prosjektet. • Prosjektet varte halv annet år.
  • 4. Utgangspunktet Prosess • Ingen definert eller smidig prosess (litt ITIL…) • Ingen produkteiere • Tekniske kravspekker • Fossefall • Fragmentert ansvar Teknologi • Database-sentrisk (business logikk i lagrede prosedyrer) • Web-Forms med datareader i code-behind • Bruker TFS, men kun som source control • Ikke erfaring med smidig, enhetstester, bygg, test, QA
  • 5. Opplæringen • SCRUM / SCRUMBAN • Kravhåndtering og analyse • Arkitektur og modellering • Testing • Continous Integration • Continous delivery • Kodekvalitet, SOLID prinsipper • ++
  • 6. Learning by doing Opplæring ved å praktisere Litt om applikasjonen • En web-applikasjon for administrasjon av ansatte/eksterne • Integrasjon mot eksterne applikasjoner. Teknologi • ASP.Net MVC / jQuery • Entity Framework (Code First)
  • 7. Hvor begynner man? class StortingsInfo Avdeling Id* :int Navn :string Kortnavn :string Beskrivelse :string Sporing :Sporing Seksjon Id* :int Avdeling :Avdeling Navn :string Kortnavn :string Beskrivelse :string Sporing :Sporing Parti Id* :int Partikode :string Navn :string Kortnavn :string Sporing :Sporing Seksjonsgruppe Id* :int Seksjon :Seksjon Navn :string Kortnavn :string Beskrivelse :string Sporing :Sporing OrgEnhet Id* :int Navn :string Kortnavn :string Beskrivelse :string Rom Id* :int RomType :id RomNr :string Beskrivelse :String Merknad :string TlfIntern :string Bygningskode :id OrgEnhet :id Sporing :Sporing Firma Id* :int Navn :string BransjeId :int Orgnr :string Postadresse :string Postnr :string Kontaktpersoner :List<Person> Telefon :string OrgEnheter :List<OrgEnhet> Sporing :Sporing Komite Id* :int Kode :string Navn :string Kortnavn :string Beskrivelse :string Eksempel på merknad: "Kun betjent i et gitt tidsrom" RomType Id* :int Type :int Brukskode :string Beskrivelse :string FunksjonerOgTjenester Id* :int Navn :int OrgEnhet :id Rom :Rom Sporing :Sporing Beskrivelse :string Epostadresse :string TlfIntern :string Status :string Sluttdato :date Startdato :date Postmottak :Postmottak Postmottak Id :int Navn :string Etternavn :string Beskrivelse :string OrgEnhet :IOrgEnhet Avdeling :Avdeling Seksjon :Seksjon Epostadresse :string AdBrukernavn :string 0..* 0..* 0..* Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning composite structure Person Person Id* :int Sporing :Sporing Personalia :Personalia Fasiliteter :Fasiliteter Status :PersonStatus Stortingsansatt :Stortingsansatt Gruppeansatt :Gruppeansatt EksternPerson :EksternPerson EposPerson :EposPerson TiltredelsesPerioder :List<TiltredelsesPeriode> Fodselsdato :string EpostPrivat :string Stortingsansatt PersonId* :int Person :Person PersonKategori :PersonKategori Status :PersonStatus Ansettelsesforhold :Ansettelsesforhold TiltredelsesPeriode :TiltredelsesPeriode Stilling :Stilling OrgEnhet :OrgEnhet Avdeling :Avdeling Seksjon :Seksjon SeksjonsGruppe :SeksjonsGruppe Permisjon :Permisjon VikarFor :Person Komite :Komite Idkort :Idkort Fasiliteter AdBrukernavn :string SkalHaRom :bool Rom :Rom InternTlf :string BiblioteksId :int? Personalia Etternavn :string Fornavn :string Fodselsdato :DateTime AdressePrivat :Adresse TlfMobil :string TlfHjemme :string TlfArbeid :string Adresse Linje :string PostNr :string Poststed :string Land :string Permisjon Fra :DateTime Til :DateTime PermAarsak :string Ansettelsesforhold Id* :int Navn :string ForStortingsansatt :bool ForGruppeansatt :bool PersonStatus Kommer Aktiv Permisjon Sluttet StortingsansattEndring Id* :int Stortingsansatt :Stortingsansatt EndringFra :DateTime Ansettelsesforhold :Ansettelsesforhold Stilling :Stilling Avdeling :Avdeling Seksjon :Seksjon SeksjonsGruppe :SeksjonsGruppe 1 1 1 0..1 1 0..1 1 10..*
  • 8. Domene-modellering Før • Domene-språket reflekterte relasjonsdata i database (SQL) • Fokus på optimalisering • Tekniske diskusjoner uten innhold Etter • Domene-språket reflekterte virkeligheten • Fokus på innhold • Objekt-orientert • Domene-modell != Database, Domene-modell => Database Om optimalisering “… We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%” - Donaldt Knuth Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 9. Mapping med ORM (EF) EF tilbyr tre måter å mappe objekter / relasjonsdata: • Database First (Generering) • Model First (POCO/Generering) • Code First (POCO) Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 10. Database First – Erfaringer Positivt • Valgfri database-modelleringsverkøy • Visualisering i designer • Enkelt, lav læringskurve • Optimalisering av database Negativt • Database-sentrisk domene modell • Generering/Partial classes • Ikke 100% sporbarhet Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 11. Model First - Erfaringer Positivt • Visualisering av mapping i designer • GUI for mapping • Sporbarhet Negativt • Dårlig tooling (bugs i designer) • Generering/Partial classes • Merging av XML Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 12. Code First - Erfaringer Positivt • POCO, OOP-sentrisk • Convensions over configuration • Merge-vennlig • 100% sporbarhet • (Migrations) Negativt • Mapping ikke visualisert • Høy læringskurve ved komplisert mapping Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 13. Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning Entity Framework - Erfaringer • Objekter != Relasjonsdata • Krever kunnskap om optimalisering (LINQ) • Optimalisering med mapping • Tilfeller av nødvendig DTO abstraksjon Domene modellen reflekterte forretningslogikken!
  • 15. Testing Før • Ad-hoc testing i ikke-sporbare (multiple) testmiljø • Ingen test-planer • Ingen enhetstester Etter • Automatisert testmiljø • Testplaner (delvis) • Enhetstester Utfordring • Manuelle testere / Tid Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 16. Continous Integration Før • Ingen bygg • Ingen feedback • “Works on my machine” Etter • Automatisert feedback • Sporbarhet Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 17. Continous Delivery Før • Manuell deployment • Filkopiering, konfig editering • Tregt, krever planlegging, waste • Vegring Etter • Helautomatisert test/produksjonsbygg • Sporbarhet • Hurtig/smidig • Ingen vegring Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 18. Infrastruktur Før • Database pr. utvikler/miljø • Endringer direkte i test/prod • Lite dokumentasjon Etter • Alt i kildekode, 100% sporbarhet • Automatisering, repeterbarhet • Dokumentasjon via installasjons-diagrammer Kravhåndtering Arkitektur UtviklingTesting Installasjon Forvaltning
  • 19. Oppsumering • Domenespråk fremfor teknologispråk  Effektiv og tydelig kommunikasjon • OOP fremfor database-sentrisk  Synlig og tydelig forretningslogikk • Automatisering fremfor waste  Smidighet, kvalitet, effektivitet • Team fremfor individer  Samarbeid, effektivitet, engasjement • Kildekode fremfor databaser  Sporbarhet, tigjengelighet, effektivitet, kvalitet Utfordringer • Endring tar tid! • Forvent mostand og endringsfrykt! • Indentifiser champions

Editor's Notes

  1. Linjeorg
  2. “The Art of Computer Programming.”
  3. (Kompilering, enhetstester, brudd på layering)
  4. Drift elsker installasjonsdiagrammer Smidighet, utviklingshastighet
  5. Motstand mot endring, konfort zone