Paarisprogrammeerimine

 
Paarisprogrammeerimine on tarkvaraarenduses agiilne meetod, kus kaks programmeerijat teevad koostööd programmi loomisel. Üks paarilisest kirjutab koodi ning sel ajal teine paariline (vaatleja/navigeerija) vaatab läbi iga sisestatud koodirea. Antud programmeerimistehnika juures on tavapärane, et paarilised vahetavad tihti omavahel rolle.
Läbivaataja rollis oleval paarilisel on strateegiline roll programmi valmimisel, tema ülesandeks on märgata võimalikke veakohti programmis, suunata tegevust ning soovitada ideid. Läbivaataja eesmärgiks on abistada või lihtsustada koodikirjutaja rollis oleva inimese tööd võimalikult palju, et tagada töö efektiivsus. Programmeerija peaks saama keskenduda vaid koodi kirjutamisele, kasutades läbivaatajat kontrollijana ja nõuandjana.
Majanduslikud tegurid.
On leitud, et paarisprogrammeerimisega suureneb inimtöö tundide arv ligikaudu 15–100% võrreldes üksi töötamisega. Seevastu on aga täheldatud, et paaristööna valminud koodijupid sisaldavad keskmiselt 15% vähem vigu. Majandusliku tasuvust vaadeldes tuleb lisaks koodi valmimiseks kulunud ajale arvestada erinevaid tegureid, näiteks programmi töökindlus. Paarisprogrammeerimine vähendab koodis tehtavate vigade arvu, mis omakorda vähendab kvaliteedi tagamisele mõeldud kulutusi.
Töö kvaliteet.
Paarisprogrammeerimine võimaldab mitmekesisemaid lahendusi:
Kuna paarisprogrammeerimisel jagavad kolleegid oma tööülesande eesmärke ja plaane, siis peavad nad arusaamatuste korral jõudma omavahel kokkuleppele. Probleeme ja lahenduskäike arutades võetakse läbi oluliselt rohkem võimalike lahenduskäike, kui oleks suutnud üksik programmeerija. Antud teguviis suurendab oluliselt valmiva koodilõigu kompaktsust ning välistab kehvemaid lahendusviise.
Rahulolu.
Paarisprogrammeerijate veebiküsitluses (aastal 2000) selgus, et 96% vastajatest leidis, et nad nautisid töötegemist rohkem kui üksi tehes. 95% küsitletavatest nentisid, et nad olid oma lahenduskäikudes kindlamad, kui nad töötasid paaris.
Teadmised.
Ei ole vahet, kas paarisprogrammeerimine leiab aset klassiruumis või kontoris, teadmisi jagatakse omavahel pidevalt. Paljud allikad viitavad sellele, et õpilased on oluliselt enesekindlamad paarisprogrammeerimisel ning õpivad programmeerimiskeele reeglitele lisaks ka visuaalselt paremini oma programme vormistama. Meeskonnasisene paariliste vahetamine aitab jagada iga programmeerija teadmisi terves meeskonnas ning kasulike töövõtete levimine kiirem ning efektiivsem terves meeskonnas. Paarisprogrammeerimine võimaldab programmeerijatel uurida oma partneri koodi ja anda tagasisidet, mis arendab oskust anda kohest tagasisidet tööle, mis valmib kellegi teise eestvedamisel.
Meeskonnasisene koostöö.
Paarisprogrammeerimine nõuab paarilistelt probleemide ja lahenduskäikude jagamist, mis läbi on vähem tõenäoline, et head ideed ja mõtted jääksid peitu. Pidev suhtlus üksteisega õpetab suhtlema vabamalt ning arusaadavamalt. Eeltoodud teguviis parandab koostöövõimet projektiga tegelejate (meeskonna liikmete) vahel ning parandab üldist meeskonnasisest infovoogu.
Märgid kehvast koostööst.
Järgnevad märgid iseloomustavad kehva koostööd:
Kahte head oskajat üksteisega paari panna tundub väga ilmselge valik, et saavutada parim tulemus. Antud paarilised suudavad tihti tagada professionaalsed tulemused, kuid enamasti antud metoodikaga ei võta kasutusele uudseid lahenduskäike. Kogenud programmeerijad on vähem tõenäolisemad küsima abi millegi lahendamisel, kuna on välja kujunenud rutiin, kuidas teatud tüüpi probleeme lahendada.
Oskajat algajaga paari pannes annab oskajale võimaluse oma teadmisi ning kogemusi jagada algajale. Moodustatud paar võib tihti juhtida tee uutele lahendustele, sest algaja on entusiastlik küsima erinevaid küsimusi, miks nii ja miks mitte nõnda. Antud paar lahendab probleeme tõenäoliselt oluliselt aeglasemalt kui kaks oskajat, kuid antud paaris on tõenäolisem, et uudsed ideed saavad kajastatud. Võib ka tekkida olukord, kus algaja tunneb ennast ebamugavalt, ning ei julge näidata üles huvi tehtava vastu, kartes jätta endast lolli muljet. Samuti võib ka juhtuda, et oskajal ei ole kannatust kommenteerida kirjutatut entusiastlikule algajale, ning sel juhul ei ole tehtav töö tõhus.
Algajate paari panemine võib anda palju paremad tulemused, kui kaks algajat individuaalselt tööd tehes, kuid antud variant on kõige ebapopulaarsem. Algaja koostöötamine oskajaga on oluliselt efektiivsem ja kiirem moodus algaja õpetamiseks ning seetõttu eelistatakse paari panna oskajat algajaga kui et lasta kaks algajat omavahel kokku.
Viited.
Tõlgitud ingliskeelsest Wikipediast Pair programming (16.01.2019)