Paarisprogrammeerimine kaugtööna

Kuidas see toimida saab kui arendajad peavad ekraani jagama ja samal ajal sama asja kallal töötama?

16.03.2021 (3 minuti jagu lugemist)

Tegelikult on vastus päris lihtne: me kasutame selleks ekraanijagamise tööriistu. Trikk seisneb selles, et tuleb valida midagi sellist, mis päriselt ka toimib. Kui COVID-19 meid kodukontoris hoidis, oli meil võimalus proovida mitmeid erinevaid tööriistu, mõned töötasid paremini kui teised aga ükski neist pole lõpuni veatu.

Meie nõudmised töövahenditele olid järgnevad: ekraani, klaviatuuri ja hiire jagamine ning loomulikult pidime saama üksteisega töö tegemise ajal rääkida. Viimane tingimus oli, et lahendus peab töötama ka erinevate operatsioonisüsteemide peal.

K: Kuidas me üksteisega räägime?
V: Selleks kasutasime me Discordi, mis töötab suurepäraselt 99.9% ajast. On olnud mõned üksikud katkestused, aga seda juhtub isegi parimatel - miski pole veatu.

K: Kuidas me klientidega suhtleme?
V: Sõltuvalt teemast oli lahendusi kaks: (Video)kõned koosolekuteks ja keerulisemateks küsimusteks ning suhtlusrakendus väiksemate ja/või pidevate vestluste jaoks. Tarkvaraks on tavaliselt see, mida klient juba majasiseselt niikuinii kasutab, kõnede jaoks näiteks Zoom, Skype või Teams, tekstivestluste puhul Fleep või Slack.

K: Kuidas me ekraani jagame?
V: Kõikidest lahendustest, mis me proovisime, jäid sõelale kaks, millest mõlemal on oma head ja vead, aga mis mõlemad on meil ettevõttesiseselt kasutusel: Steam Remote Play ja AnyDesk.
Mulle personaalselt meeldib Steam Remote Play, mis on pisut omapärane, sest see on mõeldud mängimise jaoks, aga tuleb välja et töötab väga hästi ka arenduse jaoks.
Siin on nimekiri mõndadest tööriistadest, mida katsetasime ning nende plussidest ja miinustest:

Steam Remote Play

Head:
  • Kogu ekraani jagamine
  • Mitme ekraani tugi
  • Klaviatuuri jagamine
  • Hiire jagamine
  • 100% tasuta
  • Otsene ühendus arvutite vahel
Vead:
  • Vajab võimsat host-arvutit, kuna striimimine on mõeldud mängimise jaoks
  • Mõlemas arvutis olev klient peab alati olema uuendatud kõige uuema versiooni peale
  • Aeg-ajalt muutub ekraan uduseks, aga see sõltub suuresti internetiühendusest ja ekraani resolutsioonist. Meie jaoks töötas kaabliga ühendus ning 1440p resolutsioon võrdlemisi hästi
  • Kõik klaviatuuri otseteed ei tööta. Meie jaoks oli lahendus enimkasutatavate klahvikombinatsioonide muutmine. Suurim probleem oli Alt + Tab, mida kasutame väga tihti, aga mida pole võimalik muuta, mis tähendas meie jaoks tihedamat hiire kasutamist
  • “Windowsi nupp” ei tööta (kuigi ega seda tihti ei kasuta)
  • Ülesseadmine on keerukas

AnyDesk

Head:
  • Kogu ekraani jagamine
  • Klaviatuuri jagamine
  • Hiire jagamine
  • Kõik klaviatuuri otseteed töötavad, sealhulgas Alt + Tab
  • Ülesseadmine on lihtne
Vead:
  • Rakenduses on imelik klaviatuuri/hiire lukustusloogika. Kui üks arendaja liigutab hiirt või kasutab klaviatuuri, siis samal ei saa teine arendaja seda teha. Isiklikult see mulle ei meeldi ja see oli suurim puudujääk AnyDeski puhul. Kui oleks võimalus see loogika kinni keerata, siis oleks see ilmselt Steam Remote Play asemel eelistatud tööriist
  • Igal arendajal on oma kursor
  • Iga kursori juures näidatakse selle omaniku nimesilti, mis mulle isiklikult ei meeldi, kuna on mittevajalik müra
  • Äriklientidele tasuline

Floobits

Head:
  • Arendajad kirjutavad koodi enda arvutis, mitte host-arvutis
  • Toetab mitut erinevat IDE’t ja arendajad saavad valida, millist nad kasutada tahavad
  • Klaviatuuri jagamine
  • Kõik klaviatuuri otseteed toimivad korrektselt
Vead:
  • Koodi peab jagama tsentraliseeritud serverisse, mille külge arendajad ühenduvad
  • Äriklientidele tasuline

Floobitsile sarnaseid lahendusi, mis toimivad Intellij Idea’ga, on mitmeid, milledel kõikidel on samad head küljed ja need töötavad suurepäraselt kuniks paarisprogrammeerimist kasutatakse ainult koodi kirjutamise jaoks. Meie aga kasutame koos arendades ka veebilehitsejat, suhtlusrakendusi, käsurida, andmebaasi klienti jms, seega sellised lahendused meile ei sobi, kuna lõpuks peab ikkagi ekraani jagama.

Tuple

Head:
  • Tehtud spetsiaalselt paarisprogrammeerimise jaoks
Vead:
  • Hetkel ainult saadaval macOS jaoks. Kui see lõpuks (lubatakse 2021 jooksul) Linuxi peale ka välja antakse, siis kindlasti me katsetame seda ning otsustame, kas liikuda selle peale või mitte.

Kokkuvõte

Viimasel ajal on pandeemia ja sellest tulenevalt suurema kodukontori kasutamise tõttu turule tulnud palju erinevaid ekraanijagamise lahendusi, mis pakuvad ka paarisprogrammeerimise funktsionaalsust. Meil ei ole olnud võimalust kõiki neid katsetada ning ilmselt ei tulegi kunagi, seega on suhteliselt suur võimalus, et me oleme millestki ägedast ilma jäänud.

Kuigi me eelistame kontoris kokku saada ja töötada, oleme me rahul, et oleme leidnud hea viisi ka distantsilt paarisprogrammeerimisega tegeleda. See annab meile võimaluse töötada kodust mitte ainult praeguses koroonaviiruse olukorras, aga ka näiteks siis, kui ei taha ootamatult tekkinud nohu teistega jagada, aga haiguspäeva võtmine tundub liialdus.


Solutional on agiilne tarkvaraarenduse ettevõte professionaalsete inseneridega, kes suudavad lahendada teie 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.