Tajomstvom efektívnosti je kvalitný kód, nie efektívny manažér

Jednou z najviac idiotských profesií sú manažéri, ktorí riadia programátorov. Nie všetci, ale tí, ktorí sami neboli programátormi. Tí, ktorí si myslia, že je možné „zvýšiť“ efektivitu (alebo zvýšiť „efektívnosť“?) pomocou metód z kníh. Bez toho, aby som sa obťažoval čítať tie isté knihy, video je cigánske.

Tí, ktorí nikdy nepísali kód. Tí, pre ktorých sa točia hollywoodske filmy o programátoroch – teda tie, kde sledujú e-maily pomocou príkazového riadku. Tých, ktorých nezaujíma nič iné ako ukazovatele, termíny a vlastný plat.

Tí, ktorí sú väčšinou.

Ale sú to idioti z iného dôvodu. Chcú efektívnosť, alebo aspoň efektivitu (no tak, manažér, Google, aký je rozdiel), pričom nerozumejú ani jednému, ani druhému. Bez všeobecného pochopenia podstaty, procesu získavania výsledku, strát, ktoré v tomto procese vznikajú, nákladov na vývoj. Skrátka práca s programátorom ako keby bol čiernou skrinkou.

Do vedenia programátorov narazili presne z jedného dôvodu: je tam humbuk, peniaze, trh a kopa rovnakých idiotov. Je kde sa stratiť.

Ak by bol humbuk v strojárskej montážnej výrobe, tak tam nabehneme. Kombi sajú. Neprekvapilo by ma, že chlapík, ktorý v decembri predáva vianočné stromčeky v našom susedstve, je IT manažér na dovolenke.

Skrátka, ak je to možné, streľte týmto chlapom do krku. Neboj sa, pracu si najdu. Nikto z nich nikdy neurobí nič slušné, kým sa sám nestane programátorom. Pretože nerozumie podstate, mechanizmu, logike procesu, ktorý riadi.

Dobre, dosť o manažéroch. Teraz k veci, pre programátorov. Ako zvýšiť efektivitu vývoja učením sa písať kvalitný kód.

Ak chcete zvýšiť efektivitu, musíte riešiť problémy rýchlejšie bez straty kvality. Ak chcete problémy riešiť rýchlejšie, musíte byť schopní okamžite napísať kvalitný kód. A „vysoko kvalitne“ a „napísať“ a „okamžite“. Dovoľte mi to vysvetliť metaforou.

Písanie kvalitného kódu je ako správne hovoriť cudzím jazykom. Keď nepoznáte jazyk, strávite veľa času formulovaním svojich myšlienok v ňom.

Ak potrebujete niečo súrne povedať, len nalepíte niektoré slová, často nie tie správne, zabudnete na články, správny slovosled, nehovoriac o slovesných časoch a zlej výslovnosti.

Ak máte čas na sformulovanie odpovede, budete si musieť otvoriť slovník alebo online prekladač a stráviť veľa času formulovaním svojich myšlienok. Ten pocit však bude stále nepríjemný: poviete odpoveď a neviete, či je správna alebo nie. S kódom je to rovnaké – zdá sa, že bol napísaný, zdá sa, že funguje, ale či je kvalitný alebo nie, je záhadou.

Ukazuje sa, že je to dvojnásobná strata času. Dospieť k odpovedi si vyžaduje čas. Formulovať túto odpoveď si tiež vyžaduje čas – a nie tak málo.

Ak je prítomná zručnosť písania kvalitného kódu, potom môže byť odpoveď formulovaná okamžite, len čo dozreje v hlave, bez trávenia ďalšieho času prekladom.

Zručnosť písania kvalitného kódu pomáha pri navrhovaní architektúry. Jednoducho nebudete vo svojej hlave uvažovať o nesprávnych, nerealizovateľných alebo premyslených možnostiach.

Aby som to zhrnul: schopnosť písať kvalitný kód výrazne urýchľuje riešenie problémov.

