(toiminnot)

hwechtla-tl: Pariohjelmoinnin ajankulutus

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


(nettipäiväkirja 26.02.2018) Tänään on näemmä tällainen kirjallisuus-WTF-päivä. Olen nähnyt monessa paikassa lainatun tutkimustulosta, jonka mukaan pariohjelmointi vie 15% enemmän aikaa kuin yksin ohjelmointi (saman tehtävän toteuttamiseen), mutta tuottaa 15% vähemmän ohjelmavirheitä. Tämän väitteen lähde on ilmeisesti https://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF .

Mutta! Siis tuossa artikkelissa minusta sanotaan, että pariohjelmointi vie 15% enemmän aikaa parilta kuin saman tehtävän tekeminen yhdeltä. Eli oikeasti, jos lasketaan raakaa ohjelmoija-aikaa ja oletetaan ohjelmoijat yhtä nopeiksi (mitä ne eivät todellakaan ole, mutten jaksa etsiä tähän lähdettä), pariohjelmointi on oikeasti 130% hitaampaa per henkilö, right? Ja oman kokemukseni mukaan, jos oikeasti pariohjelmoidaan eikä vain esitetä pariohjelmointia, niin työtahti on hitaamman ohjelmoijan tahti, eli yhtä nopeat ohjelmoijat ovat pariohjelmoinnin paras tapaus. Silti tuolla artikkelissa sanotaan "Development costs certainly do not double with pair programming!" Mitämitä?

Ohjelmavirheet ovat oikeasti erittäin aikaa kuluttavia. Riippuu ohjelmasta, organisaatiosta, katselmointikäytännöistä ja ohjelmointimetodologiasta (testauskäytännöt? TDD?), onko se 15% defektinvähennys enemmän vai vähemmän kuin 130% ylimääräistä aikaa tehtävään.

Yllä mainittu artikkeli viittaa lähteenään toiseen (http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF). Siellä avataan kyseistä lukemaa ja oikeasti väitetään, että yhdellä parin jäsenellä kestää 50--60% siitä ajasta, mitä yksinäisellä kehittäjällä. Tukena on taulukko ("figure 1"), jossa olevat lukemat kylläkin ovat 57--79%. Ilmeisesti tämä 57%:n best case on ensimmäisen artikkelin 15%:n perusta (2*57% = 114%).

Yleisesti ottaen täytyy sanoa, että olen harvoin nähnyt näin epäluotettavia ja epämääräisiä tieteellisiä artikkeleita. Tutkimusaiheen täytyy olla tosi värittynyt, kun tilastollisia tuloksia yritetään esitellä näin "parhaassa valossa".

Pariohjelmoinnista on tehty paljon tutkimuksia, joten ei ole yllättävää, että niistä on tehty metatutkimus (http://www.idi.ntnu.no/grupper/su/publ/ebse/R11-pairprog-hannay-ist09.pdf). Tämän tutkimuksen mukaan (tulokset Fig. 9:ssä) kaikissa tutkimuksissa yhdistettynä pariohjelmointi vie 8% vähemmän aikaa (duration), eli 84% enemmän henkilöaikaa (effort) kuin yksin ohjelmointi. Tämä vastaa omia kokemuksiani (silloin kun molemmat ohjelmoijat ovat kokeneita), ja on myös linjassa sen kanssa, että "PP effect on seniors" sisältää lähes samat luvut. Tämä on aika kaukana yllä mainittujen, selkeästi värittyneiden tutkimusten luvuista.

On myös hyvä huomata, että tämä metatutkimus löytää lievää todistusaineistoa (ks luku 3.4) julkaisuvinoumasta, eli siitä, että halutaan julkaista vain itselle (tai jollekulle) mieluisia/kiintoisia tuloksia. Näissä epäilyissä ei kuitenkaan ole mitään, mikä vakuuttavasti osoittaisi, että syy on juuri julkaisuvinoumassa.


kommentoi (viimeksi muutettu 26.02.2018 18:11)