SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

Samankaltaiset tiedostot
Johdanto 1. Projektille esiteltävä versio. Kokemukset ja muutokset 3. Projektille esiteltävä versio. Iteraatio 2., suunnitelma

VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D

T SEPA päiväkirja

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Tutkittua tietoa. Tutkittua tietoa 1

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

COTOOL dokumentaatio Testausdokumentit

T SEPA - päiväkirja: Design Patterns. ETL työkalu

Ohjelmistojen mallintaminen. Luento 11, 7.12.

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe LU. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T3

Työkalut ohjelmistokehityksen tukena

Kuopio Testausraportti Asiakkaat-osakokonaisuus

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Kuopio Testausraportti Kalenterimoduulin integraatio

Harjoitustyön testaus. Juha Taina

T SEPA - päiväkirja: Design Patterns. ETL työkalu

15. Ohjelmoinnin tekniikkaa 15.1

Ohjelmoinnin perusteet, syksy 2006

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Automaattinen yksikkötestaus

15. Ohjelmoinnin tekniikkaa 15.1

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

T SEPA päiväkirja

LAATURAPORTTI Iteraatio 1

Menetelmäraportti Ohjelmakoodin tarkastaminen

Pariohjelmointi. Ryhmä Rajoitteiset

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

SEPA diary. Dokumentti: SEPA_diary_PK_RI.doc Päiväys: Projekti : AgileElephant Versio: V0.2

Napa vertaistestaus TESTISESSIO-CHARTER. BetaTeam

Data Sailors - COTOOL dokumentaatio Riskiloki

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Onnistunut ohjelmistoprojekti

ELM GROUP 04. Teemu Laakso Henrik Talarmo

11.4. Context-free kielet 1 / 17

13/20: Kierrätys kannattaa koodaamisessakin

COTOOL dokumentaatio SEPA: Refaktorointi

LIITE 1 HANKITTAVAT KOULUTUKSET POHJOIS-POHJANMAAN ELY-KESKUS Koulutuksen nimi ja koulutuskuvauksen numero Paikkakunta

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

1 Sisällysluettelo 2 Johdanto 3 Menetelmän käyttö

Laaturaportti [iteraatio 2] Ryhmä 14

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Tapahtuipa Testaajalle...

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

7.4 Sormenjälkitekniikka

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektityö

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Yhteenvetodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Testiraportti - integraatiotestaus

Suhtautuminen itseohjautuviin autoihin. Liikenneturva ja Kantar TNS Oy 2016

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant

LAATUDOKUMENTTI

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant

Onnistunut ohjelmistoprojekti

Test-Driven Development

Hirviö Laadunvarmistussuunnitelma

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

1 Tehtävän kuvaus ja analysointi

Figure 1: Projektipäälliköt Juha-Pekka Honkavaara ja Juha Mattila

Pariohjelmoinnilla lisää mielekkyyttä ohjelmoinnin opetukseen? Annika Alakastari

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Toinen harjoitustyö. ASCII-grafiikkaa

Project group Tete Work-time Attendance Software. Henkilökohtainen SE harjoitus: loppuraportti

A11-02 Infrapunasuodinautomatiikka kameralle

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

T SEPA - CALIBERRM Aleksi Airola, 39054L Kaarlo Lahtela, 61439P

COTOOL dokumentaatio Riskiloki

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Sote-uudistuksen kriittisiä onnistumisen edellytyksia Jari Stenvall HTT Hallintotieteen professori Johtamiskorkeakoulu/Tampereen yliopisto

T Ohjelmistoprojektien hallinta Tehtävän 3 ratkaisu. Maija Kangas, Kimmo Stålnacke ja Outi Syysjoki

LOPPURAPORTTI Paperikonekilta Versio 1.0

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

T SEPA diary. Santtu Järvi (57729J), Matti Lehtomäki (55065D) 2. maaliskuuta 2008

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla

SEPA päiväkirja. Aihe: Staattiset menetelmät Tekijät: Mikko Halttunen 58198B, Mikko Närjänen 58122B Ryhmä: Neptune T Ohjelmistoprojekti I

L models. Loppuraportti. Ryhmä Rajoitteiset

T SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B

11/20: Konepelti auki

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

AS Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma Syksy 2009 A09 05 OSGi IRC Bot For Coffee Maker

58160 Ohjelmoinnin harjoitustyö

Tietotekniikan valintakoe

