Téměř každý vývojář softwaru nebo programátor se setkal s kódem napsaným někým jiným, který potvrzuje klišé „každý může programovat“. Setkali jste se však někdy s údajně mýtickým „10x vývojářem“? Být 10x vývojářem nesouvisí ani tak s vynikajícím psaním kódu, jako spíše s tím, že přesně víte, jaký kód napsat.
Mnozí z nás začali programovat za určitým účelem. Já jsem například začal psát kód pro automatické přehrávání textových her MUD, když jsem spal a byl ve škole. Ve třinácti jsem byl script kiddie a ani jsem o tom nevěděl. Dokázal jsem přijít s nápadem, napsat kód a otestovat ho – a to všechno sám.
Vývoj softwaru je těžký, když ho děláme pro někoho jiného, protože nám často chybí stejný typ motivace a vzrušení, které nás pohání, když sledujeme svou vlastní vizi. Nepřicházíme s nápady, trávíme hodiny na poradách, abychom je pochopili, a pak většinu času trávíme úpravami kódu někoho jiného – nebo se na nich alespoň podílíme. To může vést k určité odtažitosti, která snižuje produktivitu.
Chcete-li se stát 10x vývojářem, musíte se naučit v tomto prostředí vynikat, nebo si dokonce založit vlastní firmu a vést ji.
Každý může být 10x vývojářem, alespoň po část dne, každý den. Domnívám se, že existují tři věci, na které by se měli všichni vývojáři zaměřit, aby se stali produktivnějšími a lepšími členy týmu.
Ty 3 věci
K tomu, abyste se stali 10x vývojářem, potřebujete několik let zkušeností s prací s jakýmkoli programovacím jazykem a sadou nástrojů, které používáte. Musíte být dobří v řešení problémů a psaní kódu; to je samozřejmost.
Důležité je pochopit, že to, jak píšete kód, z vás nedělá 10x vývojáře, 10x inženýra, 10x programátora nebo jakkoli jinak to nazvete.
Znáte 5 W. Víte, co je to 10x vývojář? „Kdo, co, kde, proč, kdy“. I když se všechny tyto vlastnosti vztahují na vývoj softwaru, chci se zaměřit na tři charakteristiky, které definují 10x vývojáře. tyto tři věci odlišují průměrného vývojáře od 10x vývojáře:
- Co
- Proč
- Kdy
Vědět co
V korporátním světě mají vývojáři tendenci pracovat na projektech, které je příliš nebaví a kterým nerozumí. Pro většinu vývojářů to není velký problém, pokud dostanou velmi dobré pokyny a očekávání jsou jasně definována.
Problém je v tom, že vývojáři obvykle nedostanou odpovídající pokyny. Místo toho používáme věc, které se říká „agilní vývoj“. Dostaneme lísteček s několika slovy a očekává se, že budeme přesně vědět, co je třeba udělat.
Vývoj softwaru je především o komunikaci. Vývojáři musí vědět, na čem pracujeme, jaké problémy se snažíme vyřešit a jak přesně má vypadat výsledek. Čím více toho víme předem, tím rychleji můžeme postupovat. Nejdůležitější pro úspěch je znát záměr práce a vědět, co povede k úspěchu.
Špatní vývojáři stráví hodiny tím, že jdou na projektu špatným směrem, aniž by se na cokoli zeptali. Říkám jim -10x vývojáři, protože ničeho nedosáhnou a plýtvají časem všech svých spolupracovníků. Téměř každý se s některými z těchto vývojářů setkal a pracovat po jejich boku může být frustrující. A musíte si dávat pozor, abyste nepřevzali jejich návyky!“
Někteří vývojáři pracují dobře i bez velkých detailů. Používají velkou dávku kreativity a kladou správné otázky. Tito jednorožci jsou pravděpodobně desetinásobní vývojáři. Vědí, jak na věci přijít, a často pozvednou úroveň celého týmu, který kolem nich pracuje.
Podstatné je, že 10x vývojáři jsou opravdu dobří v rychlém určení toho, co je třeba udělat a jaké otázky položit.
Pochopení důvodu
Možná největší překážkou vývoje softwaru je pochopení důvodu. Pokud nerozumíte problému, který se snažíte vyřešit, je opravdu těžké ho vyřešit.
Proč jsem hackoval terminálové skripty, abych mohl hrát svou hru MUD, zatímco jsem spal a byl ve škole? Samozřejmě jsem chtěl dosáhnout nejvyšší úrovně ve hře. Věděl jsem přesně proč a dělal jsem všechno pro to, abych toho dosáhl.
Stejný přístup platí pro jakýkoli projekt vývoje softwaru. Vývojáři, kteří rozumí oborové vertikále, v níž se pohybují, a problémům, které se snaží vyřešit, budou mnohem produktivnější. Znalost důvodů a pochopení vertikály také pomáhá předcházet zbytečné práci a uvolňuje čas, aby se mohli soustředit na věci, díky nimž bude produkt nebo funkce pro uživatele hodnotnější.
Problém je, že vědět proč nestačí. Abyste se stali skutečně 10x výkonnějším vývojářem, musíte být pro daný problém zapálení a rozumět mu zevnitř i zvenčí. Věřím, že většina 10x vývojářů jsou v jádru také produktoví lidé, obdaření dobrou produktovou vizí.
Vědět, kdy co dělat
Pro projekty vývoje softwaru je důležité načasování. Vybírat, v jakém pořadí pracovat na položkách v back logu, je zdánlivě snadný úkol, který je ve skutečnosti kritický. Pracujete na něčem, co může vaší firmě pomoci získat novou zakázku, nebo jdete čistit staré technické dluhy?“
Jako vývojové týmy musíme neustále žonglovat s tím, na čem pracujeme a kdy na tom pracujeme.
Všechny položky práce na vývoji softwaru spadají do těchto tří kategorií:
- Něco, co musíme udělat
- Něco, co musíme udělat
- Něco, co chceme udělat
Musíme udělat tuto novou funkci pro klienta. Potřebujeme opravit chyby v našem softwaru. Chceme pracovat na technickém dluhu nebo na nějaké skvělé nové funkci produktu. Vždy je to balancování.
Měli bychom dělat pracovní položky ze všech těchto tří kbelíků současně. Nemůžeme věnovat veškerý čas technickému dluhu, ale možná bychom mu měli věnovat malé procento času.
Vývojáři také musí vědět, kdy mají v rámci svého kódu vytvářet složité architektury. Já dávám přednost tomu, aby byl kód co nejjednodušší, dokud nejsem nucen přidat architekturu, bez které se jinak neobejdu.
Vývojáři také musí vědět, kdy se vyhnout honbě za lesklými objekty. Mají tendenci si hrát s novými nástroji a technologiemi, ale tato řešení mohou projekt spíše jen zpomalit, než aby pomohla k jeho rychlejšímu dokončení.
10x vývojáři umí dobře žonglovat s prioritami a chápou, kdy investovat čas do architektury a kdy do plácání špagetového kódu, aby něco fungovalo. Nezapomeňte, že uživatelům je jedno, jak váš software funguje nebo jak efektní je jeho architektura. Chtějí jen, aby fungoval. Vývojáři 10x tomu rozumí.
Zvládnutí dovedností Co, Proč & Kdy se stát vývojářem 10x
Nyní si řekneme, jak můžete zvládnout důležité dovednosti Co, Proč a Kdy se stát vývojářem 10x.
Začněte s Proč
Prvním krokem k tomu, abyste se stali vývojářem 10x, je nadšení pro software a problémy, které se snažíte řešit. Musíte problém pochopit zevnitř i zvenčí. To začíná nadšením pro společnost, pro kterou pracujete, a pro její poslání jako společnosti.
Nedělejte tlačítko, které něco dělá, jen proto, že to někdo řekl. Snažte se pochopit proč na vyšší úrovni. Pro svůj tým a společnost budete mnohem cennější, pokud zůstanete zaměřeni na to, proč.
Buďte dobrým vývojářem & Vynikajícím řešitelem problémů, ne nejlepším programátorem
Sám sebe bych popsal spíše jako hackera-vývojáře. Jsem typ, který dokáže splácat dohromady pár ošklivých kódů a velmi rychle vyřešit téměř jakýkoli problém. Můj kód je málokdy krásný, ale funguje. A to je to, na čem záleží.
Nemusíte psát dokonale architektonický kód s jednotkovými testy, abyste byli 10x vývojářem. Abyste byli 10x vývojářem, musíte vědět, kdy tyto věci dělat a kdy ne.
10x vývojář je dobrý v řešení konkrétních problémů a uspokojování obchodních potřeb pomocí kódu. Nejchytřejší věc, kterou můžete udělat, je vědět, kam až můžete projekt dotáhnout, než ho předáte někomu jinému, kdo může být lepší ve finalizaci některých architektur a dalších drobností.
Kdy je ve vašich útrobách, nebo není
Vědět, kdy vytvořit komplexní architekturu a kdy něco hacknout, přijde se zkušenostmi a rozvojem vašich pavoučích smyslů. Buď ten instinkt máte, nebo nemáte.
Někteří z nejchytřejších vývojářů, se kterými jsem kdy pracoval, byli ti nejhorší v upřednostňování vzorů a architektury před funkčností a harmonogramem. Chtěli přehánět s inženýrstvím a přepisovat věci znovu a znovu, snažili se o „dokonalý kód“ místo o „kód, který se dá odeslat“.
10x vývojáři musí používat své zkušenosti a instinkt, aby věděli, kdy se zaměřit na architekturu a dokonalost oproti tomu, aby se něco udělalo.
Vědět, co dělat a na co se zeptat
Tak velká část vývoje softwaru spočívá v komunikačních dovednostech. Bohužel mnoho poznámek a požadavků, které dostáváme k pracovním položkám, není příliš podrobných. Desetinásobný vývojář si je umí přečíst, použít „proč“, které o firmě ví, a položit relevantní otázky.
Nejlepší vývojáři vědí, kolik času mají něčemu věnovat, než požádají o pomoc. Vědí také, jaké otázky položit, aby si ujasnili, co je třeba udělat, aby se projekt posunul dál.
Závěr
Píšu kód už více než 15 let. Řekl bych, že jsem desetinásobný vývojář, nebo jím alespoň mohu být. Vím, v čem jsem dobrý. Když dělám věci, ve kterých jsem dobrý, dokážu rychle udělat pořádný kus práce.
Pokud chcete vytvořit prototyp nového produktu, jsem váš člověk. Pokud potřebujete pomoct s Angular, React nebo nějakým jiným front-endovým vývojem, rozhodně nejsem váš člověk. Na tyto úkoly bych byl -10x vývojář.
10x vývojáři nejsou mýtus. Skutečně existují. Jsou to nejspíš dev manažeři, architekti, vedoucí vývojáři nebo zakladatelé firem. Pokud nejsou, pravděpodobně by měli být. Já jsem skončil jako zakladatel společnosti, a to hned dvakrát.
Také nikdo nebude 10x vývojářem každý den, po celý den. Nemáme energii ani soustředění na to, abychom každý den pracovali takovým tempem. Nejsme roboti.
Pokud pochopíte „co, proč a kdy“ při vývoji softwaru, můžete být produktivnější a lepší člen týmu – třeba i 10x vývojář na pár hodin denně. A to může mít velký význam.
Když už jste tady a zkoumáte, jak se zlepšit, podívejte se na náš nástroj pro dynamickou analýzu kódu Stackify Prefix. Je zdarma a pomůže vám psát lepší kód.