Majdnem minden szoftverfejlesztő vagy programozó találkozott már más által írt kóddal, amely bizonyítja a “bárki tud kódolni” közhelyét. De találkoztál már az állítólag mitikus “10x fejlesztővel”? A 10x fejlesztőnek lenni kevesebb köze van ahhoz, hogy kiválóan tudunk kódot írni, és több köze van ahhoz, hogy pontosan tudjuk, milyen kódot kell írni.
Mi közülünk sokan egy bizonyos céllal kezdtünk el programozni. Én például azért kezdtem el kódot írni, hogy automatikusan lejátsszam magamnak a szöveges MUD-játékokat, amíg aludtam és iskolában voltam. Szkriptes gyerek voltam 13 évesen, és nem is tudtam róla. Elő tudtam állni egy ötlettel, meg tudtam írni a kódot, és ki tudtam tesztelni – mindezt egyedül.
A szoftverfejlesztés nehéz, ha valaki másnak csináljuk, mert gyakran hiányzik belőlünk ugyanaz a fajta motiváció és izgalom, ami akkor hajt minket, amikor a saját elképzelésünket követjük. Nem mi találjuk ki az ötleteket, órákat töltünk megbeszéléseken azzal, hogy megpróbáljuk megérteni őket, majd az idő nagy részét azzal töltjük, hogy valaki más kódját módosítjuk – vagy legalábbis hozzájárulunk hozzá. Ez olyan szintű távolságtartáshoz vezethet, ami csökkenti a termelékenységet.
Hogy 10x fejlesztővé válhassunk, meg kell tanulnunk kitűnni ebben a környezetben, vagy akár saját céget is alapíthatunk, hogy az élen járjunk.
Mindenki lehet 10x fejlesztő, legalábbis a nap egy részében, minden nap. Úgy vélem, hogy van három dolog, amire minden fejlesztőnek összpontosítania kell, hogy produktívabbá és jobb csapattaggá váljon.
A 3 dolog
Hogy 10x fejlesztővé válj, többéves tapasztalatra van szükséged, bármilyen programozási nyelvvel és eszközkészlettel dolgozol is. Jól kell tudnod problémákat megoldani és kódot írni; ez magától értetődő.
Fontos megértened, hogy nem az tesz téged 10x fejlesztővé, 10x mérnökké, 10x programozóvá, vagy bárhogy is akarod hívni, hogy hogyan írsz kódot.
Az 5 W-t ismered: “Ki, mit, hol, miért, mikor”. Bár ezek mind érvényesek a szoftverfejlesztésre, én arra a három jellemzőre szeretnék összpontosítani, amely meghatározza a 10x fejlesztőket. ez a három dolog különbözteti meg az átlagos fejlesztőt a 10x fejlesztőtől:
- Mi
- Miért
- Mikor
Tudja a mit
A vállalati világban a fejlesztők általában olyan projekteken dolgoznak, amelyekhez nem sok szenvedélyük van, és amelyeket nem értenek. A legtöbb fejlesztő számára ez nem jelent nagy problémát, amennyiben nagyon jó utasításokat kapnak, és az elvárások világosan meg vannak határozva.
A probléma az, hogy a fejlesztők általában nem kapnak megfelelő utasításokat. Ehelyett ezt az “agilis fejlesztésnek” nevezett dolgot használjuk. Kapunk egy Post-it-cetlit néhány szóval, és elvárják, hogy pontosan tudjuk, mit kell csinálni.
A szoftverfejlesztés a kommunikációról szól. A fejlesztőknek tudniuk kell, hogy min dolgozunk, milyen problémákat próbálunk megoldani, és hogy pontosan hogyan kell kinéznie az eredménynek. Minél többet tudunk előre, annál gyorsabban haladhatunk. A legfontosabb, hogy ismerjük a munka szándékát és azt, hogy mitől lesz sikeres a munka.
A rossz fejlesztők órákat töltenek azzal, hogy rossz irányba haladnak egy projekten anélkül, hogy kérdéseket tennének fel. Őket én -10x fejlesztőknek nevezem, mert semmit sem érnek el, és az összes munkatársuk idejét pazarolják. Szinte mindenki találkozott már néhány ilyen fejlesztővel, és frusztráló lehet mellettük dolgozni. És vigyázni kell, nehogy átvegyük a szokásaikat!
Néhány fejlesztő sok részlet nélkül is jól dolgozik. Nagyfokú kreativitást használnak, és felteszik a megfelelő kérdéseket. Ezek az egyszarvúak valószínűleg 10x fejlesztők. Tudják, hogyan kell kitalálni a dolgokat, és gyakran emelik a körülöttük dolgozó egész csapat szintjét.
A lényeg az, hogy a 10x fejlesztők igazán jók abban, hogy gyorsan meghatározzák, mit kell megvalósítani, és milyen kérdéseket kell feltenni.
A miért megértése
A szoftverfejlesztés talán legnagyobb akadálya a miért megértése. Ha nem érted a problémát, amit meg akarsz oldani, nagyon nehéz megoldani.
Miért hackeltem össze terminálszkripteket a MUD-játékomhoz, miközben aludtam és iskolában voltam? Természetesen a legmagasabb szintet akartam elérni a játékban. Pontosan tudtam, hogy miért, és mindent megtettem, amit csak tudtam, hogy ez megvalósuljon.
Ugyanez a megközelítés érvényes minden szoftverfejlesztési projektre. Azok a fejlesztők, akik értik az iparági vertikumot, amelyben dolgoznak, és a problémákat, amelyeket meg akarnak oldani, sokkal eredményesebbek lesznek. A miértek ismerete és a vertikum megértése segít megelőzni a felesleges munkát is, és időt szabadít fel arra, hogy azokra a dolgokra összpontosítson, amelyek a felhasználók számára értékesebbé teszik a terméket vagy a funkciót.
A probléma az, hogy a miértek ismerete nem elég jó. Szenvedélyesnek kell lenned a probléma iránt, és kívül-belül meg kell értened azt ahhoz, hogy valóban 10x fejlesztő legyél. Úgy vélem, hogy a legtöbb 10x fejlesztő a szíve mélyén termékember is, jó termékszemlélettel megáldva.
Tudni, hogy mikor mit kell tenni
A szoftverfejlesztési projekteknél fontos az időzítés. Annak kiválasztása, hogy milyen sorrendben dolgozzunk a backlogban lévő elemeken, látszólag egyszerű feladat, ami valójában kritikus. Olyasmin dolgozol, ami segíthet a cégednek egy új ügyfél megszerzésében, vagy a régi technikai adósságok eltüntetésében?
A fejlesztőcsapatoknak folyamatosan zsonglőrködniük kell, hogy min és mikor dolgozzunk.
Minden szoftverfejlesztési munkaelem a következő három kategóriába esik:
- Az, amit meg kell tennünk
- Az, amit meg kell tennünk
- Az, amit meg akarunk tenni
Egy új funkciót kell elkészítenünk egy ügyfél számára. Ki kell javítanunk a szoftverünkben lévő hibákat. Technikai adósságon vagy valamilyen klassz új termékfunkción szeretnénk dolgozni. Ez mindig egy egyensúlyozás.
Mindhárom vödörből egyidejűleg kell elvégeznünk a munkaelemeket. Nem tölthetjük minden időnket a technikai adóssággal, de talán az időnk egy kis százalékát erre kellene fordítanunk.
A fejlesztőknek azt is tudniuk kell, hogy mikor kell komplex architektúrákat építeniük a kódjukon belül. Én jobban szeretem a kódot a lehető legegyszerűbbnek tartani, amíg nem vagyok kénytelen olyan architektúrát hozzáadni, amely nélkül egyébként nem tudok élni.
A fejlesztőknek azt is tudniuk kell, hogy mikor kell elkerülniük a csillogó tárgyak hajszolását. Hajlamosak új eszközökkel és technológiákkal játszani, de ezek a megoldások inkább csak lelassítják a projektet, mintsem segítenének gyorsabban elkészülni vele.
A 10x fejlesztők jól tudnak zsonglőrködni a prioritásokkal, és megértik, mikor kell időt fektetni az architektúrákba, és mikor nem kell spagettikódot gyártani, hogy valami működjön. Ne feledd, a felhasználóidat nem érdekli, hogyan működik a szoftvered, vagy milyen csicsás az architektúra. Csak azt akarják, hogy működjön. A 10x fejlesztők ezt megértik.
A Mi, Miért & Mikor legyél 10x fejlesztő
Most beszéljünk arról, hogyan sajátíthatod el a Mi, Miért és Mikor fontos készségeit, hogy 10x fejlesztővé válj.
Kezd a Miértdel
A 10x fejlesztővé válás első lépése, hogy szenvedélyessé válj a szoftver és a megoldandó problémák iránt. Meg kell értened a problémát kívül-belül. Ez azzal kezdődik, hogy lelkesedj a vállalatért, amelynek dolgozol, és a vállalat küldetéséért.
Ne csak azért csinálj egy gombot, mert valaki azt mondta, hogy csináljon valamit. Törekedj arra, hogy magasabb szinten megértsd, miért. Sokkal értékesebb leszel a csapatod és a céged számára, ha továbbra is a miértre koncentrálsz.
Légy jó fejlesztő & Kiváló problémamegoldó, nem a legjobb programozó
Én inkább hacker-fejlesztőként jellemezném magam. Az a típus vagyok, aki össze tud dobni néhány ronda kódot, hogy szinte bármilyen problémát nagyon gyorsan megoldjon. A kódom ritkán szép, de működik. És ez az, ami számít.
Nem kell tökéletesen architektúrált kódot írnod unit tesztekkel ahhoz, hogy 10x fejlesztő legyél. Tudnod kell, hogy mikor és mikor nem kell ezeket a dolgokat csinálnod ahhoz, hogy 10x-es fejlesztő legyél.
A 10x-es fejlesztő jó abban, hogy konkrét problémákat oldjon meg, és az üzleti igényeket kóddal elégítse ki. A legokosabb dolog, amit tehetsz, hogy tudod, milyen messzire kell vinned egy projektet, mielőtt átadod valaki másnak, aki talán jobban tud véglegesíteni néhány architektúrát és egyéb apró részletet.
A mikor a zsigereidben van, vagy nincs
A tapasztalat és a pókérzéked fejlesztése révén tudod, mikor érdemes kiépíteni egy komplex architektúrát, szemben azzal, hogy valamit összedobsz. Vagy megvan ez a megérzésed, vagy nincs.
A legokosabb fejlesztők közül, akikkel valaha dolgoztam, néhányan a legrosszabbak voltak abban, hogy a mintákat és architektúrákat a funkcionalitás és az ütemezés elé helyezzék. Túl akarták tervezni és újra és újra átírni a dolgokat, és inkább a “tökéletes kódra” törekedtek, mint a “szállítható kódra”.”
A 10x fejlesztőknek a tapasztalatukat és a megérzéseiket kell használniuk, hogy tudják, mikor kell az architektúrára és a tökéletességre koncentrálni, és mikor nem a szarságokra.
Tudd, mit kell tenned és mit kell kérdezned
A szoftverfejlesztés nagy része a kommunikációs készségeken múlik. Sajnos a munkaelemekhez kapott jegyzetek és követelmények közül sokan nem túl részletesek. Egy 10x fejlesztő tudja, hogyan kell ezeket elolvasni, alkalmazni a “miértet”, amit az üzletről tud, és releváns kérdéseket feltenni.
A legjobb fejlesztők tudják, mennyi időt kell valamire fordítaniuk, mielőtt segítséget kérnének. Azt is tudják, milyen kérdéseket kell feltenniük, hogy tisztázzák, mit kell tenni a projekt előrehaladásához.
Következtetés
Már több mint 15 éve írok kódot. Azt mondanám, hogy 10x fejlesztő vagyok, vagy legalábbis az lehetek. Tudom, hogy miben vagyok jó. Ha azt csinálom, amiben jó vagyok, akkor komoly mennyiségű munkát tudok gyorsan elvégezni.
Ha egy új termék prototípusát szeretnéd elkészíteni, én vagyok az embered. Ha segítségre van szükséged az Angular, React vagy más front-end fejlesztéshez, akkor egészen biztosan nem én vagyok a te embered. Ezekben a feladatokban -10x fejlesztő lennék.
A 10x fejlesztők nem mítoszok. Tényleg léteznek. Ők valószínűleg dev managerek, építészek, vezető fejlesztők vagy cégalapítók. Ha nem azok, akkor valószínűleg azok kellene, hogy legyenek. Én végül cégalapító lettem, már kétszer is.
Amellett senki sem lesz 10x fejlesztő minden nap, egész nap. Nincs energiánk vagy fókuszunk arra, hogy minden nap ilyen tempóban dolgozzunk. Nem vagyunk robotok.
Ha megérted a szoftverfejlesztés “mit, miért és mikor” fogalmát, akkor produktívabb és jobb csapattag lehetsz – talán még 10x fejlesztő is lehetsz napi néhány órára. És ez nagy különbséget jelenthet.
Ha már itt vagy, és utánanézel, hogyan fejlődhetsz, nézd meg dinamikus kódelemző eszközünket, a Stackify Prefixet. Ingyenes, és segít jobb kódot írni.