
Ljudska strana saradnje u razvoju softvera
Kôd je fosil razgovora koji ga je stvorio. Evo šta saradnja u razvoju softvera zaista traži od ljudi koji rade taj posao.
Sadržaj
- Psihološka sigurnost dolazi prva
- Pisana komunikacija se lakše širi
- Mali timovi se bolje dogovaraju
- Pregled koda otkriva kulturu
- Neslaganje je zdravo
- Zajednički kontekst je dio posla
- Miješajte struke
- Rad na daljinu traži namjeran trud
- Pišite za tim koji dolazi kasnije
- Slavite saradnju javno
- Navike su jače od alata
- Kako mi radimo
- Završne misli
Saradnja u razvoju softvera je duboko ljudski zanat, a ne problem alata. Ono što ostaje iza nas, dakle kôd, fajlovi dizajna i istorija komitova, samo su fosili razgovora koji su ih stvorili. Kada ti razgovori idu dobro, sistem odražava zajedničku prosudbu. Kada idu loše, isti sistem krije stari sukob pod imenom tehnički dug.
Ovaj tekst pokriva ljudsku stranu razvoja softvera koju tehnički udžbenici obično preskaču. Mi smo mali tim, pa se svaka slaba tačka u saradnji vidi vrlo brzo. Ispod je deset navika koje preživljavaju pravi pritisak.
Psihološka sigurnost dolazi prva
Dobra saradnja u razvoju softvera počinje od psihološke sigurnosti. Inženjer koji očekuje oštar odgovor polako prestaje da pita. Male sumnje tada narastu u skupe greške koje niko nije vidio na vrijeme.
Zdravi timovi molbu „objasni mi ovaj modul“ tretiraju kao sasvim običnu. Pošto ton postavlja tehnički vođa, on mora krenuti prvi. Vođa koji javno prizna svoje praznine uči ostale da radoznalost nema cijenu. Pogledajte istraživanja o psihološkoj sigurnosti za dokaze iza ove tvrdnje.
Pisana komunikacija se lakše širi
Pisanje je ono što timu omogućava da raste. Razgovor je brz, ali ne ostavlja trag. Sastanak takođe isključuje svakoga ko je u nezgodnoj vremenskoj zoni.
Pisani materijal putuje mnogo dalje, recimo dizajn dokumenti, bilješke uz pull request i kratki zapisi odluka. Do novog kolege stiže i mjesecima kasnije. Osim toga, zapisan argument tjera na oštrije razmišljanje nego izgovoren. Ako se plan opire jednoj pisanoj strani, taj plan još ne postoji.
Mali timovi se bolje dogovaraju
Iznad otprilike osam ljudi, cijena razgovora raste brže od učinka. Svaki novi par dodaje još jednu vezu koju treba održavati. Zato se najjača saradnja u razvoju softvera dešava u grupama od tri do sedam inženjera sa jednim ciljem.
Kada grupa mora da raste, podijelite je namjerno. Dajte svakoj polovini jasnu granicu i mali, stabilan interfejs između njih. To je bolje od jedne pretrpane sobe. Bruksov zakon je istu stvar rekao još 1975. godine.
Pregled koda otkriva kulturu
Pregled koda je mjesto gdje saradnja ili cvjeta ili trune. Pregledi koji ulaze u kompromise dizajna, granične slučajeve i maglovita imena jačaju tim. Pregledi koji se svađaju oko ličnog stila samo rađaju odbrambeni stav.
Zato postavite jasne norme pregleda. Odvojite „mora se promijeniti“ od „razmisli o promjeni“. Zahvalite se na zakrpi koja vas je nečemu naučila. Objavljeno Guglovo uputstvo za pregled koda je razumna osnova za kopiranje. Za tešku izmjenu, dvadeset minuta rada u paru obično pobijedi tri kruga komentara.
Neslaganje je zdravo
Tim koji se slaže oko svega je ili nezainteresovan ili uplašen. Nijedno stanje ne isporučuje pouzdan softver. Jaki timovi dobro obrazložen prigovor smatraju vrijednim, jer on obično imenuje rizik koji niko drugi nije vidio.
Zato dajte neslaganju mjesto da živi. Zapišite prigovor, ispitajte ga kako treba, pa neka tehnički vođa odluči. Poslije toga se cijeli tim obavezuje zajedno. Ta posljednja dužnost vrijedi koliko i rasprava prije nje.
Zajednički kontekst je dio posla
Talentovan novajlija bez konteksta donosi malo, ma koliko bio sposoban. Ozbiljni timovi ulažu u prve nedjelje. Prvo, uparite novajliju sa iskusnim inženjerom. Zatim mu dajte mali i siguran zadatak, prije nego što u priču uđu produkcioni sistemi.
Vodite bilješke koje objašnjavaju zašto arhitektura izgleda ovako, a ne samo šta radi. Obrazloženje je ono što sljedećem čitaocu štedi pola dana. Ukratko, kontekst nije ljubaznost. On je dio inženjerskog posla.
Miješajte struke
Saradnja u razvoju softvera naglo se popravi kada dizajn, proizvod i inženjering sjede u jednoj grupi. Predaje između silosa gube detalje, a zajedničko vlasništvo ih ne gubi. Na primjer, dizajner koji čita pull requestove primijeti da build skreće sa dogovorene makete. Isto tako, inženjer koji sjedi na razgovoru sa korisnikom nauči nezgodne slučajeve prije prve linije koda. Naša stranica za karijeru opisuje kakve ljude tražimo.
Rad na daljinu traži namjeran trud
Udaljeni tim odriče se besplatnih signala, kao što su podignuta obrva ili razgovor u hodniku. Ništa ih ne mijenja slučajno. Umjesto toga, kupujete ih namjerno: više pisanog konteksta, čvršći dnevni red i uključene kamere na pozivima koji su važni.
Rad na daljinu može biti odličan. Ipak, saradnja u razvoju softvera na daljinu radi samo kada tim prizna cijenu i plati je. Timovi koji se prave da je cijena nula polako se i tiho razilaze.
Pišite za tim koji dolazi kasnije
Inženjeri koji grade sistem rijetko ga održavaju tri godine kasnije. Zato pišite za čitaoca koga nikada nećete sresti. Komentari treba da objasne motiv, a ne mehaniku. Zabilježite kompromise iza svake velike arhitektonske odluke. I poruka komita može ispričati malu, korisnu priču.
Timovi koji ovo preskoče ostavljaju kôd koji se lijepo čita i opire se svakoj promjeni. Tu saradnja u razvoju softvera plaća najveći račun. Kazna stiže godinama kasnije, pa je niko ne poveže sa ranim izborom.
Slavite saradnju javno
Kultura se gradi kroz priče koje tim ponavlja. Poslije bolnog incidenta u produkciji, opišite kako se grupa oporavila. Imenujte ljude koji su radili posao. Isto tako, dijelite zaslugu široko kada neka funkcija obraduje korisnike.
Tih trud blijedi. Proslavljen trud se množi. To je najjeftinija poluga koju tehnički vođa ima.
Navike su jače od alata
Saradnja u razvoju softvera ne kupuje se licencom. Nijedna nova platforma ne popravlja tim koji ne vjeruje sebi. Aplikacija za ćaskanje ne može ubijediti uplašenog inženjera da progovori. Tabla puna tiketa ne može naučiti recenzenta da bude ljubazan.
Alati prije slijede ponašanje. Izaberite šačicu navika, imenujte ih i vraćajte im se na svakoj retrospektivi. Odbacite one koje prestanu da se isplate. Timovi koji tako rade stalno napreduju, što je tačno argument iz našeg teksta o kontinuiranom učenju u razvojnim timovima.
Kako mi radimo
Square Software je mali softverski tim u Albaniji. Gradimo softver po mjeri, a pridružujemo se i klijentskim timovima kao dodatne ruke. Naše cijene su u rasponu od 35 do 55 EUR na sat, a svaki posao pažljivo procijenimo prije ponude.
Mali tim čini ove navike jeftinim za sprovođenje i lakim za napuštanje. Zato više pišemo nego što pričamo, pregledamo svaku izmjenu i skraćujemo razmak između sumnje i odgovora. Pročitajte više o nama, vidite kako isporučujemo usluge autsorsinga ili nam se javite.
Završne misli
Alati će se i dalje mijenjati. Ljudski dio neće. Ukratko, saradnja u razvoju softvera je skup navika: sigurnost, jasno pisanje, male grupe, iskren pregled i podijeljena zasluga.
Ništa od toga nije meki trošak. Timovi koji to zanemare otkriju, nekoliko godina kasnije, da je učinak stao dok je kôd i dalje izgledao uredno. Za srodan argument pročitajte naš tekst o mekim vještinama za softverske inženjere.
Spremni da pokrenete svoj projekat?
Razgovarajmo o tome kako možemo pomoći da oživite svoje ideje uz softverska rješenja po mjeri.