3. Lyhyt johdatus ketterään
ohjelmistokehitykseen
• Pienet itseohjautuvat tiimit
• Iteraatiopohjaiset julkaisut
• Iteraatioon otetaan rajattu muutospyyntösetti
• Jatkuva integraatio.
• Tuotteen omistaja mukana prosessissa.
• Sopii parhaiten uuteen tuotekehitykseen.
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 3
4. Ketterän ohjelmistokehityksen julistus
Me etsimme parempia keinoja ohjelmistojen kehittämiseen
tekemällä sitä itse ja auttamalla siinä muita. Tässä
työssämme olemme päätyneet arvostamaan
Yksilöitä ja vuorovaikutusta enemmän kuin prosesseja ja
työkaluja
Toimivaa sovellusta enemmän kuin kokonaisvaltaista
dokumentaatiota
Asiakasyhteistyötä enemmän kuin sopimusneuvotteluita
Muutokseen reagoimista enemmän kuin suunnitelman
noudattamista.
Vaikka oikeallakin puolella on arvoa, me arvostamme
vasemmalla olevia asioita enemmän.
http://agilemanifesto.org/ Suomennos: wikipedia
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 4
5. 12 ketterää periaatetta
1.Tärkeintä on täyttää asiakkaan 4.Liiketoiminnan ammattilaisten ja
vaatimukset jatkuvilla ja riittävän ohjelmistokehittäjien on
aikaisilla ohjelmistotoimituksilla. työskenneltävä yhdessä päivittäin
koko projektin ajan.
2. Muuttuvat vaatimusmäärittelyt
hyväksytään ja otetaan vastaan 5. Projektit rakennetaan
tervetulleina, myös kehityksen motivoituneiden yksilöiden
loppuvaiheessa. Ketterät menetelmät ympärille. Heille annetaan
valjastavat muutoksen asiakkaan ympäristö ja tuki jota he tarvitsevat,
kilpailueduksi. sekä luotetaan siihen, että he
saavat työn tehtyä.
3. Toimivia ohjelmaversioita
6. Kaikkein tehokkain tapa
toimitetaan säännöllisesti, muutaman
tiedonvälityksessä kehitystiimille ja
viikon tai kuukauden välein,
kehitystiimin sisällä on kasvokkain
mieluummin useammin kuin
tapahtuva keskustelu.
harvemmin.
Janne Huttunen: Ketterän ohjelmistokehitysmenetelmän määrittely, vertailu ja käyttäjäkysely. Diplomityö 2006.
http://lib.tkk.fi/Dipl/2007/urn007665.pdf
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 5
6. 12 ketterää periaatetta
10. Yksinkertaisuus –
7. Toimiva ohjelmisto on
ensisijainen työn edistymisen tekemättömän työn maksimoinnin
taito – on olennaista.
mitta.
8. Ketterät menetelmät suosivat 11. Parhaat rakenteet,
kestävää kehitystä. Rahoittajien, vaatimukset ja suunnitelmat
kehittäjien ja käyttäjien tulisi kyetä nousevat itseorganisoituvista
pitämään jatkuvasti yllä tasainen tiimeistä.
työtahti.
12. Tasaisin väliajoin tiimi arvioi,
9. Jatkuva huomion kiinnittäminen
miten voisi tulla entistä
tekniseen erinomaisuuteen,
tehokkaammaksi, ja kehittää
hyvään rakenteeseen sekä
toimintaansa sen mukaisesti.
suunnitteluun lisää ketteryyttä.
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 6
7. Ketterän kehityksen menetelmiä
• Adaptive Software (EssUP)
Development • Extreme Programming
• Agile Modeling (XP)
• Agile Unified Process • Feature Driven
(AUP) Development
• Agile Data Method • Getting Real
• Crystal Clear • Open Unified Process
(OpenUP)
• DSDM (Dynamic Systems
•
Development Method) Scrum
• Essential Unified Process
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 7
8. Agilemenetelmien yhteisiä piirteitä
• Iteratiivinen ja inkrementaalinen
– Tuotetaan toimiva tuote varhain, lisätään toiminnallisuutta
joka iteraatiossa.
• Kommunikointi kaikin keinoin
– Naamakkain, sähköposti, pikaviestimet, wiki, videopuhelut,…
• Kevyt byrokratia
– Kevyt dokumentointi, lyhyet tilannekokoukset
• Testit ensin
• Kokemusperäinen ja objektiivinen
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 8
12. Scrum ja XP suosittuja
Lähde: Jeff Sutherland: Pretty Good Scrum 2008
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 13
13. Scrum
• Product backlog
– omistajan
arvojärjestys
• Sprint backlog
– tiimin valitsemat
vaatimukset
• Päivittäiset scrumit
• Toimiva tuote joka
sprintistä
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 15
14. Ketterä kehitys siis toimii
• Ketterä ohjelmistokehitys toimii.
– Prosessi on kevyt
– Nopeasti etenevä
– Käytännössäkin innostava
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 16
15. Ketterä != vapaa
• Ketterää pidetään (väärin) perinteisen
ohjelmistokehitystyön vastakohtana.
• Agile – notkea
• Iteratiivinen, asteittainen kehitystapa
– Aikajakso viikkoja
– Pitkälle viety yhteistyö
– Aikajakso ei jousta
• Ei Cowboy Coding:ia
• Ketterä kehitys tarvitsee tukensa.
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 18
16. Ketterä ohjelmistokehitys yrityksessä
• Onko yrityksessä jo olemassa mitattua tietoa
perinteisen ohjelmistokehityksen tehokkuudesta?
• Mitä vaatimuksia yritys asettaa
ohjelmistokehitysprojektin seurannalle?
• Miten ketterä ohjelmistokehitys istuu yrityksen
käytäntöihin?
• Voidaanko ketterää mitata samoin kuin
perinteistä?
• Onko kyse muotisanasta?
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 19
17. Oletteko ketteriä?
Nokia-testillä selviää:
• Osa1: Iteratiivista?
• Iteraatioiden kesto max 4 viikkoa.
• Ohjelmiston ominaisuuksien pitää olla testattuja ja toimivia joka
iteraation lopussa
• Iteraation on alettava ennen kuin vaatimukset ovat valmiita.
• Osa 2: Käytättekö Scrumia?
• Tiedättekö kuka on tuotteen omistaja?
• Työlista on tuottoarvon mukaisessa järjestyksessä
• Työlistassa on tiimin antamat työmääräodotukset
• Tiimi tuottaa valmistumiskuvaajan tietää nopeutensa
• Kukaan ei keskeytä tiimin työtä.
http://jeffsutherland.com/scrum/Agile2008MoneyforNothing.pdf
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 20
18. Tarve tietää projektista
– Kuka tarvitsee/saa tietoa projektin
ulkopuolella?
– Mitä tietoa tiimin ulkopuolella tarvitaan?
– Mitä on toteutettu koodiin?
– Mitä muutoksia kukin piirre on tarvinnut?
– Mitä on jäljellä?
– Aikataulun pitävyys?
– jne.
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 21
19. Ketterän kehityksen edellytyksiä
• Yleistiimit
– Tiimissä kaikki roolit mukana asiakkaasta
testaukseen.
• Tiimin toiminta-alusta
– Konfiguraationhallinta
– Muutoksenhallinta
– Laadunvarmistus
– Tiedonvälitys
– Yhteistyö
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 22
20. IBM Rational ClearCase
• Jo vuodesta 1992!
• UCM vuodesta 1999
• VOB, elementti, versio, haara, leima, attribuutti,
config_spec, dynaaminen näkymä, snapshot-näkymä, buildauksen välttely, stream,
merge, delivery, rebase, …
• Peruskurssi 2pv, konfiguraationhallintakurssi 1pv,
hallinnointikurssi 2 pv, MultiSite-kurssi 2pv …
• Agile?
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 25
21. IBM Rational ClearCase
• ClearCase on työkalupakki
– Sen avulla voi rakentaa lähes kuinka
monimutkaisen järjestelmän hyvänsä.
– Perus-ClearCase, UCM, eri näkymätyypit,
haaroitusrakenne, config_spec, eri menetelmät
tuottaa ajettava ohjelma, integroinnit, triggerit,
jne.
• Ketterää varten valitaan vain tarvittava
– Jokaista työtä varten ei tarvita koko pakin sisältöä.
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 26
22. IBM Rational ClearCase
ClearCase voi olla hyvin ketterä,
jos teet sen sellaiseksi.
tee-se-itse!
KISS
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 27
23. Ketterä ClearCase
• Yksinkertainen haararakenne
– Integrointihaara, jossa myös työskennellään
– Erillinen julkistushaara
• Snapshot-näkymät
• Oletukseksi 'Unreserved Checkout'
• Jatkuva integraatio, automaattiset testit
• Tuotteen toiminnallinen jako
• Julkaisu yhtenäisenä
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 28
24. Ketterä ClearCase
• ClearCase on työkalupakki
– Kokoa oma ympäristösi
• Ei MultiSiteä?
• CCRC OK !
• Käyttö opeteltava
• Integroinnit?
• Käytön tuki
• Projektin omat VOBit?
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 29
25. Projektin data vs. Yrityksen
datavarasto
• Käytetään ClearCasea /main
normaalisti, projektille /agiproj
haara.
– Data integroitavissa
vanhaan
– Ei paljon lisäadministrointia
– Voi olla raskas käyttää
– Ei tue hyvin rakenteen
muuttamista
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 30
26. Projektin data vs. Yrityksen
datavarasto
• Projektille oma VOBi /main
– Integrointihaaste vanhaan agiproj
/main
• Merge esim. Scrumin lopuksi
– Lisäadministrointia
• Vobin alustus
– Vapaampi käyttää
– Kevyempi käyttää
– Tukee rakenteen
muuttamista
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 31
27. Jatkuva integraatio
• Jatkuva integraatio
– Jokainen muutos aiheuttaa käännöksen
– Perusviat löytyvät heti – korjataan heti
– Yksikkötestaus mukaan
• Automatisoitavissa
– Clearmake
– Build Force
– xUnit, Ant
–…
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 32
28. Ketterä ClearCase
• Ketterä ohjelmistokehitys ei poista ClearCase-
administraattorin tarvetta.
• Muutosjohtaja tarvitaan.
• Kokemusten perusteella tarvittaessa
muutoksia.
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 33
29. Mietittävää
• Tarvitseeko ketterän tiimin osata config_spec?
• Autaisiko muutossetin liittäminen
aktiviteettiin?
• Tarvitaanko kevyt projektinhallinta?
• Uskalletaanko jo ottaa käyttöön ClearCasen
quot;uusiquot; käyttötapa – UCM (v1999) ?
• Entä etäklientti? Tarvitsee vain http-yhteyden
2009-03-19 ClearCase ja ketterä ohjelmistokehitys 34
30. 2009-03-19 ClearCase ja ketterä ohjelmistokehitys 35
31. 2009-03-19 ClearCase ja ketterä ohjelmistokehitys 36