Nem bízol a kollégáidban? Akkor valamit rosszul csinálsz!
Hányszor, de hányszor láttam már a fenti klisét leírva különféle mindenttudó megmondóemberektől. #rant
Először is, a kijelentés túl általános, emiatt pedig rendkívül toxikus. Elülteti benned a kételyt, hogy micsoda egy alak vagy, hogy nem bízol a kollégáidban és minden lépésnél megkérdőjelezed magadat, amikor a munkájukat értékelned kell. Hiszen ha bízol bennük, akkor minden, amit csinálnak, megbízható, ugye? Nyilvánvaló, hogy így leírva már te sem érzed igaznak és pontosan ezért túl pongyola az eredeti megfolgamazás. Ugyanis nagyon fontos elválasztani a bizalmat a kollégáid szándékában és a bizalmat a kollégáid munkájának eredményében.
A pozícióm jelentős részét teszi ki a csapattagok különféle szempontok szerinti értékelése. A leghétköznapibb példa a code review, azaz, hogy a kód, amit csináltak, megfelel-e bizonyos technikai, formális és architektúrális kritériumoknak, amik a projektben le vannak fektetve. Nem sok kétségem affelől, hogy szándékuk a tökéletes kód létrehozása (már csak a saját érdekükből is), de a végeredményt sok másik tényező is befolyásolja. Hogy mást ne mondjak, ismerik-e egyáltalán a kritériumokat? Nem felejtették-e el valamelyiket? Esetleg figyelmetlenek voltak, mert pont csöngetett a futár? Mennyi ideje vannak a projekten, 1 hónap vagy 5 év? Milyen senioritási szinten vannak?
Egyértelmű, hogy egy junior kolléga nem olyan minőségben fog kontributálni az első perctől, mint egy 5 éve a projekten lévő senior. Bízom mindkettőben, hogy jól akarnak dolgozni? Igen. Bízom abban, hogy az eredmény elsőre megfelelő? Egyértelműen nem. Hogy őszinte legyek, abban sem bízom, hogy a saját kódom elsőre jól sikerül (mert hányszor megtanultam már, hogy nem), ezért alkalmazok mindenféle módszert arra, hogy csupán a saját munkám megbízhatóságát növeljem. És pontosan ugyanezt teszem a kollégáim munkájával is.
Miért rugózom pont ezen? Átlépte a ingerküszöbömet azon cikkek száma, amik azt sugallják, hogy semmi szükség code reviewra egy szoftverfejlesztési projekten, hiszen ha megbízol a kollégáidban, akkor minden tökéletes lesz, ha meg nem bízol, akkor meg miféle semmirekellő vagy. Ennek több szempontból is nagyon rossz hatása van, azon kívül, hogy fölöslegesen bűntudatkeltő. Kétlem, hogy valaki nem hallotta még a "több szem többet lát", vagy a "szűz szemmel néz rá" kifejezéseket, mindkettőnek megfigyelt, pozitív hozadéka van. Kevésbé tapasztalt fejlesztők, akár a hibázástól való félelem miatt sokkal bátortalanabbul, szükségtelenül sok időt töltve jutnának el csak a feladatuk végéig, mert a vállukon lenne a teher, hogy amit csinálnak, az jövő héten megy élesbe és senki nem nézi át előtte.
Úgyhogy, ha valaki még nem bontotta ki jobban, mit jelent "bízni a kollégákban", annak javaslom legalább e kettő dolog szétválasztását: szándék és eredmény, hiszen a kettő gyakran nincs összhangban. Nem gondolom, hogy bárki rossz ember lenne attól, hogy felülvizsgálja akár alkalmanként, akár rutinszerűen a kollégák által lerakott munkát. Ha valaki stabilan szinten- vagy afölött teljesít, természetszerűleg fog kevesebb ilyen figyelmet kapni, de ez nem alapvetés és leginkább nem az első perctől van így.
(Igen, tudok a pair/mob programming módszerről is, ami akkor remek, ha lehet szinkronban dolgozni és a résztvevők ezzel kompatibilisek.)