Harjoitustyö. Jukka Larja T Tietokoneverkot

Convergence of messaging

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

Koodaamme uutta todellisuutta FM Maarit Savolainen

Harjoitus 3 Case Face Wash. Raine Mäki, Laura Takkinen, Marika Östman, Otto Kataja

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

Tampereen kaupunki. SAP - SEPA projekti. Mervi Lindstedt Hallintopalvelukeskus, projektipäällikkö

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

statbeatmobile PROJECT REVIEW iteration 1

Transkriptio:

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 soveltaminen 2. J.Leppä 1.0 14.11.2005 Juho Mäkinen Projektille esiteltävä versio 1.1 01.12.2005 J Mäkinen J Leppä Kokemukset ja muutokset 3. 2.0 05.12.2005 J Mäkinen J Leppä Projektille esiteltävä versio

SEPA päiväkirja Pariohjelmointi Juho Mäkinen, 57796V & Jari Leppä, 42710V Sisältö 1. Johdanto 2. Käytäntöön soveltaminen 3. Kokemukset 1. Johdanto Me valitsimme SEPA aiheeksemme pariohjelmoinnin. Tämä on ohjelmointitekniikka jossa kaksi kehittäjää toimii saman tietokoneen ääressä, toinen aktiivisesti ohjelmoiden ja toinen vierestä seuraten ja kommentoiden. Ohjelmoijat vaihtavat säännöllisin väliajoin roolejaan, ja näin ohjelmakoodi syntyy ohjelmoijien tiiviin yhteistyön tuloksena. Pariohjelmointi on osa laajempaa Extreme Programming käytäntöperhettä. Katsomme että pariohjelmointi tuo monenlaisia hyötyjä ohjelmistokehitykseen. Virheiden määrä ohjelmakoodissa vähenee, kun koodia tarkkailee kaksi silmäparia yhden sijasta. Myös vaikeat solmukohdat ratkeavat helposti kun niitten ratkaisusta voi keskustella parin kanssa ja vaihtaa erilaisia mielipiteitä erilaisten ratkaisumenetelmien hyödyllisyydestä. Parhaimmillaan pariohjelmointi on silloin kun toinen ohjelmoija on huomattavasti kokeneempi kuin toinen. Tällöin ohjelmoijien välillä on eräänlainen mestari oppipoika -suhde, jolloin kokemattomampi ohjelmoija pääsee näkemään miten kokenut kollega ratkaisee erilaisia käytännön ongelmia. Myös kokenut ohjelmoija saattaa saada kokemattomammalta uudenlaisia ratkaisuehdotuksia joita hän ei ole aiemmin osannut ottaa huomioon. Pariohjelmointiin liittyviä artikkeleita olemme lukeneet internet sivulta http://www.pairprogramming.com/. Erityisesti Professori Randall W. Jensen:in artikkelia osoitteessa http://www.stsc.hill.af.mil/crosstalk/2003/03/jensen.html pidimme erittäin informatiivisena.

2. Käytäntöön soveltaminen Hajautettu projektimme aiheuttaa haastetta pariohjelmoinnin käytäntöön soveltamisessa. Projektillamme ei ole vakituista yhteistä toimipaikkaa, kuten esimerkiksi oikeassa työelämässä yleensä on. Asiakkaamme on kuitenkin antanut käyttöömme yhden kannettavan työaseman, joka tässä tapauksessa korvaa puutetta. Toinen rajoitteemme on, että projektiryhmässämme on vain kolme kehittäjää. Kolme on sekä pieni että pariton lukumäärä. Päätimme edellä mainituista huolimatta testata menetelmää tässä projektissa, koska oletamme sen kuitenkin antavan kokemusta kyseisestä käytännöstä tämänkin kaltaisessa ympäristössä. Projektimme teknologiassa on osuuksia, joista ei kenelläkään ole tietämystä. Päätimme soveltaa pariohjelmointia näissä kohteissa. Myös testauksessa näimme mahdollisuuden hyödyntää paritestausmenetelmää. Lopuksi myös integraatiovaiheessa aiomme soveltaa pariohjelmointia. Pariohjelmoinnin ajatus on, että toinen parista on aktiivinen ja toinen häntä tukeva ohjelmoija. Roolit vuorottelevat sessiosta toiseen. Sessio projektissamme tarkoittaa kahden tunnin yhtämittaista työskentelyjaksoa, jonka jälkeen roolit vaihdetaan. Uuden työjakson alussa roolit on aina vaihdettava. IMPLEMENTAATIO I Viikolla 46 o Hannu ja Juho Ohjelmointi; Fortran osuuksia; asiakkaan nykyjärjestelmän ohjelmakoodin muokkausta Systeemi-integraatio Testaus; buildin integraatiotestaus Viikolla 47 Testaus; Integraatiotestaus Viikolla 48 Testitapausten suunnittelua o Hannu ja Juho Testitapausten suunnittelua

