1.6 Csapatmunka és konfliktuskezelés junior szemszögből
Áttekintő
Junior fejlesztőként az egyik legnehezebb helyzet nem az, amikor nem tudod a választ egy technikai kérdésre – hanem amikor nem értesz egyet valamivel, de nem tudod, hogyan kezeld. Konfliktus nem csak „veszekedést" jelent: egy eltérő vélemény, egy ellopott ötlet érzése, vagy egy döntés, amellyel nem azonosulasz – ezek mind konfliktusszituációk. Ez az alfejezet arról szól, hogyan navigálj ezeken junior fejlesztőként úgy, hogy ne te legyél a vesztes, de ne is égesd el a kapcsolataidat.
Részletes leírás
Disagree and commit – az egyik legfontosabb munkahelyi elv
Képzeld el: a senior fejlesztő azt javasolja, hogy a cache-t Redis helyett memóriában tároljátok. Te tudod, hogy ez skálázási problémákat fog okozni. Mondod is. Ő meghallgat, de fenntartja a döntését.
Mit csinálsz?
A legtöbb junior két hibát követ el:
- Passzív elfogadás: Bólint, de belsőleg ellenáll, és nem dolgozik lelkesen a feladaton.
- Túlzott ragaszkodás: Ismételten felhoz ugyanolyan érveket, „én megmondtam" alapon, esetleg másokat is bevonja.
A helyes válasz: Disagree and commit.
Ez azt jelenti:
- Elmondod az aggályaidat (egyszer, érthetően, érvekkel)
- Ha a döntés marad, elfogadod és teljes energiával végrehajtod
- Nem szájbarágod azt, hogy „látod, megmondtam volt", ha bejön a probléma
Miért fontos ez?
Mert a csapat csak akkor tud gyorsan haladni, ha a döntések után mindenki ugyanabba az irányba húz. A vélemény elmondása a te jogod és kötelességed. A döntés végrehajtása – ha meghozták – szintén a te kötelességed.
Fontos árnyalat: Ez nem jelenti azt, hogy minden esetben fel kell adnod. Ha a döntés etikailag problémás, jogszerűtlen, vagy komoly biztonsági kockázatot jelent – akkor más eszközök kellenek (jelzés a teamleadnek, HR-nek). A „disagree and commit" technikaigazságokra, nem erkölcsi kérdésekre vonatkozik.
Hogyan mondj el egy eltérő véleményt
A nyers „szerintem ez rossz" nem fog jól fogadni. Van egy jobb sablon:
1. Kérdezd meg, nem állítsd
Nem: „Ez nem fog működni, mert..."
Hanem: „Átgondoltam a megközelítést. Felmerül bennem a kérdés: mi történik, ha X szituáció adódik?"
Ez nem álszent diplomácia – ez tényleg jobb kommunikáció. A kérdő forma megnyitja a párbeszédet ahelyett, hogy lezárná.
2. Konkrét kockázatot mutass, ne általános véleményt
Nem: „Szerintem a memória-alapú cache nem jó ötlet."
Hanem: „Ha két szerver fut párhuzamosan, az in-memory cache nem lesz szinkronban köztük. Ez azt jelentheti, hogy felhasználók különböző adatot látnak. Megoldható ez a jelenlegi architektúrában?"
3. Adj egy alternatívát, ha van
„Én Redis-t használnék erre, mert az megosztott az instancek között. Persze ez plusz infrastruktúra, szóval értem, ha ezt most nem akarjuk bevállalni."
4. Fogadd el a döntést, ha nem változott
Egy mondattal jelezd: „Rendben, megértem az okait. Akkor csinálom a memória-alapú megoldást." – és dolgozz rajta úgy, mintha a te ötleted lett volna.
Mi van, ha az ötletedet valaki „elveszi"?
Ez az egyik leggyakoribb junior frustráció. Javasolsz valamit egy megbeszélésen, nem reagálnak – aztán egy senior ugyanezt mondja el két nappal később, és mindenki lelkesedik.
Először vizsgáld meg, mi történhetett ténylegesen:
- Tényleg ellopták? (Szándékosan ritkább, mint hinnéd)
- Nem hallották / nem értették meg, amit mondtál?
- A senior más kontextussal, más hangerővel mondta ugyanazt?
Ha tényleg az a benyomásod, hogy nem kapott figyelmet az ötleted:
Írd le a következő alkalomra. Képesítsd magad: „Múlt héten megemlítettem, hogy…" – ezt nem arroganciaként, hanem pozicionálásként értsd. Nem azért, hogy másokat megégess, hanem hogy a neved összekapcsolódjon a gondolattal.
Ha valaki tényleg, szándékosan veszi el az ötletedet:
Ez már interperszonális konfliktus, és nehezebb. Az első lépés: négyszemközt, nem nyilvánosan. „Észrevettem, hogy a megbeszélésen az X javaslatot te adtad elő – ezt mi alapján csináltad? Szerettem volna én prezentálni." – Calm, kíváncsi, nem vádaskodó.
Technikai vita vs. személyes konfliktus – ismerj rá a különbségre
| Technikai vita | Személyes konfliktus |
|---|---|
| „Szerintem a REST helyett GraphQL lenne jobb ide" | „Mindig ignorálnak a meetingeken" |
| „Ez a kód nehezen olvasható" | „Úgy érzem, nem bíznak bennem" |
| „Ez a megközelítés lassabb lesz" | „Ez a kolléga nem tisztel engem" |
Technikai vitákat tény alapján döntsd el. Legyen benchmark, legyen dokumentáció, legyen proof of concept – de ne érzelmek.
Személyes konfliktusokat ne hagyd felgyűlni. Ha valami rendszeres baj (pl. állandóan közbevágnak, nem kapod meg az infót amire szükséged van, valaki következetesen negligál), ezt jelezni kell – de privátban, közvetlenül az illetőnek, vagy ha az nem működik, a teamleadnek.
Mikor szólj, mikor engedj?
Ez az egyik legnehezebb munkahelyi döntés junior fejlesztőként. Íme egy egyszerű szűrő:
Szólj, ha:
- Olyan kockázatot látsz, amelyet valószínűleg nem láttak
- A kérdés biztonsági vagy adatvédelmi vonatkozású
- Van konkrét, tényeken alapuló érvd (nem csak érzés)
- Az egész csapatot érinti hosszú távon
Engedj, ha:
- Nem racionális érveid vannak, csak preferenciád
- Már meghozták a döntést, és megismétled az érveket
- A kérdés ízlés/stílus (pl. naming konvenció), nem helyes/helytelen
- Kipróbálhatjuk, visszavonhatjuk – nincs nagy tét
Általános ökölszabály junior fejlesztőknek:
Az első 3–6 hónapban hallgass és tanulj többet, mint amennyit javasolsz. Ez nem meghunyászkodás – ez tapasztalatgyűjtés. Ahogy egyre jobban ismered a codebase-t, a csapatot és a kontextust, úgy lesz egyre nagyobb súlya a szavaidnak.
Hogyan működj együtt, ha nem kedveled az egyik kollégád?
Nem kell minden munkatársadat szeretni. Ezt fontos idejében elfogadni.
Amit meg kell tartanod:
- Szakmai tisztelet (nem személyes szimpátia)
- Elvárásoknak megfelelő kommunikáció (válasz a kérdéseire, info átadása)
- Feladatok elvégzése a közös projekten
Amit nem kell megtenned:
- Barátkozni olyannal, akivel nem akarsz
- Elnyomni a véleményedet csak azért, mert nem kedveled egymást (ez pont a szubjektív ellentéte: itt is add elő az érveidet)
Ha valaki szakmailag nehéz (pl. soha nem reagál Slacken, blokkol téged), ez csapatszintű probléma, és jelzés a teamleadnek a megfelelő megközelítés.
Életszerű példák
Példa 1: A döntés, amivel nem értesz egyet
Szituáció: A csapat úgy dönt, hogy nem írnak unit teszteket az adott featurehez, mert nincs rá idő. Te úgy gondolod, hogy ez kockázatos.
Rossz reakció: Elmondod az aggályaidat, a lead nem változtat a döntésen, te pedig hangosan morgolódsz a többi junior előtt, és a PR-odban nem írsz teszteket, de kommentben megjegyzed: „tesztelés kihagyva – nem az én döntésem volt."
Jó reakció: Elmondod az aggályaidat egyszer, érthetően. Ha marad a döntés: „Rendben. Ha a következő iterációban időnk van, javasoltam, hogy akkor pótoljuk." – Ezzel elülteted a magot visszatérésre, de nem blokkolod a munkát.
Példa 2: Az ellopott ötlet
Szituáció: Standupban javaslod, hogy a hibás API kéréseket naplózzuk egy külön táblába. Senki nem reagál. Két nappal később a senior ugyanezt javasolja, mindenki lelkesedik, és jóváhagyják.
Rossz reakció: Nyilvánosan szólsz: „Én ezt már két napja javasoltam." Ezzel mindenki kényelmetlenül érzi magát, és úgy tűnik, mintha elismerést vadásznál.
Jó reakció: Privátban odamész a seniorhoz: „Örülök, hogy a napló-ötlet tetszik – én is ugyanerre gondoltam pár napja. Esetleg én is dolgozhatnék rajta?" – Ez profiling (bekapcsolódsz), nem vádaskodás.
Példa 3: Véleménykülönbség code review-ban
Szituáció: Senior kolléga kommentel a PR-odra: „Ez a megközelítés rossz, csinálj inkább XY-t." – Nem értesz egyet, és szerinted a te megoldásod jobb bizonyos esetekben.
Rossz reakció: Visszakommenteled: „Szerintem az enyém is jó." – és ott marad ez a párbeszéd, megoldás nélkül.
Jó reakció: „Megértem a szempontod. Az én megközelítésem esetén a következő előnye van: [...]. Ha XY az elvárás a csapatban, változtatok – de ha nincs explicit iránymutatás, megkérdezném, mi a preferált mód." – Ez kérdés, nem vitaindítás.
Tesztfeladatok
1. feladat – Fogalom értelmezése
Mit jelent a „disagree and commit" elv a gyakorlatban?
a) Ha nem értesz egyet valamivel, csöndben tiltakozz
b) Mondd el az aggályaidat, majd fogadd el és hajtsd végre a meghozott döntést teljes elköteleződéssel
c) Ha döntöttek, nem szólhatsz hozzá többet soha
d) Csak akkor commit, ha te is döntötted
(Helyes válasz: b)
2. feladat – Szituáció azonosítása
Egy megbeszélésen te javasoltál egy megközelítést, de a senior egy másikat választott. Mit teszel?
a) Elmondod az összes aggályodat még egyszer, erőteljesebben
b) Elvégzed a feladatot a senior megközelítésével, de PR-ban megjegyzed, hogy te mást preferálnál
c) Elfogadod a döntést, elvégzed a feladatot lelkiismeretesen, és ha van jövőbeli javítási lehetőség, azt akkor hozod fel
d) Nem szólsz semmit, de lassan dolgozol a feladaton, hogy bizonyítsd, milyen rossz volt a döntés
(Helyes válasz: c)
3. feladat – Technikai vita vs. személyes konfliktus
Sorold be az alábbi szituációkat a megfelelő kategóriába:
| Szituáció | Kategória |
|---|---|
| „A senior mindig közbevág, ha én szólok a megbeszélésen" | ? |
| „Szerintem az ORM lekérdezés lassabb lesz, mint a raw SQL ebben az esetben" | ? |
| „Úgy érzem, a csapatban nem veszik komolyan a kérdéseimet" | ? |
| „A feature branch névkonvenció eltér attól, amit a csapat korábban használt" | ? |
(Technikai vita: 2. és 4. | Személyes konfliktus: 1. és 3.)
4. feladat – Válasz megfogalmazása
Egy senior ezt kommenteli a PR-odra: „Ez teljesen helytelen megközelítés. Írd át."
Fogalmazz meg egy rövid, professzionális választ, amely:
- Nem sértődős
- Megkérdezi az okát
- Nyitott a változtatásra, de nem ad fel kontextus nélkül
(Mintaválasz: „Köszönöm a visszajelzést. Segítenél megérteni, mi a konkrét aggályod a jelenlegi megközelítéssel? Szívesen átírom, ha látom, melyik részét tartod problémásnak.")
5. feladat – Igaz vagy hamis
Jelöld meg, melyik állítás igaz és melyik hamis.
| Állítás | Igaz / Hamis |
|---|---|
| Junior fejlesztőként ne mondj soha ellent a seniornak | ? |
| A vélemény elmondása és a döntés elfogadása nem zárják ki egymást | ? |
| Ha valaki ellopja az ötletedet, publikusan kell konfrontálni | ? |
| Az első 3-6 hónapban több figyelmet kell fordítani a tanulásra, mint a javaslattételre | ? |
| A technikai viták akkor a legjobb esetben, ha tény-alapon dönti el a csapat | ? |
(Hamis / Igaz / Hamis / Igaz / Igaz)
6. feladat – Szituációs döntés
Egy junior fejlesztő vagy. Az egyik kolléga rendszeresen nem adja át neked a szükséges technikai infókat – ez lassítja a munkádat. Mit teszel?
a) Megvárod, hátha magától javul
b) Nyilvánosan a csapat Slack-csatornájában panaszolod el
c) Privátban szólsz neki közvetlenül: „Észreveszem, hogy nem kapom meg időben az X infót – segítenél megoldani ezt?"
d) Azonnal a teamleadhez fordulsz
(Helyes válasz: c – ha nem működik, utána d)
7. feladat – Mikor szólj, mikor engedj?
Az alábbi szituációkban döntsd el: szólj-e, vagy engedj?
| Szituáció | Szólj / Engedj |
|---|---|
| A csapat dönt a változónevekről, te más stílust preferálsz, de a kód működik | ? |
| Egy API endpoint nem validálja az inputot, ami SQL injection kockázatot jelent | ? |
| Már kétszer elmondtad a véleményedet egy döntésről, de a lead nem változtatott | ? |
| Biztosan tudod, hogy az adott cache-stratégia race condition-t okoz, de senki más nem hozta fel | ? |
(Engedj / Szólj / Engedj / Szólj)