Teknisen taitamisen merkitys ketteryydessä - näpertelyä vai elinehto? Marko Taipale - Huitale
Teknisen taitamisen merkitys ketteryydessä
- näpertelyä vai elinehto? Marko Taipale - Huitale
2 Cases: Mikä oli teknisen taitamisen merkitys?
Mitä on technical excellence käytännössä ja mitä iloa siitä on liiketoiminnalle?
2 Cases: Mikä oli teknisen taitamisen merkitys?
Mitä on technical excellence käytännössä ja mitä iloa siitä on liiketoiminnalle?
Miten sovittaa työkalut ja käytännöt tasapainoon ketterien käyttöönotossa?
2 Cases: Mikä oli teknisen taitamisen merkitys?
Case 1
Case 1 - tausta
Yritys: Kansainvälinen online pelitalo, LV 100+ Meur, 400+ työntekijää Toimeksianto: Skaalaa liiketoimintaa jalkauttamalla ketteryyttä kehitystiimeihin “Tuotekehitys on pullonkaulamme”
Case 1: Onnistuminen?
10+ tiimiä pyörivät Scrumilla,
6 viikon yritys-sprintit
Homma on tehty, eikös?
Case 1: ihmetys…
Liiketoiminta: “En tiedä mitä olette tehneet, mutta ainakaan mikään ei ole parantunut”
Development Design
Customer approval
Internal approval Idea Resourcing
Deployment
Development
2m
Design
1m
Customer approval
2h
Internal approval
2h
Idea Resourcing
1d
Deployment
3w
Development
2m 15
Design ready
6m
1w
Design
1m
1m
Customer approval
2h 2d
Internal approval
2h
Idea 6m
Resourcing
1d
8
Selected ideas
Deployment
3w 12
Production ready
6m
Development
2m 15
Design ready
6m
1w
Design
1m
1m
Customer approval
2h 2d
Internal approval
2h
Idea 6m
Resourcing
1d
8
Selected ideas
Deployment
3w 12
Production ready
6m
SCRUM!
Development
2m 15
Design ready
6m
1w
Design
1m
1m
Customer approval
2h 2d
Internal approval
2h
Idea 6m
Resourcing
1d
8
Selected ideas
Deployment
3w 12
Production ready
6m
SCRUM!
Case 1: Teknisen taitamisen merkitys?
Case 2
Case 2: 1400
Tausta: Finanssialan toimija, ketteryyttä jalkautettu ylhäältä alaspäin, 3 tiimiä ketterässä projektissa
Case 2: toimintamalli
3 Sprinttiä kehitystä
X sprinttiä virheenkorjausta
?
Case 2: toimintamalli
3 Sprinttiä kehitystä
3 sprinttiä virheenkorjausta
1400 bugia
Case 2: Teknisen taitamisen merkitys?
Case 1 & 2 Yhteenveto
Käytännöt auttavat kehitysvaihetta, mutta eivät takaa liiketoiminnallista
tuloksellisuutta
Arvoketju voi syödä kaiken tehon, jonka käytännöt tuovat (Case 1)
Käytännöt ovat kuitenkin elinehto kestävälle tuotekehitykselle (Case 2)
Mitä on technical excellence käytännössä ja mitä iloa siitä on
liiketoiminnalle?
Ketteriä teknisiä käytäntöjä
Testivetoinen kehitys (Test Driven Development, TDD) Jatkuva integrointi (Continuous Integration CI) Jatkuva julkaisu (Continuous Deployment, CD)
Aloita
Kirjoita testi, joka ei mene läpi
Toteuta toiminnallisuus siten, että testi
menee läpi
Lopeta
Refaktoroi
TDD
TDD - hyödyt Laatu J Ei turhaa toteutusta ilman tarvetta (testi ohjaa) Muuttumattomuustestauskuorman kanssa mahdollisuus selvitä Automatisoimalla yksikkö- ja toiminnallisen testaamisen testaajat saavat mahdollisuuden keskittyä mielenkiintoisempiin testauskategorioihin Lyhyempi TTM, koska virhekorjauskierrokset vähenevät, myös välitön säästö ongelmien selvittelyn ajassa, nopeampi palaute
Jatkuva integrointi (Continuous Integration)
Kehitys CI
….
1. Kerää integroitava aineisto tietolähteistä (versionhallinta..) 2. Rakenna aineistosta julkaistavat tuotokset 3. Asenna ne kohdeympäristöön 4. Aja kohdeympäristössä automatisoidut testit 5. Raportoi tulokset
24h
Jatkuva integrointi - hyödyt
Ei enää integrointiyllätyksiä – fail fast!
Nopeampi palaute, virheiden korjaus nopeutuu
Time-to-Market
Jatkuva julkaisu (Continuous Deployment)
CD Tuotanto
1. Ota varmuuskopiot tuotannosta 2. Kerää tuotantoaineisto tietolähteistä (CI) 3. Tarkista päivitystarve tuotantoon (versiot) 4. Aja migraatioskriptit (tietokanta jne..) 5. Asenna tuotantopaketti 6. Aja tarkistusajot, tee tarvittaessa rollback 7. Raportoi tulokset, jatka mittareiden seuraamista ja tee
tarvittaessa rollback
24h
CI
Jatkuva julkaisu - Hyödyt • Time-to-Market • Nopea palaute liiketoiminnasta (mittaristolla) • Eriytettävissä “julkaisu” ja “asiakasjulkaisu” • Pienemmät tuotantoketjun jonot, atomisempi
arvoketju -> jatkossa vielä lyhyemmät läpimenoajat
• Operatiivinen tehokkuus (infran myötä) • Asiakastyytyväisyys • Konfiguraatioiden määrä vähenee, koska
muutokset saataan tuotantoon nopeammin
Technical excellence
• On ennenkaikkea asennetta ja itsekuria tehdä työtä inkrementaalisesti ja iteratiivisesti
Miten sovittaa työkalut ja käytännöt sopivaan tasapainoon
ketterien käyttöönotossa?
Aika
Muutoskyky (ilman työkaluja)
Aika
Muutoskyky (työkalut) Muutoskyky (ilman työkaluja)
Aika
Muutoskyky (työkalut) Muutoskyky (ilman työkaluja)
Opit
• Älä anna työkalujen ohjata tekemistä, vaan tarpeen on ohjattava ja työkalujen vikistävä
• Aloita manuaalisesti, automatisoi ja sähköistä vaiheittain, tarpeen mukaan
Yhteenveto
Tekninen taitaminen ei korvaa huonoa “järjestelmän” johtamista
Tunne arvoketjusi, ennen aloittamista.
Johda järjestelmää.
Tekninen taitaminen on kuitenkin tuotekehityksessä elinehto.
Jotta liiketoiminnallinen ketteryys
voidaan saavuttaa
Marko Taipale
• 15+ vuotta ohjelmistotuotantoa • Agile/Lean consultant, Advisor
Kansainvälinen online-pelitalo (TO 100+ Meur) lyhensi TTM:a 24 kuukaudesta 3 kuukauteen Suomalainen energiayhtiö hankki prosessinohjaus/tilausjärjestelmän 20Meur hankkeessa ketterästi ja sai järjestelmän 4 kertaa kaavailtua nopeammin Suomalainen finanssisektorin toimija tehosti hanke- ja projektihallintoaan ja säästi 1,3Meur/vuosi hallintokuluissa Suomalainen startup-yhtiö löysi toimivan liiketoimintamallin 2 kuukaudessa.
• Kymmeniä kansainvälisiä julkisia esiintymisiä
Marko Taipale
• [email protected] • +358 40 578 6447 • Twitter: @markotaipale