Paarisprogrammeerimine

Mis see on? Kuidas see töötab? Kas üks magab samal ajal kui teine töötab?
Need on mõned küsimused, mida meilt on küsitud paarisprogrammeerimise kohta. Proovin seletada selle põhikontseptsiooni ja miks see hea on, vähemalt meie kogemuse põhjal.

02.03.2021 (2 minuti jagu lugemist)

Paarisprogrammeerimine on agiilne tarkvaraarenduse tehnika, mida rakendades töötavad kaks arendajat ühe arvuti, aga mitte ilmtingimata sama klaviatuuri, hiire ja monitori taga. Meie näiteks kasutame kahte klaviatuuri, kahte hiirt ja kahte monitori, millel mõlemal kuvatakse täpselt sama sisu.

K: Kuidas täpselt paarisprogrammeerimine töötab?
V: Tegelikult on see võrdlemisi lihtne. Kogu idee seisneb selles, et üks arendajatest on “juht” ehk teisisõnu, kirjutab koodi. Teine arendaja on samal ajal “vaatleja” ehk teisisõnu, revideerib koodi selle kirjutamise hetkel ja on “juhile” abiks.

K: Kuidas “vaatleja” “juhti” aitab?
V: Idee seisneb selles, et “juht” on fokuseeritud koodi kirjutamisele ja “vaatleja” peaks suunama teda parematele lahendustele kui selleks tekib vajadus ja välja tooma potentsiaalseid probleeme, mida “juht” võib-olla kohe tähele ei pannud. Väljend “Kaks pead on parem kui üks” sobib ideaalselt kirjeldamaks paarisprogrammeerimist.

K: Kas poleks parem kui kaks arendajat eraldi töötaksid?
V: Meie kogemuse põhjal mitte. Muuhulgas vähendab paarisprogrammeerimine aega, mida arendaja kulutab isiklike asjadega tegelemiseks, näiteks YouTube’is videote vaatamiseks, sõpradega suhtlemiseks või pikkade telefonikõnede tegemiseks. Enamasti tahavad inimesed selliste asjade jaoks privaatsust, aga kahepeale ühe arvuti kasutamine ja selle ekraani jagamine vähendab võimalust kasutada arvutit millekski muuks kui töö tegemiseks. Loomulikult teeme me pause, aga üldiselt samal ajal, et maksimaalselt palju koos arendada.

K: Mis on paarisprogrammeerimise head ja halvad küljed?
V: Siin ei ole konkreetset vastust kuna see sõltub kogemusest ja on suuremal või vähemal määral iga arendaja subjektiivne arvamus. Meie meelest võiks jaotuda need selliselt:

Head:
  • Tiim, mitte kindel arendaja, on koodi omanik
  • Paremini fokuseeritud töö
  • Vähem bugisid
  • Võimalus kiiresti kaasata projekti uusi arendajaid, olenemata nende tasemest
  • Parem arendajatevaheline suhtlus
  • Arendajad õpivad üksteiselt
  • Järjepidevad ja kohesed arutelud koodi kvaliteedi parandamiseks
  • Üksi töötav inimene peab arutelu jaoks teistele suurema pildi ära rääkima, kuid paaris programmeerides on kahel inimesel kogu info alati teada. Mõnikord piisab ainult paariminutilisest vestlusest paarilisega, et lahendus leida, kuid üksi võib see võtta tunde.
Halvad:
  • Paarisprogrammeerimine ei sobi kõigile
  • Paarisprogrammeerimine ei tööta kui üks arendajatest ei osale aktiivselt arutelus
  • Paarisprogrammeerimine ei tööta kui üks arendajatest on “kauboi” või “superstaar” ja ei taha kuulata, mida teisel öelda on. Kogu idee seisnebki tiimitöös ja kui seda ei ole, ei toimi ka paarisprogrammeerimine.

K: Aga see maksab kaks korda rohkem kui kaks arendajat tegelevad sama asjaga!
V: Jah ja ei. See sõltub projekti pikkusest ja keerukusest. Kui projekt on väga väike ja lihtne, siis paarisprogrammeerimine ei ole võib-olla parim lahendus. Aga kui projekt on pikem ja/või keerulisem ning tehniliselt rohkem väljakutseid esitav, siis tänu eelmises punktis toodud headele külgedele tähendab see enamasti kliendile pikas plaanis raha kokkuhoidu ja paremat kvaliteeti.

Paarisprogrammeerimisest võib veel pikalt rääkima jääda, aga leidub palju häid artikleid samal teemal. Näiteks siin on mõned ingliskeelsed teaduslikud uuringud paarisprogrammeerimisest, kui peaks olema huvi rohkem lugeda.


Solutional on agiilne tarkvaraarenduse ettevõte professionaalsete inseneridega, kes suudavad lahendada tarkvaralised probleemid algusest lõpuni ilma vahendajateta.

Kirjuta meile e-post aadressile info@solutional.ee juhul kui vajad abi uute või olemasolevate projektide eduka teostusega.