IMPLEMENTAATIO II Projektin toista vaihetta ei ole tällä hetkellä tarkoin määritelty osittain siksi, että projektimme on tutkimusluonteinen. Toisin sanoen riippuu ykkösvaiheen tuloksista ja kokemuksista, mitä jatkovaiheessa tullaan tai joudutaan toteuttamaan. Päivitämme tämän suunnitelman projektisuunnitelman tarkentumisen jälkeen. Täydennämme tätä suunnitelmaa toisen iteraation projektin suunnitteluvaiheessa. 3. Kokemukset ja muutokset 3.1 Projektin suunnittelu Projektin aloitusvaiheessa SEPA aihe ei ollut vielä selvillä. Uskomme myös, että pari ohjelmointi metodia ei olisi voinutkaan hyödyntää projektin suunnittelussa. 3.2 Implementaatio 1 Saimme myönteisiä kokemuksia niistä ohjelmointiosuuksista, joihin olimme aikoneet soveltaa pari-ohjelmointia. Erityisesti asiakkaan Fortran koodin muokkaamisessa oli eniten etua tästä menetelmästä, koska kyseinen ohjelmointikieli ei ollut kummallekaan entuudestaan tuttua. Taustatekijöistä voimme todeta, että molemmat ohjelmoijat olivat samalla lähtötasolla Fortranin suhteen. Kokonaisuudessaan koko asiakkaan järjestelmä oli tuntematon, joten menetelmä tarjosi hyötyä myös siihen tutustumisessa. Käytännössä tuli todetuksi, että inhimillisistä syistä johtuen ei aina ollut selkeää roolijakoa aktiivisen ja tätä tukevan ohjelmoijan välillä. Toisinaan syntyi tilanne, että näppäimistöllä oli enemmänkin kuin sallitut kaksi kättä. Edellä mainittuun pyrittiin kuitenkin reagoimaan. Koska kumpikin ohjelmoija oli samalla kokemustasolla, niin tässä tapauksessa ei voitu havaita mestari-oppipoika pariohjelmointihyötyjä. Yleisesti ottaen projektissa käytettiin Java-ohjelmointikieltä. Koska molemmat ohjelmoijat olivat kokeneita Java ohjelmoijia, niin pariohjelmointia ei nähty välttämättömäksi soveltaa näissä osuuksissa. Toisaalta tätä rajoitti myös hajautetun projektin luonteesta johtuvat olosuhdetekijät. Tekemämme suunnitelma ei täysin täsmännyt siihen, miten toteutus syntyi. Ohjelmointitehtävät Fortranin osalta suoritettiin, kuten oli ajateltu. Systeemi-integraatiota ei kuitenkaan varsinaisesti sisältynyt projektiin, vaikka olimme niin olettaneet. Testauksen osalla aiheutui suurimmat poikkeamat suunnitelmaan, koska esimerkiksi testitapausten suunnitteluun ei käytännön syistä voitu käyttää tätä filosofiaa. Projektin osalta testaus viivästyi joka tapauksessa, ja lopulta ei jäänyt riittävästi aikaa käydä tätä menetelmää lävitse. Toisessa vaiheessa meillä on enemmän siinä tarvittavia resursseja toteutuksen suunnitteluun. 3.3 Implementaatio 2

Odotamme innokkaasti lisää kokemuksia toiselta iteraatiokierrokselta. 3.4 Yhteenveto Sepan aikataulusta johtuen, emme päässeet soveltamaan pariohjelmointia täysipainoisesti. Käyttöönottaminen tapahtui vasta ensimmäisen iteraatiokierroksen puolivälissä. Toisen kierroksen aikana otamme menetelmän alusta lukien huomioon. Eritoten uuteen järjestelmään perehdyttäessä, totesimme pariohjelmoinnista olevan eniten hyötyä. Menetelmä todettiin joka tapauksessa tutustumisen arvoiseksi.