Extreme Programming (XP) -metodologian soveltaminen ohjelmistojen tuotantoon
|
|
- Yrjö Lahti
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikka Ohjelmistotekniikka Tutkintotyö Extreme Programming (XP) -metodologian soveltaminen ohjelmistojen tuotantoon Työn ohjaaja Työn teettäjä Lehtori Tony Torp, TAMK Digia Oyj, valvojana Heikki Lintinen Tampere 2008
2 TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikka Ohjelmistotekniikka Männistö Sami Tutkintotyö Työn-ohjaaja Työn teettäjä Syyskuu 2008 Hakusanat Extreme Programming (XP)-metodologian soveltaminen ohjelmistojen tuotantoon 41 sivua Lehtori, Tony Torp, TAMK Digia Oyj, valvojana Heikki Lintinen ketterät menetelmät, pariohjelmointi, extreme programming, XP Tiivistelmä Extreme programming (XP) on niin sanottu ketterä ohjelmistokehitysmetodologia. Se sopii erityisesti riskialttiille projekteille, joissa vaatimukset saattavat muuttua. XP on kevyt metodologia, joka yhdistää olemassa olevien ohjelmistokehitysprosessien käytäntöjä. Tällöin kehittäjien ei tarvitse laatiakattavia dokumentaatioita, vaan voivat keskittyä olennaiseen: laadukkaan koodin kirjoittamiseen. Tutkintotyön tarkoituksena on tutustua XP -metodologiaan, jonka suosio teollisuudessa on kasvanut viime vuosina. Työssä tutkitaan tämän metodologian eri käytäntöjä, tutkimuksissa saatuja tuloksia ja niiden soveltamista ohjelmistojen tuotannossa. Tässä työssä järjestetään käytännön kokeilu, joka painottuu XP:n pariohjelmointimenetelmään ja sen ominaisuuksien hyödyntämiseen ohjelmistojen tuotannossa. Työn tavoitteena on antaa mahdollisimman kattava selvitys XP -metodologiasta ja sen menetelmistä. Työssä pyritään laajentamaan kirjoittajan näkemystä ja osaamista ketterien menetelmien saralla. Tutkintotyö sopii hyvin kaikille ketteristä menetelmistä kiinnostuneille tahoille, ja varsinkin XP -metodologiaan suuntautuneille ohjelmistokehittäjille.
3 TAMPERE UNIVERSITY OF APPLIED SCIENCES Computer science Software engineer Männistö Sami Thesis Thesis-Supervisor Thesis Instructor September 2008 Keywords Appliance of Extreme Programming (XP)-method to software production 41 pages Senior Lecturer Tony Torp, Tampere Polytechnic University Digia Plc, Supervisor Heikki Lintinen Agile software development, pair programming, extreme programming, XP Abstract Extreme programming (XP) is so called agile software development method. It s good especially to project with high risk and where demands can change constantly. XP is light weight methodology which combines existing practices from software development projects. Developers are released from unnecessary work etc. large documentations and can focus on important things: writing good quality code. Purpose of this thesis is to get know XP-methodology, whose popularity in industry has been increased in last year s. Thesis will investigate this methodology s different practices and results from research and how to adapt them in software development. Hands-on test will be in this thesis, which will focus on XP s pair programming practice and how to use its features in software development. Goal of work is to give as extensive explanation of XP-methodology and its practices as possible. This work will pursue to increase writers point of view and knowhow in the area of agile software development. This thesis is suitable for everyone who is interested in agile methods, and especially those who are interested in XP methodology in software development
4 Alkusanat Tämä tutkintotyö on tehty DIGIA Oyj:n Telekommunikaatio-yksikössä tammikuun 2008 ja syyskuun 2008 välisenä aikana. Työn ohjaajana on toiminut tiimipäällikkö Heikki Lintinen DIGIA Oyj:stä ja valvojana lehtori Tony Torp Tampereen ammattikorkeakoulusta. Kiitokset esimiehelleni, työtovereilleni ja DIGIAlle tuesta, insinöörityön aiheesta ja resursseista, joita sain käyttööni, kun tein tutkintotyötäni. Tampereella
5 TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikka Ohjelmistotekniikka SISÄLLYSLUETTELO Tiivistelmä... 2 Abstract... 3 Alkusanat... 4 Lyhenteet ja termit Johdanto Mikä on XP?... 9 Mikä tekee XP:stä extremen?...10 XP antaa kaksi sarjaa lupauksia Ohjelmoijalle Asiakkaalle ja johtajalle XP:n arvot ja periaatteet Arvot Yksinkertaisuus Kommunikointi Palaute Rohkeus Kunnioitus Periaatteet Nopea palaute Pyrkimys yksinkertaisuuteen Inkrementaalinen muutos Muutosten hyväksyminen Laadukas työ XP:n säännöt XP:n käytännöt Hieno palaute Pariohjelmointi Suunnittelupeli Testipainoitteinen kehitys Koko tiimi Jatkuva prosessi Käyttäjäkertomukset on kirjoitettu Jatkuva integraatio Suunnittelun parantaminen Pienet toimitukset Jaettu ymmärtäminen Koodausmenetelmät Yhteinen koodin omistaminen Yksinkertainen rakenne Yhteinen kielikuva Ohjelmoijan hyvinvointi Sopiva tahti XP:n tavoite Miksi käyttää XP:tä Pariohjelmointi Jaa kaikki...27 Pelaa reilusti...27 Keskity olennaiseen...27 Pistä tavarat takaisin paikalleen...28
6 TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikka Ohjelmistotekniikka Siivoa jälkesi...28 Älä ota asioita liian vakavasti...28 Työympäristö...29 Poista skeptisyys kun aloitat...29 Huuhdo...30 Säännölliset tauot...30 Tauot pariohjelmoinnista...30 Ei kilpailua Pariohjelmointi kokeilu Kysely Tulokset Yhteenveto Lähteet Painetut lähteet Sähköiset lähteet Liitteet 1 Pariohjelmointi kyselylomake 2 Pariohjelmointi kyselyn tulokset
7 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 7(42) Lyhenteet ja termit Extreme Programming Refaktorointi Iteratiivisyys Inkrementti QT MAEMO RSS (XP) Ketterä ohjelmistokehitysmenetelmä. Prosessi, jossa tietokoneohjelman lähdekoodia muutetaan siten, että sen toiminnallisuus säilyy. Prosessi etenee vaiheittain eteenpäin. Yhden vaiheen tuotoksena on inkrementti Kooste viimeisimmän ja sitä edeltävien vaiheiden tuotoksista Trolltech yhtiön valmistama tietokoeohjelmien kehitykseen tarkoitettu graafinen käyttöliittymäkirjasto. Linux-pohjainen kehitysalusta kämmenmikroille. joukko verkkosyötemuotoja, joita käytetään usein päivittyvän digitaalisen sisällön julkaisemiseen.
8 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 8(42) 1 Johdanto Monissa ohjelmistoprojekteissa perinteiset ohjelmistonkehitysprosessimallit on havaittu liian jäykiksi ja kykenemättömiksi vastaamaan asiakkaan vaatimuksia. Tällaisen mallin mukaan etenevän projektin alussa asiakkaan kanssa on tehty valmiit suunnitelmat siitä, millainen kehitettävän sovelluksen tulisi olla. Toteutusvaihe voi kestää muutamasta kuukausista jopa vuosiin, ja sitten kun asiakkaalle esitellään valmista tuotosta, se ei välttämättä vastaa asiakkaan toiveita. Voi olla että joku näkökulma on jäänyt projektin alussa kokonaan huomioimatta tai se on ymmärretty väärin, jolloin alusta alkaen on alettu kehittämään vääränlaista järjestelmää. Ratkaisuksi tällaisiin ongelmiin on kehitetty joustavampia prosessimalleja. Ketterät menetelmät pyrkivät tuomaan kaivattua joustavuutta ohjelmistokehitykseen. Tavoitteena on tuottaa asiakkaalle toimivia versioita kehitettävästä ohjelmistosta säännöllisin väliajoin, hallita muuttuvia vaatimuksia myös myöhäisessä projektin vaiheessa sekä olla yhteistyössä asiakkaan kanssa. Ketterät menetelmät, kuten tässä tutkintotyössä käsitelty XP, ovat kasvattaneet teollisuudessa suosiotaan viime vuosina. Kasvava määrä ohjelmistojen kehittäjätiimejä käyttää työelämässä menestyksellisesti näitä menetelmiä. Työssä esitellään XP ja tutkitaan pariohjelmoinnin soveltumista ohjelmistojen kehitykseen. Tavoitteena on lisätä omaa tietämystä ketteristä menetelmistä.
9 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 9(42) 2 Mikä on XP? Extreme programming on harkittu ja kurinalainen ohjelmistokehityksen näkökulma, joka pohjautuu seuraaviin arvoihin: yksinkertaisuus, kommunikointi, palaute, rohkeus ja kunnioitus.se on luopumista vuosien aikana opituista vanhoista kaavoista, jotka ovat nyt ohjelmistokehityksen tiellä. XP on menestyvä, koska se korostaa asiakastyytyväisyyttä. Metodologia on suunniteltu toimittamaan ohjelma asiakkaalle, kun asiakas sitä tarvitsee. XP-Metodologia korostaa ryhmätyöskentelyä. Johtajat, asiakkaat ja kehittäjät ovat kaikki osa työryhmää, jotka ovat sitoutuneet luovuttamaan laadukasta ohjelmistoa. XP-ohjelmoijat kommunikoivat asiakkaiden ja toisten ohjelmoijien kanssa. Ohjelmoijat pitävät heidän suunnitelmansa yksinkertaisina. He saavat palautetta testaamalla ohjelmaa ensimmäisestä päivästä alkaen ja toimittavat ohjelmiston asiakkaalle niin pian kuin mahdollista. Tämä menetelmä sopii erinomaisesti pieniin alle 20 henkilön projekteihin. Kuvassa 2.1 yleiskuva arvojen, käytäntöjen ja tapojen vuorovaikutuksesta XP-metodologiassa. KUVA 2.1 XP:n perusidea /1/
10 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 10(42) Mikä tekee XP:stä extremen? Perinteisessä ohjelmistokehityksessä käytössä olevet käytännöt ja periaatteet viedään XP:ssä äärimmäiselle tasolle: Jos koodin katselmointi on hyvää, sitä katselmoidaan jatkuvasti Jos suunnittelu on hyvä, se on jokaisen päivittäistä työtä Jos yksinkertaisuus on hyvä, teemme aina yksinkertaisimman toimivan ratkaisun Jos rakenne on tärkeä, jokainen työskentelee määritellen ja jalostaen rakennetta jatkuvasti Jos testaus on hyvä, teemme sitä jatkuvasti Jos lyhyet iteraatiot on hyvä asia, pyrimme saavuttamaan todella lyhyet iteraatiot sekunteja, minuutteja ja tunteja ei viikkoja, kuukausia tai vuosia. XP antaa kaksi sarjaa lupauksia Ohjelmoijalle Ohjelmoijat saavat työskennellä joka päivä sen parissa, millä on todella merkitystä. Pelottavia tilanteitä ei tarvitse kohdata yksin. He saavat tehdä kaiken mahdollisen saadakseen toimivan kokonaisuuden. Ohjelmoijat saavat päättää vain niistä asioista jotka he osaavat parhaiten Asiakkaalle ja johtajalle Asiakkaat ja johtajat saavat parhaan mahdollisen arvon jokaiselle ohjelmointiviikolle. Joka viikko he voivat nähdä konkreettista edistymistä heitä kiinnostavista kohteista. He voivat muuttaa kurssia kesken projektin kehityksen ilman kohtuutonta maksua. Kuva 2.2 kuvaa XP-projektin kulkua.
11 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 11(42) Kuva 2.2 XP:n projektin kulku /2/ 3 XP:n arvot ja periaatteet 3.1 Arvot Jokainen ohjelmistotuotannon parissa työskentelevä tietää, mikä on tärkeää. Yksi henkilö voi ajatella, että perinpohjainen suunnitteleminen on tärkeää ennen ohjelmointia. Toinen voi ajatella, että todella merkitsevää on oma henkilökohtainen vapaus, jolle ei ole mitään estoja. Näiden sijaan tulisi keskittyä XP:n arvoihin, jotka ovat ensisijainen apukeino, kun ei ole varmaa, tilanne selvitetään. Nämä arvot ovat seuraavat: yksinkertaisuus kommunikointi palaute rohkeus kunnioitus.
12 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 12(42) Yksinkertaisuus Aluksi etsitään yksinkertaisin vaihtoehto työn toteuttamiseen ja parannellaan sitä myöhemmin, jos tarve vaatii. Tämä arvo perustuu siihen, että ohjelmiston tarpeet ja moni muu asia muuttuu usein ja ne ovat niin epätarkkoja, että on harvoin kannattavaa lisätä ominaisuutta, joka voisi olla hyödyllinen jossain tulevaisuuden vaiheessa. Tätä kuvaa niin sanottu YAGNI-periaate: ellet tarvitse tiettyä asiaa nyt, et luultavasti tule tarvitsemaan sitä myöhemminkään. "XP is making a bet. It is betting that it is better to do a simple thing today and pay a little more tomorrow to change it if it needs it, than to do a more complicated thing today that may never be used anyway." /4/ Kommunikointi Kommunikoinnin tärkeys on nimenomaan siinä, että työryhmät ajattelevat kaiken tiedon jakamisen olevan erittäin tärkeää. XP:n työryhmät kuitenkin ajattelevat, että ylikommunikointi on parempi vaihtoehto kuin kommunikoinnin puute. XPtyöryhmät jakavat tietoa monella eri tasolla: Pariohjelmointia nopeaan tiedon vaihtoon, sekä päivittäisiä tapaamisia koko työryhmän tietojen päivittämiseen. Kuva 3.1 kuvaa sitä, kuinka tehokasta kommunikaatio on eri välineitä käytettäessä. Kuvaajassa esitetään katkoviivalla erilaisia dokumentaatiovälineitä ja yhtenäisellä viivalla erilaisia välineitä ohjelmiston mallintamiseen. Paperidokumentaatio nähdään heikoimmaksi dokumentaatiovälineeksi, vaikka sitä ohjelmistoprojekteissa on perinteisesti tehty runsaasti.
13 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 13(42) Kuva 3.1 Erilaisten kommunikaatiomallien tehokkuus /3/ Palaute Palautteen arvo lisää uskoa siihen, että ohjelmistojen tilaajien tarpeet muuttuvat aina tai ei ole ymmärretty hyvin projektin alussa. Sen takia ainoa tapa luoda ohjelmistoa, jota asiakas todella tarvitsee, on jatkuvasti muuttaa kehitystä asiakkaan palautteen perusteella. Palaute tulee monessa eri aikaskaalassa. Ensimmäinen palaute toimii minuutti- ja päiväskaalassa. Ohjelmoija kirjoittaa testin ja ajaa sen. Ohjelmoija saa testin palautteen minuuteissa käsiteltäväkseen. Palautetta tulee myös työkavereilta, kokouksista ja esimiehiltä päivittäin. Viikko- ja kuukausiskaalassa palaute tulee asiakkaalta ja testaajalta, jotka testaavat kaikki ohjelmat. Kuva 3.2 eri käytäntöjen nopeus palautteen antamisessa.
14 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 14(42) KUVA 3.2 Palaute eri ajanjaksoissa. /5/ "The business people say "I had no idea that was so expensive. Just do this one third of it. That will do fine for now." /4/ Rohkeus Jonkin asian tekeminen seurauksista välittämättä ei ole ryhmätyöskentelyä. Rohkaise ryhmätyöskentelyyn etsimällä muista arvoista apua tilanteisiin, joissa olet peloissasi. Vaikeat päätökset on syytä tehdä heti. Myös epäonnistuneen koodin voi hylätä, sillä on parempi alkaa tehdä alusta kuin yrittää parantaa asiaa joka ei toimi Kunnioitus Kunnioitus on XP:ssä uusi arvo, joka tuli esiin Extreme programming explained second edition -kirjassa. Jokaista tiimin jäsentä tulee kunnioittaa. Olen tärkeä ja niin olet sinäkin.
15 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 15(42) Periaatteet Pariaatteet, jotka muodostavat XP:n perustan pohjautuvat yllä mainittuihin arvoihin. Periaatteiden on tarkoitus olla konkreettisempia kuin arvojen ja paremmin ymmärrettäviä käytännön tilanteessa. Perusperiaatteet ovat: nopea palaute pyrkimys yksinkertaisuuteen inkrementaalinen muutos muutosten hyväksyminen laadukas työ. Toissijaiset periaatteet: pienet alkuperäiset sijoitukset konkreettiset kokeet Vastuun ottaminen oppimaan opettaminen avoin, rehellinen kommunikointi paikalliset sovellukset rehellinen mittaaminen Nopea palaute Palaute on parhaimmillaan, kun se tehdään heti. Toiminnan ja palautteen välisellä ajalla on olennainen merkitys oppimiselle. Ohjelmistotuotanto tehdään pienissä iteraatioissa mikä: mahdollistaa asiakkaan palautteen nopeasti.
16 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 16(42) Pyrkimys yksinkertaisuuteen Kohdataan jokainen ongelma kuin se olisi erittäin yksinkertainen. Tehdään pieniä ja yksinkertaisia ratkaisuvaihtoehtoja ja parannetaan niitä tulevaisuudessa, jos on tarvetta. Pienten muutosten seuraaminen ja korjaaminen on huomattavasti yksinkertaisempaa kuin suurten muutosten hallinta Inkrementaalinen muutos Tehdään pieniä yksittäisiä muutoksia ja jokaisen muutoksen jälkeen tarkistetaan, onko se aikaisempaa parempi. Näin menetellen löydetään yleensä vanhaa ratkaisua paremman mallin, mutta ei välttämättä parasta vaihtoehtoa. XP:n prosessi on iteratiivinen ja inkrementaalinen kuva 5.2. Iteratiivisyys tarkoittaa, että prosessi etenee vaiheittain eteenpäin. Yhden vaiheen tuotoksena on inkrementti, joka koostuu viimeisimmän ja sitä edeltävien vaiheiden tuotoksista. KUVA 5.2 XP on iteratiivinen ja inkrementaalinen
17 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 17(42) Muutosten hyväksyminen Otetaan muutokset vastaan ja mukaudutaan muutosten tarpeisiin. Nopeiden iteraatioiden projekteissa muutoksia tulee asiakkaalta pienissä mittakaavoissa päivittäin ja suuremmissa, jopa viikoittain Laadukas työ Muutokset toteutetaan huolellisesti ja kokonaan. Edistyksen pitää jatkuvasti näkyä myös toimivissa tuotteissa. 4 XP:n säännöt XP:n käytännöt eivät vielä määrittele XP:tä. Ne vertaavat ohjelmistokehitystä jalkapallon pelaamiseen, ja samalla tavalla kuin jalkapallo on määritelty sen sääntöjen avulla, myös XP tulisi määritellä sen sääntöjen avulla. Suunnittelu Käyttäjäkertomukset on kirjoitettu julkaisu suunnittelu luo aikataulut Useita pieniä julkaisuja Projektin tehtyä työmäärää mitataan Projekti on jaettu iteraatioihin Iteraation suunnittelu aloittaa jokaisen iteraation Henkilöt vaihtavat usein tehtäviä Joka aamu pikakokous seisten Korjaa XP kun se hajoaa.
18 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 18(42) Suunnitelma Yksinkertaisuus Yhteinen kielikuva Tee pika ratkaisuja riskien vähentämiseksi Ei toiminnallisuuksia aikaisin Refaktoroi aina kun mahdollista. Koodaus Asiakas on aina tavoitettavissa Koodi kirjoitetaan ennalta määrättyjen standardien perusteella Koodaa testi ensin Kaikki koodi on pariohjelmoitua Vain yksi pari päivittää koodia Päivitä usein Yhteinen koodin omistaminen Jätä optimointi viimeiseksi Ei ylitöitä. Testaus Kaikella koodilla pitää olla testi Kaiken koodin pitää läpäistä testi ennen kuin se julkaistaan Kun virhe löytyy tehdään sille testi Hyväksymistestaus ajetaan usein ja tulokset julkistetaan.
19 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 19(42) 5 XP:n käytännöt XP:llä on kaksitoista käytäntöä, jotka on jaettu neljään ryhmään: hieno palaute, jatkuva prosessi, jaettu ymmärtäminen ja ohjelmoijan hyvinvointi. Hieno palaute Pariohjelmointi Pariohjelmointi tarkoittaa, että kaksi henkilöä ohjelmoi yhdellä tietokoneella. Toinen hallitsee työaseman ja toinen istuu vieressä ja pääasiassa ajattelee ohjelmointia. Hänellä on laaja käsitys projektista, mutta hän vain katselmoi toisen tuottamaa koodia. Henkilöt keskustelevat jatkuvasti tuottamastaan koodista, ratkaisuista ja ongelmista. He myös vaihtavat rooleja säännöllisesti. Parin kanssa Kommunikoinnin tulisi olla helppoa ja vapaata Suunnittelupeli Pääsuunnitteluprosessia XP:ssä kutsutaan nimellä Planning game. Peli toteutuu kerran iteraatiossa. Se on jaettu kahteen osaan releasioinnin suunnittelu ja iteraation suunnittelu. Releasioinnin suunnittelu koostuu -tutkinta, sitoumus- ja Ohjausvaiheista. Tutkintavaiheessa tarkastellaan asiakkaan vaatimuksia ja arvioidaan niiden perusteella työn kesto. Sitoumusvaiheessa: Arvioidaan hintaa, hyötyä ja ajan käyttöä. Ohjaus: voidaan muuttaa ja priorisoida tehtäviä. Iteraation suunnittelu koostuu -Tutkinta, sitoumus- ja Ohjausvaiheista. Tutkintavaiheessa: tehdään tehtävät ja arvioidaan niihin kuluva aika. Sitoumus: Valitaan tehtävät, joista otetaan vastuu. Ohjausvaiheessa: otetaan tehtävä, valitaan pari (jos pariohjelmointia), suunnitellaan tehtävän toteutusta, kirjoitetaan testi, kirjoitetaan koodi, ajetaan testi ja korjataan koodia.
20 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 20(42) Testipainoitteinen kehitys Jos testaus ajetaan käsityönä virheitä saattaa jäädä huomaamatta, aikaa menee hukkaan ja työ on tylsää, jolloin se jää tekemättä. XP:ssä testi kirjoitetaan jo ennen varsinaista koodia. Tämä tapa auttaa ohjelmoijaa ennakoimaan, miten hänen koodinsa voisi epäonnistua. Työryhmät tuottavat 100-prosenttisesti testattua koodia. Joka kerta, kun ohjelmoija julkaisee koodia, se testataan. Jokaisen testin täytyy mennä läpi. Tämä tarkoittaa, että ohjelmoija saa välitöntä palautetta ohjelman toiminnasta Koko tiimi Kaikki projektin projektiin liittyvä väki toimii yhtenä joukkona. Asiakkaan tai asiakkaan edustajan pitäisi olla jatkuvasti saatavilla kysymyksiä varten. Kaikki työskentelevät samassa huoneessa (avoimessa työtilassa).
21 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 21(42) Jatkuva prosessi XP:n prosessi alkaa yksinkertaisesta rakenteesta, joka täyttää alun vaatimukset ja kehittyy tasaisesti haluttuun joustavuuteen poistaen tarpeettoman monimutkaisuuden. Kuva 5.1 Pyrkimyksenä on tuottaa yksinkertaisin mahdollinen ratkaisu, joka täyttää aina sen hetkiset vaatimukset. KUVA 5.1 XP:n prosessi Käyttäjäkertomukset on kirjoitettu Käyttäjäkertomukset korvaavat vaatimusten määrittelydokumentin. Ne muistuttavat käyttötapauksia, mutta eivät ole yhtä tarkkoja. Tarkat tiedot saadaan suoraan asiakkaalta. Käyttäjäkertomukset keskittyvät käyttäjän tarpeisiin ja hyötyihin. Käyttäjäkertomukset toimivat pohjana aikataulutukselle ja hyväksymistesteille.
22 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 22(42) Jatkuva integraatio Jokaisen ohjelmistokehittäjän tulisi työskennellä ohjelman viimeisimmän version kanssa, koska eri tiimin henkilöillä voi olla tallennettu omalle koneelle vanha versio, johon on tullut uusia muutoksia. Kehittäjien tulisi päivittää koodinsa tietovarastoon muutaman tunnin välein Suunnittelun parantaminen Jatkuva refaktoorointi pitää koodin rakenteen mahdollisimman yksinkertaisena ja lisää koodin ymmärrettävyyttä. Lisäksi jatkuva refaktorointi poistaa toiston ohjelmakoodista Pienet toimitukset Useimmiten jokainen toimitus sisältää pienen palan toimitettavasta ohjelmasta. Pienet toimitukset joka iteraatiossa auttavat asiakasta uskomaan projektin etenemiseen.
23 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 23(42) Jaettu ymmärtäminen Koodausmenetelmät Koodausmenetelmät ovat hyväksyttyjä sääntöjä, joita koko projekti käyttää. Niissä on määritelty koodiin tyyli ja rakenne Yhteinen koodin omistaminen Jokainen on vastuussa tuotetusta koodista. Jokaisella on myös oikeus muuttaa koodia. Jos koodin omistavat yksilöt, vaaditut ominaisuudet yleensä laitetaan väärin paikkoihin, kun yksi ohjelmoija huomaa tarvitsevansa ominaisuuden jossain koodissa, jota hän ei omista. Tavallinen virhe on, että kun opistaja on liian kiireinen, ohjelmoija lisää tarvittavan ominaisuuden koodiinsa, mihin se ei kuulu. Tämä johtaa rumaan, hankalasti ylläpidettävään koodiin, joka on täynnä kopioita Yksinkertainen rakenne Ohjelmoijan tulisi ottaa yksinkertaisin on paras -näkökulma ohjelmistokehitykseen. Ohjelmakoodia kirjoittaessaan tulisi kirjoittajan miettiä, voiko tämän tehdä vieläkin yksinkertaisemmin Yhteinen kielikuva Yhteinen kielikuva tarkoittaa sitä, että käytetään samanlaista nimeämismenetelmää luokille ja metodeille koodauksessa. Koodin tulee näyttää siltä, kuin sen olisi ohjelmoinut yksi ja sama henkilö kokonaan.
24 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 24(42) Ohjelmoijan hyvinvointi Sopiva tahti 6 XP:n tavoite Ohjelmistokehittäjä ei saisi tehdä enempää kuin 40 tuntia viikossa. Kun viikolla on ylitöitä, seuraavalla viikolla niitä ei saisi olla. XP:n lähtökohtana on tuottaa nopeasti näyttävää koodia. XP vaatii mm. sen, että kehitystiimillä on jatkuvasti mahdollisuus käyttää asiakasta ja tämän tietoja hyväkseen. Käytännössä asiakkaan pitäisi olla kehitystiimin vieressä istumassa, mikä ei yleensä ole mahdollista taloudellisista saati maantieteellisistäkään syistä. Lisäksi kehitystiimiltä vaaditaan melko tasaista täyspäiväistä läsnäoloa sekä erityisen paljon yhteen hiileen puhaltamista, eikä tiimin koko saa olla kovinkaan suuri.. XP:n hyviä puolia on testien laatiminen ennen muun koodin kirjoittamista sekä pariohjelmointi. Jälkimmäisen perusteleminen johdolle voi olla erittäinkin vaikeaa, mutta omien kokemusten perusteella tulokset ovat erinomaisia: vähemmän virheitä koodissa helpommin ylläpidettävää koodia laaditun koodinpätkän omistus vähintään kahdella kehittäjällä perinteisemmän yhden sijaan nuoremman ohjelmoijan nopeampi taitojen karttuminen. Pariohjelmoinnin huonoja puolia on henkilökemian löytäminen, jota ilman hommasta ei tule mitään, ja se, että kysymysten ja palautteen on oltava välitöntä. Jos esim. nuorempi ohjelmoija ei viitsi kysellä tai huomauttaa virheistä tarpeeksi ajoissa, ei pariohjelmoinnilla ole saavutettu käytännössä firman tai tuotteen kannalta mitään.
25 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 25(42) Lisäksi XP tähtää nimenomaan siihen, että asiakas saa mahdollisimman aikaisessa vaiheessa käyttöönsä ohjelman, jolla voi tehdä tuottavaa työtä. Kuten jo aiemmin todettiin, tuon seikan puitteissa XP sopii huomattavasti paremmin uuden ohjelmiston tuottamiseen kuin vanhan ylläpitoon. Kyllä XP:ssäkin tuotetaan määrittelyjä, mutta huomattavasti kevyemmässä muodossa kuin muissa perinteisemmissä malleissa. 7 Miksi käyttää XP:tä XP on yksi harvoista metodologioista, jotka ajavat tuottamaan korkealaatuista koodia, joka vastaa asiakkaan toiveita. XP luottaa vahvasti asiakaskommunikointiin koko kehitys prosessin ajan. Tämä metodologia kokoaa joukon yksilöitä yhtenäiseksi ja tehokkaaksi ryhmäksi. Projektin alusta-asti pidetyt päivittäiset 5-10 minuutin seisten tapahtuvat tapaamiset pitävät kaikki kehittäjät tietoisena projektin tavoitteesta. Nämä tapaamiset tarkoittavat myös, että jokainen kehittäjäpari tietää päivän tehtävät ja missä vaiheessa projekti on. Tällä tavalla suunnitteleminen innostaa ryhmiä tulemaan tehokkaammiksi ja suoriutumaan korkeammalla tasolla. Kun ryhmä ymmärtää, mihin se on menossa ja kuinka sinne päästään, on todennäköisempää, että tavoitteet saavutetaan. XP on myös yksi parhaista metodologioista laadun varmistamiseen. Tämä pääasiassa, koska testit ovat elinkaaren etupäässä. Testikäsikirjoitus on kirjoitettu ennen kuin moduulit on ohjelmoitu ja hyväksymistestauksen vaaditaan olevan virheetön ennen koodin hyväksymistä. XP:n vahva vaikutus testaamiseen tarjoaa alustan, joka mahdollistaa kehittäjien rakentaa sarjan testejä, joita voidaan käyttää tulevaisuudessa. Koska järjestelmä on suunniteltu käyttämään testejä tällä tavoin, uudet kehittäjät voivat luottavaisina muuttaa koodia moduulissa ilman rikkoutumisen pelkoa.
26 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 26(42) Viimeinen hyöty XP:ssä on asiakastyytyväisyys. Tämä metodologia mahdollistaa toimivan ohjelman nopeammin asiakkaalle kuin muilla tekniikoilla. Kun tarjotaan kehittyvää järjestelmää, asiakkaalla on mahdollisuus muuttaa tärkeysjärjestystä ja toimintaa. Tämä mahdollistaa ohjelmiston kehityksen siinä vaiheessa, missä se tarjoaa suurimman hyödyn kaupankäynnin kannalta. Toisilla metodologioilla menee kauemmin toteuttamiseen ja siksi on suurempi riski hukata liiketoiminta mahdollisuuksia. 8 Pariohjelmointi Pariohjelmointi on ohjelmoinnin tyyli, jossa kaksi ohjelmoijaa työskentelee yhdessä saman tietokoneen ääressä, jatkuvasti kehitellen suunnitelmaa, algoritmejä tai ohjelmakoodia. Suurin osa ohjelmoijista on kuitenkin jo pitkän aikaa työskennellyt yksin ja yleensä vastustavat siirtymistä pariohjelmointiin. Kuva 8.1 kuvaa koodausvirheiden havaitsemista eri tekniikoiden avulla. KUVA 8.1 Eri menetelmien kustannukset virheiden havaitsemisissa.
27 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 27(42) Jaa kaikki Pariohjelmoinnissa kaksi ohjelmoijaa on määrätty yhdessä kehittämään yhtä artefaktia (suunnitelma, algoritmi tai ohjelmakoodi ). Kaksi ohjelmoijaa on kuin yhtenäinen organismi, joka työskentelee kuin yksi ajatus, vastuussa jokaisesta artefaktin osasta. Yksi henkilö kirjoittaa tai lukee, toisen jatkuvasti tarkistaessa työtä. Molemmat ovat yhtä osallisina prosessissa. Ei ole hyväksyttävää sanoa asioita kuten, "Sinä teit virheen suunnitelmaasi." tai "Tämä virhe oli sinun syytäsi." vaan, "Me teimme virheen suunnitelmassa." tai, vielä paremmin, "Saimme juuri testin läpi ilman virheitä!". Molemmat omistavat kaiken. Pelaa reilusti Pariohjelmoinnissa toinen henkilö "ajaa (hallitsee näppäimistöä) sillä välin kun toinen tarkistaa työtä. Jopa silloin kun toinen ohjelmoija on huomattavasti kokeneempi kuin toinen, on tärkeää vuorotella ajovuoroja. Henkilö joka ei ole ajovuorossa ei ole passiivinen tarkastaja, vaan on aina aktiivinen. "Vain toisen ohjelmoimisen katseleminen on suunnilleen yhtä kiinnostavaa, kuin katsoa ruohon kuolevan aavikolla." Tarkastajan päärooli on suorittaa jatkuvaa analyysiä, suunnittelua ja tarkistamista. Keskity olennaiseen Pidä huoli että pari on keskittynyt ja oikeassa asiassa. Epäilemättä, pariohjelmoinnin hyöty on että kumpikaan epätodennäköisesti "haaskaa aikaa" lukemalla sähköpostia, selailemalla internetiä - koska pari odottaa jatkuvaa panosta ja palautetta. Lisäksi, kumpikin olettaa toisen seuraavan määrättyjä ohjelmointikäytäntöjä.
28 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 28(42) Pistä tavarat takaisin paikalleen Mieli on monimutkainen asia. Jos ajattelet jotain tarpeeksi, aivot ajattelevat että se on totta. Jos kerrot itsellesi jotain negatiivista, esimerkiksi "Minä olen huono ohjelmoija." pian aivosi uskovat sinua. Tarkastellut pariohjelmoijat näyttävät, että on todella vaikeata työskennellä sellaisen henkilön kanssa, joilla on huono itsetunto ohjelmointitaidoistaan. Tällaisten ohjelmoijien tulisi katsoa pariohjelmointia menetelmänä kehittää taitojaan jatkuvasti katsellen ja palautetta saaden pariltaan. Yhdessä pari voi ratkaista ongelmia, joita he eivät saisi ratkaistua yksin ja voivat auttaa parantamaan toistensa taitoja. Kukaan meistä, ei väliä kuinka lahjakas, ei ole täydentämätön ja toisten palautteen yläpuolella. Siivoa jälkesi Pariohjelmointi siteeraa että on uskomatonta, kuinka moni selvä mutta huomaamaton virhe tulee löydetyksi toisen ohjelmoijan katsellessa sinun olkapääsi ylitse. Lisäksi, nämä virheet voidaan poistaa ilman luonnollista vihamielisyytä joka saattaisi kehittyä normaalissa tarkastuskokouksessa. Älä ota asioita liian vakavasti Pariohjelmointi tutkimuksen perusteella, liiallinen itsetunto paljastaa itsensä kahdella tapaa, molemmat vahingoittaen yhteistä suhdetta. Ensimmäisenä, On "Kuten minä sanon tai ei ollenkaan" asenne, joka voi estää ohjelmoijaa ajattelemasta muita ideoita. Toisena, liiallinen itsetunto voi johtaa ohjelmoijan puolustelemiseen saadessaan palautetta. Käänteisesti, henkilö joka aina samaa mieltä parinsa kanssa, jottei loisi liikaa jännitettä, myös minimoivat yhdessä työskentelyn hyödyt. On olemassa hieno tasapaino liian vahvan on ja liian heikon itsetunnon välillä. Tehokas pariohjelmoija hioo tämän tasapainon perehdytysvaiheessa. Ward Cunnigham, eräs XP:n löytäjistä ja kokenut pariohjelmoija, raportoi perehtymisvaiheen kestävän pari tuntia tai päivää riippuen yksilöistä, työn kuvasta ja heidän kokemuksestaan pariohjelmoinnista.
29 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 29(42) Työympäristö Ohjelmoijien täytyy saada istua kylki kyljessä ja ohjelmoida, samaan aikaan katsellen näyttöä ja jakaen näppäimistön ja hiiren. Tehokas kommunikointi, omassa työparissa ja toisten työparien kanssa on etusijalla. Ilman vaivaa, ohjelmoijien tulee nähdä toisensa, kysyä toisiltaan kysymyksiä ja tehdä päätökset artefaktia koskevista asioista. Ohjelmoijat hyötyvät vahingossa kuulemistaan keskusteluista, joilla voi olla tärkeä osa omaa työtä. Poista skeptisyys kun aloitat Moni ohjelmoija menee heidän ensimmäiseen pariohjelmointi työtehtävään skeptisenä yhteistyön hyödyistä ohjelmoinnissa, odottaen että ei hyödy tai nauti kokemuksesta. Pariohjelmointi suhde voidaan aloittaa sillä, että toinen ohjelmoija kysyy toista istumaan ja antamaan hänelle apua - ja jatketaan siitä. Kun suhde saadaan kuntoon toinen voisi sanoa, "Se meni hyvin. Minulla on nyt vähän aikaa. Onko sinulla ongelmia joissa voin auttaa?" Kokemus on näyttänyt että on vain yksi ohjelmoija, positiivinen ja kokenut pariohjelmoinnissa, voi johtaa parin tehokkaaseen yhteistyöhön. Tehokas pari on joukko ihmisiä niin tiukasti sidottuna, että kokonaisuus on suurempi kuin osien summa. Tällaisen parin tuotos on suurempi kuin se että, he työskentelisivät yksinään. Kun pari on sitoutunut niin tiukasti yhteen, onnistumisen mahdollisuus nousee dramaattisesti. Parista tulee lähes pysäyttämätön. Neuvo käynnissä oleville ja tuleville pariohjelmoijille: Poista skeptisyys, kehitä toive onnistumisesta ja tervehti pariasi sanomalla "Huuda minulle!". Tämä on ennenkuulumaton mahdollisuus emille kahdelle loistaa yhtenä.
30 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 30(42) Huuhdo Väistämättä, pariohjelmoijat joutuvat työskentelemään yksinään. XP:n kokemuksen perusteella suurin osa virheistä voidaan jäljittää takaisin aikaan jolloin ohjelmoijat työskentelivät yksinään. Päätös huuhtoa tai tarkastaa yksin tehty työ voi tehdä pariohjelmoijat, tai päätöstä voidaan kannustaa. Kuitenkin, on tärkeää että kaikki itsenäisesti tehty ohjelmointi tarkastetaan. Säännölliset tauot Koska pariohjelmointi pitää molemmat jatkuvasti keskittyneenä ja oikeassa asiassa, se voi olla todella voimakasta ja henkisesti raskasta. Säännöllisesti pidettävät tauot ovat tärkeä osa kestävyyden ylläpitämiseksi seuraavaa tuotteliasta pariohjelmointi erää varten. Tauon aikana, on parasta unohtaa meneillä oleva työtehtävä ja palata sen kimppuun tuoreilla ajatuksilla kun aloitetaan. Toivottuja aktiviteetteja: Tarkista sähköposti, tee puhelinsoitto, selaa internetiä tai pidä kahvitauko. Tauot pariohjelmoinnista Ei ole pakollista työskennellä erikseen joka iltapäivä. Mutta, 50 % tarkkailluista ohjelmoijista, on hyväksyttävää työskennellä % ajasta yksin. Moni pitää raskaista, kovaa ajattelemista tarvitsevista ongelmista ja loogisesta ajattelusta yksin. Moni on samaa mieltä että, yksinkertainen, hyvin määritelty koodi on tehokkaammin tehty yksittäiseltä ohjelmoijalta ja sen jälkeen tarkistettu parilla. Ei kilpailua Pariohjelmoinnissa kahdesta ohjelmoijasta tulee yksi. Näiden kahden välillä ei saa olla kilpailua; molempien tulee työskennellä yhteisen tarkoituksen hyväksi, aivan kuten artefakti olisi kehitetty yhden hyvän mielen ansiosta. Syy ongelmista tai virheitä ei saisi koskaan kohdistua pariin. Parin tulee voida luottaa toisen arvioon ja toistensa uskollisuuteen ryhmässä.
31 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 31(42) 9 Pariohjelmointi kokeilu Testin tarkoituksena on testata pariohjelmoinnin hyötyä ohjelmistojen tuotannossa. Testiryhmänä toimi ryhmä Qt ohjelmointi kielen parissa työskenteleviä ohjelmoijia, joiden kehityskohteena oli toteuttaa uusia ominaisuuksia QT pohjaiseen sormella käytettävään internet selaimeen MAEMO ympäristössä. Tehtävänä oli toteuttaa seuraavanlaisia ominaisuuksia mm. Sivuhistoria, kirjainmerkit, RSS tuki ja tuki evästeille. Ryhmään kuului projektipäällikkö sekä 5 ohjelmoijaa. Pariohjelmointi metodologian testaamiseen oli varattu kahden viikon mittainen aika, josta pariohjelmointiin käytettäisiin kaikki projektille varattu aika 900 työtuntia. Pariohjelmointikokeilu aloitettiin kokouksella, jossa kerrottiin hieman XP:stä sekä itse pariohjelmointimetodologiasta ja sen tavoitteista. Kokouksessa suunniteltiin myös tulevan kahden viikon työtehtävät, jotka olivat ohjelmointipainotteisia johtuen tulevasta kokeilusta. Samassa tilaisuudessa määrättiin alustavat työparit pariohjelmointiin. Kokeilun aikana vaihdeltiin työpareja säännöllisesti erilaisten pariohjelmointi kokemusten aikaansaamiseksi. Ensimmäisenä pariohjelmointipäivänä pariohjelmointi ei tuottanut juurikaan lisäarvoa, sillä kyseessä oli vain toisen henkilöistä aiemmin työstämä koodi, johon ei tehty valtavan suuria muutoksia. Lisäksi ensimmäinen päivä sisälsi erilaisten ratkaisujen tehokkuuden kokeilemista erillisellä laitteella. Tähän ei pariohjelmoiti kovin hyvin soveltunut. Ohjelmointiosio selkeästi nopeutui uutta tehtäessä ja virhettä etsittäessä, mutta monesti muutokset olivat pieniä, missä pariohjelmoinnista ei ollut paljoa hyötyä. Ohjelmistokoodiin tutustumisen jälkeen huomattiin suuri suunnitteluvirhe, joka löydettiin pariohjelmoinnin ansiosta. Jo pelkästään tämän virheen löytymisestä saatu hyöty ohjelmiston kehitykselle oli huomattava.
32 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 32(42) Heti aluksi huomattiin, että samalla tasolla olevan henkilön kanssa kommunikointi on huomattavasti helpompaa. On yleisesti tiedossa, että on helpompaa kommunikoida omalla tasolla olevan henkilön kanssa, kuin esimies tasolla tai vanhemmalle / kokeneemmalle työntekijälle. Pienet pariohjelmointiprojektit ovat helpompia toteuttaa samantasoisilla työpareilla, jotka ovat jo ennestään toisille tuttuja, jolloin saadaan henkilökemiat ja koodaustavat loksahtamaan paikoilleen. Ensimmäisen viikon aikana jonkin verran hyötyä saatiin siitä, että moduulin tehokkuutta optimoitiin mobiililaitetta varten ja tähän saatiin monia ideoita yhdessä miettimällä. Itse pariohjelmointi toimi yllättävän hyvin, kun ottaa huomioon, että tähäs asti kaikki olivat työskennelleet yksin. Toinen kokeilu viikko sisälsi vähemmän tukimista ja optimointia. Painopiste oli ohjelmakoodin tuottamisessa. Työparit pääsivät kehittämään uusia ominaisuuksia järjestelmään täydellä teholla. Pariohjelmointi menetelmä paljasti parhaat puolensa suurissa ja monimutkaisissa ohjelmistokoodeissa, joita on hankala kehittää ja ylläpitää perinteisillä menetelmillä. 10 Kysely Lähetin jokaiselle kokeilussa mukana olevalle henkilölle kyselyn pariohjelmoinnista molempien kokeilu viikkojen lopuksi (liite 1). Kysely oli pariohjelmointi painotteinen ja sisälsi seuraavanlaisia kysymyksiä: pariohjelmointiin käytetty aika päivässä pariohjelmoinnin tehokkuus asteikolla 1-5 pariohjelmoinnin mielekkyys asteikolla 1-5 pariohjelmoinnin tehokkuus toteutusvaiheessa 1-5 kokemasi hyödyt pariohjelmoinnista? kokemasi haitat pariohjelmmoinista?
33 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 33(42) 11 Tulokset Palautteen paperilla sain neljältä henkilöltä (liite 2). Projektipäällikön ja kokeneen ohjelmistokehittäjän kanssa palaute saatiiin lopussa pidettävällä kokouksella, jossa keskusteltiin pariohjelmointi kokeilusta ja sen onnistumisesta. Ensimmäisen työpäivän jälkeen saatu palaute oli suurimmalta osalta negatiivista. Tämän aiheutti siirtyminen normaalista ohjelmoinnista pariohjelmoinnin pariin. Kommentteja olivat, työt eivät onnistu kun, joku hengittää niskaan jatkuvasti ja huomauttelee, miten pitäisi ongelma korjata. Tämä tulos oli odotettavissa, koska kaikki olivat tähän mennessä ohjelmoineet omassa rauhassa ilman, että kukaan tulee neuvomaan, miten asia pitäisi tehdä. Ensimmäisen viikon jälkeen negatiiviset palautteet olivat kääntyneet päinvastaisiksi. Nyt suurin osa palautteesta oli erittäin positiivista. Suurimpia positiivisia asioita olivat: selvä ei työhön liittyvien asioiden väheneminen (sähköpostin lukeminen ja internetin selaaminen) ohjelmakoodin selvä parantuminen (rivien väheneminen, ohjelmakoodin virheiden väheneminen ja ongelmien ratkaisu ). Näiden lisäksi positiivisena koettiin kokenut / kokematon parin kokemattoman osapuolen selvä kompetenssin lisääntyminen ohjelmoinnista. Huonona puolena olivat henkilökemiat, palautteen antaminen työparille, sekä työparin osien liian nopea vaihtuminen, mikä katkaisi hyvin vauhtiin päässen ohjelmoinnin. Tulokset toisen viikon jälkeen olivat samantapaiset kuin ensimmäisen viikon jälkeen. Positiivisessa mielessä muutoksia tuli kommunikointiin ja palautteen antamiseen, jotka parantuivat huomattavasti. Huonona puolena koettiin testin lyhyt kesto, koska juuri kun päästiin hyvään vauhtiin ja pariohjelmointi alkoi sujua, palattiin normaaliin yhden hengen ohjelmointiin.
34 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 34(42) Palaute, joka saatiin pariohjelmointi kokeilun aikana: Positiiviset: Pikkuvirheet havaitaan usein välittömästi Yhdessä miettiminen tuottaa enemmän ideoita ja älykkäitä ratkaisuja Suunnittelu nopeutui myös lisääntyneenä luottona valittuun ratkaisuun, kun pystyi keskustelemaan valitusta ratkaisusta Koodiin aiemmin perehtymätön saa hyvän perehdytyksen. Negatiiviset: Työtunteja kertyy paljon, tosin yllämainitut hyödyt saattavat lieventää tätä haittapuolta myöhemmässä vaiheessa (vähemmän korjattavia virheitä yms). Saattaa mennä joskus turhaksi jutusteluksi. Vaikea aloittaa, jos kyse on koodista, jota vain toinen henkilöistä on aiemmin työstänyt. Kompetenssin kasvattaminen pariohjelmoinnin avulla on hyväksi havaittu tapa. Jatkuva keskustelu ja tutkiminen kasvattavat molempien osapuolien kompetenssia kyseiseltä alueelta. Kokonaisuudessa testi oli erittäin onnistunut ja antoi paljon lisätietoa pariohjelmoinnin hyödyistä ja haitoista ohjelmistokehityksen näkökannalta. 12 Yhteenveto Insinöörityön tavoitteena oli tutkia extreme programming metodin pariohjelmointi menetelmää ja sen soveltuvuutta ohjelmistojen tuotantoon. Tavoitteena oli antaa lukijalle yleiskuvaus XP-metodista ja laajempi kuvaus pariohjelmointi menetelmästä, sen periaatteista ja soveltuvuudesta ohjelmistojen-kehitykseen.
35 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 35(42) Mielestäni työ onnistui tavoitteessaan hyvin. Pariohjelmointi kokeilu saatiin testattua sopivan kokoisella porukalla ja aikaakin oli varattuna riittävästi kokeilulle. Itse kokeilusta saatu palaute ja pariohjelmoinnin toimiminen ohjelmistojen kehityksessä oli positiivista. Positiivisiksi asioiksi koettiin: Selvä ei työhön liittyvien asioiden väheneminen (sähköpostin lukeneminen ja internetin selaaminen) ohjelmakoodin selvä parantuminen (rivien väheneminen, ohjelmakoodin virheiden väheneminen ja ongelmien ratkaisu). Negatiivisina puolina priohjelmoinnissa oli: Työtunteja kertyy paljon, tosin yllämainitut hyödyt saattavat lieventää tätä haittapuolta myöhemmässä vaiheessa (vähemmän korjattavia virheitä yms). Saattaa mennä joskus turhaksi jutusteluksi. Vaikea aloittaa, jos kyse on koodista, jota vain toinen henkilöistä on aiemmin työstänyt. Toivottavasti tämä tutkintotyö auttaa ketteristä menetelmistä kiinnostuneita henkilöitä huomaamaan XP:n ja etenkin pariohjelmoinnin hyvät puolet ohjelmistokehityksessä. Pariohjelmoinnin käyttöä olisi voinut vielä tutkia paritestauksessa ja opetuksessa, mutta työ täytyi rajata tarkkaan, jotta työn pituus ja aihealue saatiin järkeviin mittasuhteisiin. Työn toinen tarkoitus oli syventää tietämystäni XP:n teoriasta ja periaatteista. Myös tässä tavoitteessa onnistuin kuten pitikin. Prosessin aikana tuli esille monia asioita, joita ei aiemmissa opinnoissa tai työtehtävissä ole tullut vastaan.
36 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ 36(42) Lähteet Painetut lähteet Sähköiset lähteet 1. Beck, Kent, Extreme programming explained embrace change, second edition. Addison-Wesley Professional, s. 2. XP programming [www-sivu]. [viitattu ] Saatavissa: 3. XP programming [www-sivu]. [viitattu ] Saatavissa: m 4. Koodausvirheiden kustannukset [www-sivu]. [viitattu ] Saatavissa: 5. Palaute XP:ssä [www-sivu]. [viitattu ] Saatavissa:
37 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ LIITE LIITE 1 Pariohjelmointi kyselylomake Nimi: Kuinka paljon käytit päivässä aikaa pariohjelmointiin? Arvioi pariohjelmoinnin tekokkuutta asteikolla 1-5 (1=ei hyötyä,..,5=erittäin hyödyllinen) Arvosana pariohjemoinnin mielekkyydestä asteikolla 1-5 Arvio pariohjelmoinnin tehokkuudesta ohjelmistoa suunnitellessa asteikolla 1-5 Arvio pariohjelmoinnin tehokkuudesta toteutusvaiheessa asteikolla 1-5 Käyttäisitkö pariohjelmointia vapaaehtoisesti? Kokemasi hyödyt pariohjelmoinnista Kokemasi haitat pariohjelmoinnista Vapaata palautetta pariohjelmoinnista
38 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ LIITE LIITE 2 Pariohjelmointi kyselyn tulokset Kuinka paljon käytit päivässä aikaa pariohjelmointiin? 7 tuntia Arvioi pariohjelmoinnin tekokkuutta asteikolla 1-5 (1=ei hyötyä,..,5=erittäin hyödyllinen) 3 Arvosana pariohjemoinnin mielekkyydestä asteikolla Arvio pariohjelmoinnin tehokkuudesta ohjelmistoa suunnitellessa asteikolla Arvio pariohjelmoinnin tehokkuudesta toteutusvaiheessa asteikolla Käyttäisitkö pariohjelmointia vapaaehtoisesti? Kyllä Kokemasi hyödyt pariohjelmoinnista: Ei rönsyilyä (postien lukemista, netin selaamista jne) Virheiden löytäminen Koodin "puhdistuminen" kun kaveri nalkuttaa vieressä koodin laadusta: kaikenkarvaiset häkit vähenevät Ongelmia ei kierretä, ne ratkaistaan Koodin laatu parempaa (ehkä), häkit ja virheet vähenee Ajankäyttö tehokkaampaa Tiedonetsintä ja ongelmien ratkaisu tehokkaampaa kun kaksi ihmistä miettii Kokemasi haitat pariohjelmoinnista: Rivejä tulee vähemmän Kaveri hermostuu tuijotuksesta Palautteen antaminen vaikeaa Hermot menee, kun tekisi itse mieli koodata Kommunikaatio välillä vaikeaa
39 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ LIITE Koodaus-"flown" rikkominen liian lyhyillä vaihdoilla :) Toisen koodauksen katsominen välillä väsyttävää, kun käsillä on jonkin peruskoodin Vapaata palautetta pariohjelmoinnista: Vaatii aikaa ja asennoitumista, että tästä olisi jotain hyötyä
40 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ LIITE Kuinka paljon käytit päivässä aikaa pariohjelmointiin? 5,5 tuntia Arvioi pariohjelmoinnin tekokkuutta asteikolla 1-5 (1=ei hyötyä,..,5=erittäin hyödyllinen) 2 Arvosana pariohjemoinnin mielekkyydestä asteikolla Arvio pariohjelmoinnin tehokkuudesta ohjelmistoa suunnitellessa asteikolla Arvio pariohjelmoinnin tehokkuudesta toteutusvaiheessa asteikolla Käyttäisitkö pariohjelmointia vapaaehtoisesti? en Kokemasi hyödyt pariohjelmoinnista: Kirjoitusvirheet ja ajatusvirheet tippuivat selkeästi, kun oli vierellä kaveri puuttumassa niihin. Tämä nopeutti ohjelman kirjoittamista selkeästi. Suunnittelu nopeutui myös lisääntyneenä luottona valittuun ratkaisuun, kun pystyi keskustelemaan valitusta ratkaisusta. Pariohjelmointi toimi myös hyvänä tapana tutustuttaa ohjelmaan, koska parini ei ollut toteutusta aikaisemmin nähnyt. Kokemasi haitat pariohjelmoinnista: Ohjelman tekemisen ollessa erilaisten kokeilujen tekemistä ja runsasta kääntämistä, varsinkin erilliselle laitteelle kääntämistä, menee suuri aika hukkaan odotellessa ja ihmetellessä. Vapaata palautetta pariohjelmoinnista: Tämä palaute syntyi ensimmäisen päivän kokeilusta Ohjelmointi sisälsi erilaisten ratkaisujen tehokkuuden kokeilemista erillisellä laitteella. Tähän ei pariohjelmoiti kovin hyvin soveltunut. Ohjelmointi osio selkeästi nopeutui uutta tehtäessä ja virhettä etsittäessä, mutta monesti muutokset olivat pieniä, missä pariohjelmoinnista ei ollut paljoa hyötyä. Parini oli myös hankala lähteä itse ohjelmoimaan, koska tuli mukaan tuntemattomaan toteutukseen.
41 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ LIITE Kuinka paljon käytit päivässä aikaa pariohjelmointiin? 7 tuntia Arvioi pariohjelmoinnin tekokkuutta asteikolla 1-5 (1=ei hyötyä,..,5=erittäin hyödyllinen) 2 Arvosana pariohjemoinnin mielekkyydestä asteikolla Arvio pariohjelmoinnin tehokkuudesta ohjelmistoa suunnitellessa asteikolla Arvio pariohjelmoinnin tehokkuudesta toteutusvaiheessa asteikolla Käyttäisitkö pariohjelmointia vapaaehtoisesti? Voisin käyttää, mikäli tilanne on sopiva, esim. vastaavanlaisissa tilanteissa olisi pariohjelmoinnilla saatu aikaisemmin hyviä tuloksia. Kokemasi hyödyt pariohjelmoinnista: Pikkuvirheet havaitaan usein välittömästi Yhdessä miettiminen saattaa tuottaa enemmän ideoita ja älykkäitä ratkaisuja Kokemasi haitat pariohjelmoinnista: Työtunteja kertyy paljon, tosin yllämainitut hyödyt saattavat lieventää tätä haittapuolta myöhemmässä vaiheessa (vähemmän korjattavia virheitä yms). Saattaa mennä joskus turhaksi jutusteluksi. Vaikea aloittaa, jos kyse on koodista, jota vain toinen henkilöistä on aiemmin työstänyt. Toisaalta hyvänä puolena tässä on se, että koodiin aiemmin perehtymätön saa mahdollisesti hyvän perehdytyksen. Tämä vie kuitenkin molempien aikaa. Vapaata palautetta pariohjelmoinnista: Ensimmäisenä pariohjelmointipäivänä pariohjelmointi ei tuottanut juurikaan lisäarvoa, sillä kyseessä oli vain toisen henkilöistä aiemmin työstämä koodi, johon ei tehty valtavan suuria muutoksia. Ensimmäisen viikon aikana jonkin verran hyötyä saatiin siitä, että moduulin tehokkuutta optimoitiin mobiililaitetta varten ja tähän saatiin monia ideoita yhdessä miettimällä.
42 TAMPEREEN AMMATTIKORKEAKOULU TUTKINTOTYÖ LIITE Kuinka paljon käytit päivässä aikaa pariohjelmointiin? 6 tuntia Arvioi pariohjelmoinnin tekokkuutta asteikolla 1-5 (1=ei hyötyä,..,5=erittäin hyödyllinen) 3 Arvosana pariohjemoinnin mielekkyydestä asteikolla Arvio pariohjelmoinnin tehokkuudesta ohjelmistoa suunnitellessa asteikolla Arvio pariohjelmoinnin tehokkuudesta toteutusvaiheessa asteikolla Käyttäisitkö pariohjelmointia vapaaehtoisesti? En Kokemasi hyödyt pariohjelmoinnista: Virheet löytyivät paremmin. Löytää bugit ja epäloogisuudet paremmin Kokemasi haitat pariohjelmoinnista: Hommiin menee kahden ihmisen työtunnit yhden sijaan, koska koodausnopeus ei ainakaan kasva. Vapaata palautetta pariohjelmoinnista: Koodausnopeus pikemminkin hidastuu pariohjelmoitaessa, koska tulee paineita kun toinen vahtii selän takana, eikä tällöin saa miettiä omassa rauhassa eikä saa typottaa.
SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus
SEPA päiväkirja BetaTeam Juho Mäkinen, 57796V, jvmakine@cc.hut.fi Jari Leppä, 42710V, jleppa@cc.hut.fi Versio Pvm Tekijä Kuvaus 0.1 10.11.2005 Juho Mäkinen Johdanto 1. 0.2 11.11.2005 J.Mäkinen, Käytäntöön
Alkukartoitus Opiskeluvalmiudet
Alkukartoitus Opiskeluvalmiudet Päivämäärä.. Oppilaitos.. Nimi.. Tehtävä 1 Millainen kielenoppija sinä olet? Merkitse rastilla (x) lauseet, jotka kertovat sinun tyylistäsi oppia ja käyttää kieltä. 1. Muistan
Tutkittua tietoa. Tutkittua tietoa 1
Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.
TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)
TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu
VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D
VERSIONHALLINTA PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D Versio Päivä Tekijä Kuvaus 0.1 26.10.2005 Kaarlo Lahtela Ensimmäinen versio 0.2 10.12.2006 Lauri Kiiski Suomennettu 3 (8 ) SISÄLLYS
Ohjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
Test-Driven Development
Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole
Onnistunut ohjelmistoprojekti
Onnistunut ohjelmistoprojekti 2.12.2008 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt ja työkalut Tulevaisuuden
Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/
Koodaamme uutta todellisuutta FM Maarit Savolainen 19.1.2017 https://blog.edu.turku.fi/matikkaajakoodausta/ Mitä on koodaaminen? Koodaus on puhetta tietokoneille. Koodaus on käskyjen antamista tietokoneelle.
Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008
Verkkopokerijärjestelmä Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008 Projektiryhmä Samuli Aalto-Setälä Jukka Kekälainen Jarno Kyykkä Mika Mielonen Mårten Smeds Otto Waltari Ohjaaja
Sairastuneiden ja omaisten kanssa keskusteleminen
Infosheet 38 Sairastuneiden ja omaisten kanssa keskusteleminen Ymmärrettävä tieto Antamalla ihmisille tilaisuuden esittää kysymyksensä voit räätälöidä heidän tarpeisiinsa sopivaa tietoa. Jokaiseen keskusteluun
Test-Driven Development
Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia
Automaattinen yksikkötestaus
Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä
Muistitko soittaa asiakkaallesi?
webcrm Finland 1 webcrm Finland Muistitko soittaa asiakkaallesi? Riippumatta siitä, oletko myyntipäällikkö, markkinoija vai työskenteletkö HR tehtävissä, voit käyttää CRM ratkaisua erilaisiin tarpeisiin.
@Tampereen Testauspäivät (2012-06)
@Tampereen Testauspäivät (2012-06) Testausodotukset räätälöityjen järjestelmien projekteissa Maaret Pyhäjärvi, testausasiantuntija Twitter: maaretp Testausvastaava @ Granlund Oy Yrittäjä
HYVINVOIVA SIHTEERI. Haasta itsesi huipulle seminaari Tapio Koskimaa Työhyvinvointipäällikkö
HYVINVOIVA SIHTEERI Haasta itsesi huipulle seminaari 23.9.2016 Tapio Koskimaa Työhyvinvointipäällikkö SIHTEERI 2 26.9.2016 SIHTEERI ENNEN Kun esimies tuli aamulla töihin, hänen sihteerinsä oli ovella vastassa
YRITTÄJIEN HYVINVOINTI
YRITTÄJIEN HYVINVOINTI Yrittäjien työhyvinvointikysely 2013 tulokset 4.9.2013 Kati Huoponen, Mari Merilampi ja Jouni Vatanen TAUSTAA Kysely lähetettiin yli 10 000:lle Ilmarisen yrittäjäasiakkaalle Kyselyyn
Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori
Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita
Lyhyt johdatus ketterään testaukseen
TTY:n Testauspäivät, Tampere 15.8.2006 Lyhyt johdatus ketterään testaukseen eli Ketterän ohjelmistokehityksen laatukäytäntöjä Juha Itkonen SoberIT Teknillinen korkeakoulu Juha.Itkonen@tkk.fi Ketterä ohjelmistokehitys
Millainen on onnistunut ICT-projekti?
Millainen on onnistunut ICT-projekti? Ohjelmistotuotannon lehtori Tero Tensu Ahtee Ohjelmistotekniikan laitoksella 1990- Projektityö-kurssilla 1991- pesunkestävä yliopistohampuusi ei päivääkään oikeissa
Ohjelmointi 1. Kumppanit
Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5
Hakemus Suosituskirje
- Aloitus Hyvä Herra, Virallinen, vastaanottaja mies, nimi tuntematon Hyvä Rouva Virallinen, vastaanottaja nainen, nimi tuntematon Hyvä Herra, Hyvä Rouva Hyvä Herra / Rouva Hyvä Herra / Rouva Virallinen,
Ohjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
Kevään 2010 fysiikan valtakunnallinen koe
120 Kevään 2010 fysiikan valtakunnallinen koe 107 114 100 87 93 Oppilasmäärä 80 60 40 20 0 3 5 7 14 20 30 20 30 36 33 56 39 67 48 69 77 76 56 65 35 25 10 9,75 9,5 9,25 9 8,75 8,5 8,25 8 7,75 7,5 7,25 7
Onnistunut ohjelmistoprojekti
Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt
MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy
MITÄ ON GEMBA-WALK? Janne Metsolahti Työnjohtaja YIT Infra Oy janne.metsolahti@yit.fi MITÄ ON GEMBA-WALK? Sana gemba tulee japanin kielestä ja tarkoittaa todellista paikkaa, paikkaa jossa arvo tuotetaan
Toteutusvaihe T3 Digi-tv: Edistymisraportti
Toteutusvaihe T3 Digi-tv: Edistymisraportti Sisällysluettelo 1. Projektin tila...3 Dtv: Work done per Person (current phase)...3 Dtv: Work done per Worktype (current phase)...3 2. Suoritetut tehtävät...4
Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
Työpaikkaosaamisen kehittämisen malli monikulttuurisille työpaikoille
Työpaikkaosaamisen kehittämisen malli monikulttuurisille työpaikoille Mitä on osaaminen ja osaamisen kehittäminen työssä? Työpaikoilla eletään jatkuvassa muutoksessa. Asiakkaiden tarpeet muuttuvat ja työpaikalla
Opettajien ja oppilaiden kokemuksia projektityöskentelystä
Opettajien ja oppilaiden kokemuksia projektityöskentelystä Oppilaiden kokemuksia projektityöskentelystä matematiikassa hankkeen eri vaiheissa Aineistoa on kerätty matematiikan projektityöskentelystä kolmessa
Verkosta virtaa Vertaisopastajan opas. Vinkkejä vapaaehtoistyöhön laitteiden ja netin käytön vertaisopastajana
Verkosta virtaa Vertaisopastajan opas Vinkkejä vapaaehtoistyöhön laitteiden ja netin käytön vertaisopastajana Tervetuloa vertaisopastajaksi! Verkosta virtaa -toiminnan vertaisopastajaksi ovat tervetulleita
Menetelmäraportti - Konfiguraationhallinta
Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1
Millainen maailmani pitäisi olla?
Millainen maailmani pitäisi olla? Luomme itsellemme huomaamattamme paineita keräämällä mieleen asioita joiden pitäisi olla toisin kuin ne ovat. Tällä aiheutamme itsellemme paitsi tyytymättömyyttä mutta
Eväitä yhteistoimintaan. Kari Valtanen Lastenpsykiatri, VE-perheterapeutti Lapin Perheklinikka Oy
Eväitä yhteistoimintaan Kari Valtanen Lastenpsykiatri, VE-perheterapeutti Lapin Perheklinikka Oy 3.10.2008 Modernistinen haave Arvovapaa, objektiivinen tieto - luonnonlaki Tarkkailla,tutkia ja löytää syy-seuraussuhteet
Tulevaisuuden älykkäät oppimisympäristöt LessonApp - nopea kokeilu Tampereen ammattikorkeakoulussa
Tulevaisuuden älykkäät oppimisympäristöt LessonApp - nopea kokeilu Tampereen ammattikorkeakoulussa Kokeilun kuvaus Kokeilu alkoi TAMKissa 4.4.2019 pidetyllä työpajalla. Osallistujia oli TAMKissa 11 ja
COTOOL dokumentaatio SEPA: Refaktorointi
Table of Contents Refaktorointi................................................................................ 1 1 Tehtävänanto.............................................................................
OPITAAN YHDESSÄ! OPAS MEILLE KAIKILLE OPPIMISESTA TYÖELÄMÄSSÄ. Päivitetty 2017
70-20-10 - OPITAAN YHDESSÄ! OPAS MEILLE KAIKILLE OPPIMISESTA TYÖELÄMÄSSÄ Päivitetty 2017 O. Ala-Nissilä, T. Kauma, J. Kröger, T. Leppänen, M. Nissén-Feldt, E. Penttilä, S. Raatikainen, I. Sankkila, L.
Juttutuokio Toimintatapa opettajan ja lapsen välisen vuorovaikutuksen tueksi
JUTTUTUOKIO Juttutuokio Toimintatapa opettajan ja lapsen välisen vuorovaikutuksen tueksi Opettajan ja oppilaan välinen suhde on oppimisen ja opettamisen perusta. Hyvin toimiva vuorovaikutussuhde kannustaa,
Nokian Palloseura. Joukkueiden yhtenäiset säännöt ja periaatteet
Nokian Palloseura Joukkueiden yhtenäiset säännöt ja periaatteet Mistä on kyse Jokainen seuran pelaaja ja toimihenkilö edustaa oman itsensä lisäksi mitä suuremmissa määrin seuraa ja ikäluokkaa. Pelaajilta
Neuvontapalvelut pilottityöpaja 4 / muistio
Neuvontapalvelut pilottityöpaja 4 / 24.4. muistio Parasta ja hyödyllistä hankkeessa on ollut Tapaamiset. On tutustuttu toisiimme ja eri kaupunkien matkailutiloihin. Muiden tekemisen peilaaminen omaan toimintaan
Mielekkäät työtehtävät houkuttelevat harjoittelijoita!
Mielekkäät työtehtävät houkuttelevat harjoittelijoita! Vuoden 2013 aikana 359 Turun yliopiston opiskelijaa suoritti yliopiston rahallisesti tukeman harjoittelun. Sekä harjoittelun suorittaneilta opiskelijoilta
Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen
Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit
Menetelmäraportti Ohjelmakoodin tarkastaminen
Menetelmäraportti Ohjelmakoodin tarkastaminen Sisällysluettelo 1. Johdanto...3 2. Menetelmän kuvaus...4 2.1. Tarkastusprosessi...4 2.1.1. Suunnittelu...4 2.1.2. Esittely...5 2.1.3. Valmistautuminen...5
Takuusäätiön osahanke Kysy rahasta -chat
Takuusäätiön osahanke Kysy rahasta -chat Nuoret ja raha Mun talous -hankkeen päätösseminaari ja Puhu rahasta messut Henri Hölttä, Takuusäätiö 6.9.2017 Takuusäätiö lyhyesti Velkalinja ja chat Talouspolkuhanke
5 asiaa, jotka sinun on hyvä tietää sinun aivoista
5 asiaa, jotka sinun on hyvä tietää sinun aivoista VILMA HEISKANEN 26.11.2014 Lähde: http://powerofpositivity.com/5-things-must-know-mind/ Puhu parin kanssa Lue parin kanssa aivoista Mitä ajattelet? Oletko
Pelirohkeus jalkapallossa yksilön ja joukkueen näkökulmasta. Mika Lehkosuo
Pelirohkeus jalkapallossa yksilön ja joukkueen näkökulmasta Mika Lehkosuo KIRJE PELAAJILLE Moi Pelaajat, Pelirohkeus on sana joka usein esiintyy, kun kuvataan meidän pelitapaamme ja ajatteluamme jalkapallon
Suomen avoimien tietojärjestelmien keskus COSS ry
Suomen avoimien tietojärjestelmien keskus COSS ry Avoimen ohjelmistoliiketoimintaverkoston ja -yhteistyön koordinoija Ilkka Lehtinen Matti Saastamoinen Avoimuus ja vapaus - Pieni tulipalo v. 1492 mahdollisti
Kuinka vammaisen henkilön päätöksentekoa voidaan tukea?
Kuinka vammaisen henkilön päätöksentekoa voidaan tukea? Maarit Mykkänen, Savon Vammaisasuntosäätiö Kehitysvammaliiton opintopäivät 2015 Tuetusti päätöksentekoon -projekti Projektin toiminta-aika: 2011-31.7.2015
Avoin lähdekoodi hankinnoissa Juha Yrjölä
Avoin lähdekoodi hankinnoissa 9.6.2016 Juha Yrjölä Mitä on avoin lähdekoodi? 1. Lähdekoodi tulee jakaa ohjelmiston mukana tai antaa saataville joko ilmaiseksi tai korkeintaan luovuttamiskulujen hinnalla.
Vertaispalaute. Vertaispalaute, /9
Vertaispalaute Vertaispalaute, 18.3.2014 1/9 Mistä on kyse? opiskelijat antavat palautetta toistensa töistä palaute ei vaikuta arvosanaan (palautteen antaminen voi vaikuttaa) opiskelija on työskennellyt
Ohjelmistotekniikka - Luento 2
Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit
Testaajan eettiset periaatteet
Testaajan eettiset periaatteet Eettiset periaatteet ovat nousseet esille monien ammattiryhmien toiminnan yhteydessä. Tämä kalvosarja esittelee 2010-luvun testaajan työssä sovellettavia eettisiä periaatteita.
Onnistunut SAP-projekti laadunvarmistuksen keinoin
Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.
Kilpailemaan valmentaminen - Huipputaidot Osa 3: Vireys- ja suoritustilan hallinta. Harjoite 15: Keskittyminen ja sen hallinta
Kilpailemaan valmentaminen - Huipputaidot Osa 3: Vireys- ja suoritustilan hallinta Harjoite 15: Keskittyminen ja sen hallinta Harjoitteen tavoitteet ja hyödyt Harjoitteen tavoitteena on varmistaa, että
Helka Pirinen. Esimies muutoksen johtajana
Helka Pirinen Esimies muutoksen johtajana Talentum Helsinki 2014 Copyright 2014 Talentum Media Oy ja Helka Pirinen Kansi: Ea Söderberg, Hapate Design Sisuksen ulkoasu: Sami Piskonen, Suunnittelutoimisto
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento
Uusi Sairaala-hanke on mittava muutosprosessi
Uusi Sairaala-hanke on mittava muutosprosessi M I K Ä O N TÄ R K E Ä Ä, KUN TO I M I N N A N M U U TO S V I E DÄ Ä N L Ä P I J O H TA M I S E N J A H E N K I LÖ S TÖ N O S A A M I S E N N Ä KÖ KU L M A
Apuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
SYSTEEMITYÖ. Tärkeitä sanoja
SYSTEEMITYÖ Tärkeitä sanoja SYSTEEMITYÖN TÄRKEITÄ SANOJA Laatu (itse tuotteessa ja sen tekemisessä) Dokumentaatio Riskienhallinta Vaatimustenhallinta Uudelleenkäytettävyys Versionhallinta 2 LAATU Parityönä:
Mistä on kyse ja mitä hyötyä ne tuovat?
Pilvipalvelut Mistä on kyse ja mitä hyötyä ne tuovat? Pilvipalvelut - Mistä on kyse ja mitä hyötyä ne tuovat? Suurin osa kaikista uusista it-sovelluksista ja -ohjelmistoista toteutetaan pilvipalveluna.
Tapahtuipa Testaajalle...
Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman
Rouhia Oy:n nopea kokeilu Lean Teaching Helsingin kouluissa Helsingin koulujen nopeiden kokeilujen ohjelma II, kevätlukukausi 2019
Julkinen loppuraportti 13.6.2019 Rouhia Oy:n nopea kokeilu Lean Teaching Helsingin kouluissa Helsingin koulujen nopeiden kokeilujen ohjelma II, kevätlukukausi 2019 Kokeilun tavoitteet Kokeilun tavoitteena
Oppilaiden motivaation ja kiinnostuksen lisääminen matematiikan opiskeluun ja harrastamiseen. Pekka Peura 28.01.2012
Oppilaiden motivaation ja kiinnostuksen lisääminen matematiikan opiskeluun ja harrastamiseen Pekka Peura 28.01.2012 MOTIVAATIOTA JA AKTIIVISUUTTA LISÄÄVÄN OPPIMISYMPÄRISTÖN ESITTELY (lisätietoja maot.fi)
Märsky 29.10.2012. Heikki Pajunen Novetos Oy. Luomme menestystarinoita yhdessä
Märsky 29.10.2012 Heikki Pajunen Novetos Oy Luomme menestystarinoita yhdessä Aamun ajatus By Positiivarit: Maanantai 29.10.2012 AAMUN AJATUS Elämä on 10-prosenttisesti sitä miten elää ja 90-prosenttisesti
E-kirjan kirjoittaminen
1 E-kirjan kirjoittaminen Ohjeet e-kirjan kirjoittamiseen Tämän ohjeistuksen tavoitteena on auttaa sinua luomaan yksinkertainen e-kirja (pdftiedosto) asiakkaallesi. Kirja näyttää hänelle kuinka hyvin ymmärrät
HARJOITTELUN ENNAKKOTEHTÄVÄ
HARJOITTELUN ENNAKKOTEHTÄVÄ --Raporttisi perehtymisestä harjoittelupaikkaasi-- Voit myös kerätä muuta tietoa harjoittelupaikastasi! ENNAKKOTETEHTÄVÄ: 1. Perehtyminen harjoittelupaikkaan 2. Organisaatio,
Johdanto 1. Projektille esiteltävä versio. Kokemukset ja muutokset 3. Projektille esiteltävä versio. Iteraatio 2., suunnitelma
SEPA päiväkirja BetaTeam Juho Mäkinen, 57796V, jvmakine@cc.hut.fi Jari Leppä, 42710V, jleppa@cc.hut.fi Versio Pvm Tekijä Kuvaus 0.1 10.11.2005 Juho Mäkinen Johdanto 1. 0.2 11.11.2005 J.Mäkinen, Käytäntöön
Yllättävän, keskustelun aikana puhkeavan ristiriidan käsittely
Yllättävän, keskustelun aikana puhkeavan ristiriidan käsittely TOIMI NÄIN Pysäytä keskustelu hetkeksi ja sanoita havaitsemasi ristiriita. Kysy osallistujilta, mitä he ajattelevat havainnostasi. Sopikaa
Etätyökysely henkilöstöstölle 22.1.-2.2.2015
Etätyökysely henkilöstöstölle 22.1.-2.2.2015 Olen kokenut etätyön hyväksi työskentelytavaksi Saan etätyöpäivän aikana pääosin tehtyä suunnittelemani työt Ohjeistus etätyön tekemiseen on ollut riittävää
OPINTOJEN SUUNNITTELU OSANA OPINTOPOLKUA. Opintoihin orientoitumisen luento
OPINTOJEN SUUNNITTELU OSANA OPINTOPOLKUA Opintoihin orientoitumisen luento 27.8.2014 Odotukset opiskelulle Keskustele pienessä ryhmässä: Mitä odotat tulevilta luokanopettajaopinnoiltasi? Millaisia taitoja
NextMakers-kasvuyritysbarometri. Julkaistu Microsoft Fluxissa
NextMakers-kasvuyritysbarometri Julkaistu 9.2.2017 Microsoft Fluxissa NextMakers-kasvuyritysbarometri 1/2017 NextMakers-barometri käsittelee kasvuyrityksille kiinnostavia, ajankohtaisia aiheita. Ensimmäisen
SPRINTTISUUNNISTUS. Kuinka kehittyä sujuvaksi rintteriksi
SPRINTTISUUNNISTUS Kuinka kehittyä sujuvaksi rintteriksi SPRINTTISUUNNISTUKSEN MÄÄRITELMÄ Suunnistusmatka, joka kilpaillaan rakennetussa ympäristössä kulkukelpoisuudeltaan hyvällä ja reitinvalintoja mahdollistavalla
Tukikeskustelukoulutus. Tukikeskustelutyökaluna Olen jotain erityistä (Peter Vermeulen) Sari Kujanpää Psykologi, psykoterapeutti (VET)
Tukikeskustelukoulutus Tukikeskustelutyökaluna Olen jotain erityistä (Peter Vermeulen) Sari Kujanpää Psykologi, psykoterapeutti (VET) Peter Vermeulen Olen jotakin erityistä Kuinka kertoa lapsille ja nuorille
Four Ferries Oy:n nopea kokeilu Helsingin kouluissa Helsingin koulujen nopeiden kokeilujen ohjelma II, kevätlukukausi 2019
Julkinen loppuraportti 30.07.2019 Four Ferries Oy:n nopea kokeilu Helsingin kouluissa Helsingin koulujen nopeiden kokeilujen ohjelma II, kevätlukukausi 2019 Kokeilun tavoitteet Four Ferries Checker on
Oppimisen pulmista oppimisen iloon -teemaryhmä
Oppimisen pulmista oppimisen iloon -teemaryhmä Opinnollinen kuntoutus Aija Lund 2007 Ryhmän teemat: Lukemisen ja kirjoittamisen vaikeudet (Jukka Nevala ja Marjukka Peltonen) Tekstinymmärtäminen ja sen
SELVITYS PRO GRADUJEN KÄYTÖSTÄ TAIDEKIRJASTOSSA
SELVITYS PRO GRADUJEN KÄYTÖSTÄ TAIDEKIRJASTOSSA Tapani Takalo Lapin korkeakoulukirjasto, yliopisto, taide 17.11.2011 1. Johdanto Lapin yliopiston taidekirjastossa on selvitetty taidekirjaston kokoelmiin
Tietojärjestelmän kehittäminen syksy 2003
Tietojärjestelmän kehittäminen syksy 2003 Ryhmä C2 Väliraportti 2-24.10. Päivi Laiterla Tomas Windahl Toni Nikkanen Antti Lehto 1 Sisällysluettelo Rich Picture...4 Käsitemalli...5 P-tason
60% 10% 1. MIKSI IHMEESSÄ VERKKOASIAKASPALVELUUN KANNATTAA PANOSTAA? Ole läsnä ja tavoitettavissa. Suomalaisista noin 90 % käyttää nettiä viikoittain.
Tavoita ja vaikuta Oletko koskaan ollut epätietoinen siitä, mitä tuotteita tai palveluita yritys, jonka sivuilla vierailet, oikeasti tarjoaa? Jos olet, niin on todennäköisesti asiakkaasikin. Hän voi olla
Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
Sisäänrakennettu tietosuoja ja ohjelmistokehitys
Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology
4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
HUOMAUTUS LUKIJALLE: Tässä on esitelty kaikkien aineiden palaute. Kysymyksestä 1. ilmenee mitä aineita oppilas on kurssilla lukenut.
Kurssipalaute HUOMAUTUS LUKIJALLE: Tässä on esitelty kaikkien aineiden palaute. Kysymyksestä 1. ilmenee mitä aineita oppilas on kurssilla lukenut. OPPILAS 1 Vastaa seuraaviin kysymyksiin asteikolla 1 5.
KUINKA KIRJOITAT E-KIRJAN päivässä
KUINKA KIRJOITAT E-KIRJAN päivässä Valmentaja-Akatemia opettaa sinulle kuinka valmentajana pystyt kasvattamaan bisnestäsi, auttamaan useampia ihmisiä ja ansaitsemaan enemmän. www.valmentaja- akatemia.fi
Konttorirotasta oman työn tuunaajaksi
Konttorirotasta oman työn tuunaajaksi Osa 1: Kuinka valmiita me olemme? Tutkimuksen perustiedot Tutkimukseen on haastateltu 1000 suomalaista Kohderyhmänä olivat 18-64 -vuotiaat pois lukien eläkeläiset
Siimasta toteutettu keinolihas
AS 0.3200 Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma: Siimasta toteutettu keinolihas Laura Gröhn 224417 Mikko Kyllönen 221177 Lauri Liukko Sipi 84702A Susanna Porkka 225131 3.2.2015
KUNTO Muutoksen seurantakysely
KUNTO Muutoksen seurantakysely Muutoksen seurantakyselyn tavoitteena on auttaa organisaation johtoa seuraamaan muutosprosessia ja arvioimaan sen vaikutuksia. Kysely tarjoaa henkilöstölle mahdollisuuden
RANTALA SARI: Sairaanhoitajan eettisten ohjeiden tunnettavuus ja niiden käyttö hoitotyön tukena sisätautien vuodeosastolla
TURUN YLIOPISTO Hoitotieteen laitos RANTALA SARI: Sairaanhoitajan eettisten ohjeiden tunnettavuus ja niiden käyttö hoitotyön tukena sisätautien vuodeosastolla Pro gradu -tutkielma, 34 sivua, 10 liitesivua
Palaute oppimisessa ja ohjaamisessa
Palaute oppimisessa ja ohjaamisessa Kirsi Viitanen Palautteen merkitys oppijalle Oppimisen edistäminen Osaamisen tunnistaminen Ongelmanratkaisun kehittäminen Ryhmässä toimiminen vuorovaikutustaidot Itsetuntemuksen
TITANIC TEMPPU, vaan ei karille
TITANIC TEMPPU, vaan ei karille Mikko Mäkelä Tuomo Rintamäki 17/10/10 Helsinki Metropolia University of Applied Sciences 1 Metropolia- ammattikorkeakoulusta Suomen suurin ammattikorkeakoulu, joka aloitti
Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet
Organisaation prosessikuvaus - CMMI Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 7.2.2007 Level5 Level4 Level3 Requirements Development Technical Solution Product Integration
Miten kurssit tehdään Eirassa?
Miten kurssit tehdään Eirassa? Peruskoulussa sinun pitää olla tunneilla, tehdä kurssiin kuuluvat tehtävät ja osallistua loppukokeisiin. Verkkokurssit (suomen kielen kirjoituskurssi s2kki2v ja s2klu2v)
oppilaan kiusaamista kotitehtävillä vai oppimisen työkalu?
Oppimispäiväkirjablogi Hannu Hämäläinen oppilaan kiusaamista kotitehtävillä vai oppimisen työkalu? Parhaimmillaan oppimispäiväkirja toimii oppilaan oppimisen arvioinnin työkaluna. Pahimmillaan se tekee
Johdatus historiatieteeseen
Johdatus historiatieteeseen Verkkokeskustelulla tuettu luentosarja Jari Ojala jaojala@campus.jyu.fi Lähtökohtia Historian perusopintojen massaluento Kurssin yleiset tavoitteet: Kehittää teoreettista ajattelua
Asiantuntijaverkostot ja toimialaryhmät osana yhtenäisiä toimintatapoja
Asiantuntijaverkostot ja toimialaryhmät osana yhtenäisiä toimintatapoja Tehokkuus, järjestäytyminen, vaikuttavuuden parantaminen, jne. 1 Webropol-kysely asiantuntijaryhmien jäsenille Lähetettiin AVIen
NELJÄ HELPPOA TAPAA TEHDÄ TYÖNTEKIJÖIDEN TYÖSTÄ JOUSTAVAMPAA
NELJÄ HELPPOA TAPAA TEHDÄ TYÖNTEKIJÖIDEN TYÖSTÄ JOUSTAVAMPAA Vie yrityksesi pidemmälle Olitpa yrityksesi nykyisestä suorituskyvystä mitä mieltä tahansa, jokainen yritysorganisaatio pystyy parantamaan tuottavuuttaan
Miten asiakas tekee valintansa?
Miten asiakas tekee valintansa? ja miten me voimme vaikuttaa siihen? TkT Asiantuntija Harri Karkkila Strategia Asiakkaan kokema arvo Asiakastyytyväisyys ja asiakaskokemus Kilpailuedut Yrittäjä Kouluttaja
MOOC DIGITAL WORKPLACE. MODUULI 1: ITSENSÄ JOHTAMINEN VIDEO: MOD1_6: Tuottavuus
MOOC DIGITAL WORKPLACE MODUULI 1: ITSENSÄ JOHTAMINEN VIDEO: MOD1_6: Tuottavuus Vuorosanat: tarkemmat tiedot kouluttajan vuorosanoista Näytön teksti: ideoita, kuvia jne. jotka tulevat näytölle kehotettaessa.
Mitkä alla olevista asioista pitävät paikkansa sinun kohdallasi? Katso lista rauhassa läpi ja rastita ne kohdat, jotka vastaavat sinun ajatuksiasi.
SYYT ELÄÄ Tehtävän tarkoituksena on kartoittaa ja vahvistaa niitä syitä, joiden vuoksi nuori tahtoo elää. Samalla sen avulla voidaan arvioida hyvin monipuolisesti nuoren elämäntilannetta ja kokemusmaailmaa.
varhaiskasvatukseen ja kouluihin
Pikaopas Vaikuttavuutta verkkokoulutuksella varhaiskasvatukseen ja kouluihin Määrittele Opiskele Sovella Juurruta Vaikuta Vuorovaikutteinen verkkokurssi työyhteisön yhteiseen opiskeluun Tämä opas tarjoaa