Az előző bekezdésemben írtam a code review konfliktusomról:
Egy egyszerű merge request, egy ártatlannak tűnő logikai javítás, amit hosszú órákon át küzdöttem ki magamból – egy valós szabályra, egy dokumentált üzleti követelményre, amit meg is indokoltam, le is teszteltem.
És jött a német kolléga. Hangos volt. Elutasító. Nem kérdezett vissza – csak kimondta: „I cannot approve. You just implemented examples, not the rule.”
Aztán jött az egyetlen mondata, az “igazi megoldás”: egyetlen string-manipulációs sor, amit ő jónak ítélt, de amit a meglévő unit tesztek már azonnal cáfoltak.
Én próbáltam párbeszédet. Higgadt maradtam. Elmondtam, hogy ez nem így működik.
Hogy a logika komplexebb.
Hogy az edge case-ek fontosak.
Hogy már létezik egy működő, tesztelt megoldás.De nem hatott. A válasz annyi volt:
„Then ask somebody else for the approval. I won’t approve it.”
És itt valami bennem eltört. Nem csak a pull request –
hanem a bizalom abban, hogy szakmailag lehet egymást érteni.
Ezt sikerült nekik makacs hallgatással a főnökség felé eszkalálni: húsvét utánra, ápr.24-re kaptam egy meeting meghívót: “How can we improve situation (with code review)?” címmel. Rettenetesen elegánsan csinálták, éppen szabadságon voltam, amikor érkezett a meghívó és csak a természetes paranoiám miatt – pont a hasonló “haslövéseket” elkerülendő – nézek mindig céges levelezést szabadságom alatt is egyszer-egyszer. Sikerült felkészülnöm a meetingre. Tényleg azt hittem, hogy logikával megoldható a helyzet.
Szóval: 2025. április 24-én részt vettem egy megbeszélésen, ahol négyen ültek velem szemben: a vezetőm, a közvetett felettesem, valamint két német kolléga, akik közül az egyik reviewerként három hete blokkolta a merge requestemet. Nem mondta ki, hogy nem jó a kód. Azt sem, hogy jó. Csak annyit: „Then ask someone else for approval. I won’t approve it.”
Később ez a mondat már el sem hangzott a jegyzetben, amit a meetingről készítettek. Ott már én tűntem konfliktusosnak, mert visszakérdeztem, jeleztem, hogy a munkám elakadt, és hogy ez a hozzáállás nem korrekt. A másik reviewer nem hagyta jóvá a munkát, mondván, Christoph előbb rá akar nézni. Christoph viszont nem nézett rá.
A helyzetet kétféleképpen elemeztük (hogy finoman fejezzem ki azt, hogy hazudtak a hivatalos jegyzőkönyvben):
Ez a hivatalosnak szánt céges jegyzőkönyv magyar fordítása:
Helló
Köszönöm az eszmecserét.
Feljegyeztem néhány pontot abból, amit megbeszéltünk és amiben megállapodtunk:
A helyzet leírása …
Christoph:
Az együttműködés ötlete jó,
eltérő vélemények vannak, nincs közös megértés,
mivel nem jutottunk közös álláspontra, Adminnak harmadik személyhez kellett volna fordulnia code review ügyben,
még ha működik is a kód, volt benne néhány furcsa megoldás,
tapasztalt vagyok code review-ban, és szeretek új nézőpontokat megismerni,
a tickettekben szereplő „szabályok” nem szabályok voltak, csak üzleti példák. Admin ezeket a példákat implementálta, ezért nem volt megfelelő a code review szempontjából.
Marcel:
Adminnak nehézséget okoz megérteni, miért úgy csinálunk dolgokat, ahogy,
nem érti, hogyan működik az inputpile és hasonlók,
Admin módosítja a kódot, de annak úgy kell maradnia, mert történeti/üzleti okai vannak,
probléma a távolság is, és a mélyebb megértés hiánya,
ötlet: kezdjük a teszteléssel,
a kontextusváltás időigényes.
Admin:
A helyzet nehéz,
stresszes helyzet,
implementáltam a követelményeket, unit teszteket is írtam,
a code review három hétig tartott,
a merge-em blokkolva volt,
miután Christoph és Marcel nem hagyták jóvá a kódot → három visszajelzési kör következett Michaellel,
most minden kész, minden visszajelzés beépítve,
ez az egész tiszteletlennek és nem együttműködőnek érződik.
A Team helyzete:
Nincs refinement,
nincs elfogadási kritérium,
csak sprint planning van, és tikettek, amiket meg kell csinálni,
nincs időnk,
nincs Scrum Masterünk, kevés a PO kapacitás, túl sok ember van a Teamben,
munkaerőhiány van, túl sok a téma,
Christoph és Marcel nem mindig érhetők el, hogy segítséget nyújtsanak.
Mit tehetünk?
A kommunikáció javítása.
Kérések:
Admin kérdezzen korábban, ha probléma van, vagy ha nem érti a feladatot,
próbálja megérteni a többi fejlesztő nézőpontját és helyzetét.
Admin:
Nem világos, mit kellene csinálnom,
jobb dokumentáció kellene arról, mit csinálnak a német kollégák.
Közös megértés:
A probléma nem a kódban van – túl sok eszközt használunk, ráadásul ezek nem naprakészek (néha csak valakinek a fejében léteznek),
senki nem látja át teljesen az üzleti komponensek működését – mindenki a maga tudását próbálja beilleszteni,
senkinek sincs teljes AMK-tudása, így nagyon nehéz a munkavégzés, ha változtatni kell valamin.
Amit javítani kell:
JIRA / eszközhasználat:
A JIRA ticketeknek meg kell felelniük a DOR-nak (beleértve az elfogadási kritériumokat és az érthetőséget),
a retrospektívák inkább belső, csapaton belül megoldható témákra fókuszáljanak,
a Scrum eseményeket használjuk a ticketek és a munka tisztázására.
Beszéljünk újra 3-4 hét múlva, hogy visszatekintsünk a helyzetre.
Üdvözlettel:
Antje
Ez pedig kontextusba helyezve a hazugságokat:
Szia Antje,
Még egyszer köszönöm, hogy összefoglaltad a megbeszélésünket, és hogy megszervezted a beszélgetést.
Szeretnék néhány pontot tisztázni – nem vitaindításként, hanem azért, hogy a hozzájárulásom pontosan tükröződjön, és hogy a jövőben elkerülhessük a félreértéseket. Egyes megjegyzések olyan benyomást keltenek, mintha olyasmit mondtam volna, amit nem, vagy amit könnyű félreérteni a teljes kontextus ismerete nélkül.
1. Marcel megjegyzései:
„Adminnak nehéz megértenie, miért úgy csináljuk a dolgokat”
„Nem érti, hogyan működik az inputpile”
„Admin módosítja a kódot, de annak úgy kell maradnia történeti/üzleti okok miatt”Úgy érzem, ez félrevezető képet ad rólam. Soha nem kérdőjeleztem meg az üzleti logikát, és nem hagytam figyelmen kívül a történeti megkötéseket sem – a kérdésem egy konkrét technikai javaslatra vonatkozott, amely nem ment át az egységteszteken, és nem fedte le a jegyzetben leírt edge case-eket.
A kért logikát implementáltam, teljes dokumentációval és teljes tesztlefedettséggel. Ha az én megoldásom eltért a régi mintáktól, az azért volt, mert friss Java-standardokat alkalmaztam egy megbízhatóbb és könnyebben karbantartható megoldás érdekében.
Fontos: nem a domain-környezet okoz problémát számomra. A valódi kihívás az, hogy a szükséges háttértudás nagy része nincs dokumentálva, vagy csak néhány kolléga fejében létezik. Ha ezek az információk elérhetőbbek lennének, önállóbban tudnék dolgozni, és kevesebb lenne a félrecsúszás.
2. Christoph visszajelzése:
„Mivel nem született közös álláspont, Adminnak harmadik személyhez kellett volna fordulnia”
Csak a tisztázás kedvéért: én voltam az, aki végül Silkéhez fordult, miután három héten keresztül próbáltam lezárni a review-t. Ez csak azután történt, hogy minden visszajelzést implementáltam, és Christoph a következő végső állítást tette:
„Akkor kérj valaki mástól jóváhagyást. Én nem fogom jóváhagyni.”
„Volt benne néhány furcsa kódrész”
Szeretném kérni, hogy kerüljük a homályos vagy szubjektív megfogalmazásokat, mint például a „furcsa”. A kód működött, minden tesztet teljesített, és a specifikált logikát követte. Nem volt kockázatos vagy instabil – csupán modernebb volt, mint a környező legacy kód.
3. „Nem tudom, mit kellene csinálnom”
Ez az idézet tőlem szerepelt a jegyzetben – de ez egy hosszabb, stresszes beszélgetés végén hangzott el, és szeretném pontosítani, mit értettem alatta.
Ez nem tehetetlenséget jelentett. Azt akartam kifejezni:
„Egy olyan helyzetben, amikor minden visszajelzést beépítettem, de még mindig nincs jóváhagyás – nem tudom, mi mást tehetnék.”
Ez tehát a folyamat strukturális bizonytalanságáról szólt, nem pedig a technikai tudásomról vagy a hajlandóságomról.4. Az én tényleges megjegyzéseim a dokumentációról és a review céljáról:
Azt mondtam:
„Szeretném, ha a csapatok betartanák azt, amiben tavaly nyáron megállapodtunk – hogy a code review célja a biztonság és a rendszer integritása, nem pedig a fejlesztők tudásának tesztelése.”
„Sok tudás csak az emberek fejében létezik. Ha ez az információ eljut hozzám, önállóan tudok dolgozni, és elkerülhetők a problémák.”Ez más, mint azt mondani, hogy „jobb dokumentáció kell arról, mit csinálnak a német kollégák” – az én állításom a transzparencia és a közös tudásmegosztás fontosságáról szólt.
Még egyszer köszönöm, hogy koordináltad a megbeszélést, és hogy mindenki álláspontját igyekeztél rögzíteni. Csupán szerettem volna biztosítani, hogy az én hozzájárulásom pontosan és építő szándékkal jelenjen meg.
Üdvözlettel:
Admin
A vezetőm, Norbert végig hallgatott. A végén csak annyit mondott: „Maybe you have problem with the attitude.” Tudtam, hogy ez nem csak technikai értékelés volt. Ez pozicionálás. Jelzés: mi nem tartunk közétek valónak.
A csend beszédes volt. És volt, aki támogathatott volna, de inkább kivárt. Péter például – aki hónapokon át napi szinten írogatott nekem Teamsen, refaktorálást próbált kiosztani úgy, hogy sem PO, sem Scrum Master nem volt – most nem szólt. Korábban azt mondta, együtt csináljuk. Most nem volt együtt.
Ápr.28-ára megbetegedtem: sok volt már ez testileg és szellemileg is kikészültem. Máj. 7-ig betegszabadságon voltam.
Silke napokkal később, még a betegszabadságom alatt a csapatcsatornán nyilvánosan posztolta a státuszomat. Hogy betegszabadságon vagyok. Nem privát üzenet. Nem HR-es formában. Közszemlére. Nem láttam még ilyet.
Nem voltak üvöltések. Nem voltak fenyegetések. Csak finom átlépések, csendes figyelmeztetések, megtagadott jóváhagyások. Egy projekt, amely három hétig In Code Review státuszban áll. Egy szó nélkül maradt csapat, ahol három új kolléga egymást erősíti, én meg egyedüli magyarként csak a saját meggyőződésemre támaszkodhatok.
Nem maradok örökre. De most még maradok. Egy darabig. Addig túlélő üzemmódban vagyok. Dokumentálok, jegyzetelek, tanulok – nem a kód miatt, hanem hogy legközelebb már ne így érjen.
Ez nem vereség. Ez tanúságtétel. Azt mutatja, hogyan nem szabad embereket kezelni. És azt is, hogy még mindig van, aki leírja.
Nem várom, hogy kivételezzenek velem.
De fejlesztő vagyok.
Dolgozni jöttem – nem tűnni el a sorok között. Mindig eszembe jut, amikor eljutunk ide az a bizonyos Márai vers.
Márai Sándor: Olyan világ jön,
amikor mindenki gyanús, aki szép.
És aki tehetséges.
És akinek jelleme van…
A szépség inzultus lesz.
A tehetség provokáció.
És a jellem merénylet!…
Mert most ők jönnek…
A rútak.
A tehetségtelenek.
A jellemtelenek.
És leöntik vitriollal a szépet.
Bemázolják szurokkal és rágalommal a tehetséget.
Szíven döfik azt, akinek jelleme van.
What do you think?
Show comments / Leave a comment