To však nie je všetko. Vďaka manažérom plstených topánok je tu jeden háčik – nemáme dôvod písať kvalitný kód. Manažér sa nepozerá na kód, klient sa nepozerá na kód. Zriedkavo si navzájom ukazujeme kód, iba niekedy v niektorých projektoch, kde je určený kód „kontrola“ alebo periodické refaktorovanie.

Ukazuje sa, že vo väčšine prípadov ide posratý kód do výroby alebo ku klientovi. Osoba, ktorá napísala posratý kód, vytvára stabilné neurónové spojenie – napísať posratý kód je nielen možné, ale je to aj nevyhnutné – je to akceptované a dokonca za to platia.

Tým pádom sa zručnosť písania kvalitného kódu nemá vôbec šancu rozvinúť. Kód napísaný podmienečným zamestnancom nikdy nikto nekontroluje. Jediný dôvod, prečo sa naučí normálne programovať, je vnútorná motivácia.

Táto vnútorná motivácia je však v rozpore s plánmi a požiadavkami na efektivitu a produktivitu. Tento rozpor zjavne nie je vyriešený v prospech kvalitného kódu, pretože ani nekritizujú ľudí za posratý kód. A za nesplnenie plánu – aj tak.

Čo mám robiť? Vidím a navrhujem dve cesty, ktoré sa dajú kombinovať.

Prvým je ukázať svoj kód niekomu vo firme. Nie reaktívne (keď sa opýta/vynúti), ale proaktívne (uh, kámo, pozri sa na môj kód, prosím). Hlavnou vecou tu nie je písať sladké soplíky, nesnažiť sa dať kritiku kódexu zdvorilou formou. Ak je kód svinstvo, hovoríme to: kód je svinstvo. S vysvetleniami, samozrejme, a odporúčaniami, ako to zlepšiť.

Ale aj táto cesta je taká aká. Jeho použiteľnosť závisí od bodu, v ktorom došlo ku kontaktu. Ak sa dielo už dostalo do výroby a ukáže sa, že kód je svinstvo, nemá zmysel ho prerábať. Presnejšie dôvody – klesnú aj metriky. Manažéri sa ponáhľajú a rozdrvia vás požiadavkami na efektivitu. A ani sa im nesnažte vysvetliť, že ten posratý kód sa určite vráti vo forme chýb – obráti sa to proti vám. Môžete sa len zaviazať, že to už nebudete robiť.

Ak dielo ešte nebolo dodané, alebo sa práve začalo, tak vysypať sračky na kód (alebo jeho projekt, nápad) môže mať celkom praktický význam – ten človek to urobí normálne.

Druhý spôsob, ten najúžasnejší, je vývoj open source počas mimopracovných hodín. Čo je cieľom: aby partia programátorov, menovite programátorov, videla váš kód a hovorila o ňom. Všetci vo firme nemajú čas. Ale programátori po celom svete stále nemajú čo robiť a ak napíšete niečo užitočné z aplikačného hľadiska, určite sa pozrú dovnútra.

Hlavným trikom je podľa mňa písanie kódu v mimopracovnej dobe, pretože rozpor medzi kvalitou kódu a rýchlosťou dodania výsledku nebude fungovať. Napíšte svoj vývoj aspoň na rok. Ani termíny, ani technické špecifikácie, ani peniaze, ani šéf na vás nebudú tlačiť. Úplná sloboda a kreativita.

Iba vo voľnej kreativite pochopíte a pocítite, čo je skvelý kód, uvidíte krásu jazyka a technológie a pocítite čaro obchodných úloh. Naučíte sa písať kvalitný kód.

Je pravda, že to bude vyžadovať, aby ste trávili osobný čas. Rovnako ako každý iný vývoj. Nepozerajte sa na to ako na náklady, ale ako na investíciu – do seba.

Zdroj: hab.com

Pridať komentár