Pomerne často sa stretávam s otázkami ako si dať vytvoriť web, čím začať alebo ako napísať zadanie programátorovi, aby splnil očakávania. Ako odpoveď na tieto otázky sa hodí niekoľko článkov a v tomto sa venujem výhradne komunikácii s vývojármi. Spísal som 10 tipov, ktoré aplikujem denne a v mnohých prípadoch mi veľmi pomohli.

Používaj nástroje (#1)

Môžeš napísať zadanie úlohy do e-mailu alebo poveriť programátora na osobnom stretnutí. V oboch metódach sa ťažko drží prehľad, obzvlášť keď je úloh viac. Ako príklad môžem uviesť približne 60 úloh, ktoré chcem v jednom projekte aplikovať v nadchádzajúcich mesiacoch.

Našťastie dnes máme množstvo šikovných nástrojov na organizovanie projektu. Medzi najpoužívanejšie patria napríklad JIRA, Basecamp alebo Trello. Osobne som používal najskôr Basecamp, teraz aktívne využívam JIRA. V inom článku si môžeš pozrieť návod ako v JIRA organizujem úlohy programátorom.

Na bežnú dennú komunikáciu v rámci tímu používaj radšej Slack ako e-mail. Je to prehľadnejšie a rýchlejšie. Dokážeš v ňom komunikovať s jednotlivcami alebo formou skupín, kde vidia správy všetci účastníci danej skupiny. Slack používam ako doplnok k JIRA a je to môj primárny komunikačný nástroj s akýmkoľvek členom tímu, od vývoja webu, cez marketing, zákaznícky servis až po logistiku.

TIP: Všetky nástroje drž vo vlastnej réžii. Hlavne ak riešiš biznis s externými pracovníkmi alebo firmami. Vyhneš sa prípadnej strate histórie ak zmeníš dodávateľa. Aj po takejto zmene budeš mať stále všetko u seba.

Rozdeľuj na drobné (#2)

Ako manažér vidíš víziu celku, ale programátora väčšinou zaujímajú konkrétne kroky, ktoré treba spraviť, aby sa cieľ dosiahol. Pokiaľ možno svoje plány rozdeľ na malé časti, ktoré môže programátor jednotlivo plniť.

Predstav si slovenský obchod, ktorý chce expandovať a vytvoriť svoju českú verziu webu pre lokálny trh. Ako jedna úloha to môže byť príliš komplikované a veľké sústo. Našťastie sa to dá rozdeliť do niekoľkých prehľadnejších krokov. Napríklad úpravy logistiky, fakturácie, importov a exportov produktov, meracích kódov, pridania prekladov, meny, zapracovania SEO.

Opisuj detailne (#3)

Pri písaní špecifikácie k funkcionalitám je kľúčové opísať ju čo najdetailnejšie. Úlohy, ktoré súvisia s vizuálom je veľmi vhodné doplniť grafickými podkladmi.

Napríklad na web chcem pridať kontaktný formulár, ktorý tam zatiaľ chýba. Do zadania úlohy nenapíšem len „Pridanie kontaktného formulára na stránku s kontaktami“. Vhodné je si vopred zodpovedať napríklad tieto otázky:

  • Kde presne má byť umiestnený?
  • Aké položky má obsahovať?
  • Majú sa vyplnené dáta ukladať do databázy alebo len posielať e-mailom?
  • Kam sa majú posielať?
  • Treba to prepojiť s nejakým tiket systémom?
  • Aké dáta sa majú zbierať a merať?
  • Aký dizajn bude mať formulár?
  • Ktoré polia budú povinné?
  • Ako sa majú údaje validovať?
  • Akú antispamovú ochranu zaviesť?
  • Bude mať formulár z administrácie nastaviteľné hodnoty?
  • Ako sa má zobraziť na mobilných zariadeniach?

Ak dáš na tieto otázky programátorovi odpovede vopred, bude ti vedieť presnejšie odhadnúť časovú náročnosť. Z čoho budeš vedieť odhadnúť približné finančné náklady. Nebude sa ti práca zbytočne predražovať, lebo si sa rozhodol niektoré odpovede doplniť až po tom, čo programátor úlohu splnil. Nebude potrebné opätovne upravovať už napísaný kód.

Dopraj kreativitu (#4)

Zapájaj programátorovu fantáziu a využi jeho skúsenosti naplno. Nechaj na ňom, aby prišiel s návrhom ako najvhodnejšie premeniť tvoju víziu na realitu. Aj v reštaurácii si objednávaš výsledok a prácu s nožom nechávaš na samotnom kuchárovi. V prípade, že máš skúsenosti a v minulosti si niečo podobné zavádzal, je vhodné prediskutovať aj tvoje nápady.

Web developer

Pýtaj sa a počúvaj (#5)

Komunikuj s tímom. Pýtaj sa na problémy, ktoré sa riešia. Udržuj sa v obraze a sleduj ako sa plnia jednotlivé úlohy. V prípade, že máš pocit, že vzniká časový sklz, tak to rieš ihneď. Ak vzniknú nečakané problémy pri plnení úlohy, niekedy sa dajú odčleniť ako samostatné zadania, ktoré sa môžu presunúť na neskôr v záujme dobehnutia sklzu v aktuálnej práci.

Preferuj single-tasking (#6)

  • Súrne potrebujem upraviť dáta v databáze...
  • Zajtra musia byť spravené tieto drobné grafické úpravy...
  • Oprav nefunkčný...
  • Padla stránka...
  • Nejde nám zľava...
  • Nechodia SMS zákazníkom...

Nezadávaj web developerovi ďalšie úlohy, ktoré ťa „pália“, keď má rozrobené niečo iné. Nie je dobré, aby ich mal rozpracovaných niekoľko súbežne. Stráca sa tým sústredenie, robí sa viac chýb a nakoniec sa zadania nestíhajú plniť na čas. To nechceš ani ty, ani tvoj programátor. Samozrejme, keď padla stránka, alebo nejdú odoslať objednávky zákazníkom, treba to riešiť ihneď. Avšak väčšina úloh, ktoré potrebuješ riešiť okamžite sú tvoj problém. Lebo si zlyhal v plánovaní. Alebo si vôbec neplánoval!

Podporuj koncentráciu (#7)

Sú veci, ktoré vývojári nemajú radi: ľudí, svetlo, Windows...

A teraz vážne. Kašli na kopec zbytočných mítingov, stretnutí, kávičiek. Nenúť vývojára spisovať špecifikácie a zadávať úlohy do systému namiesto teba. Priprav programátorovi čo najlepšie podmienky a nevytváraj zbytočný stres. Samozrejme, na pivo ho zavolať môžeš.

Uč sa nové technológie (#8)

Nohami-rukami sa síce dorozumieš, obzvlášť s „vývojármi“ v Indii alebo okolí. Dobré je rozumieť aspoň základom nejakého programovacieho jazyka, čo ti uľahčí komunikáciu.

Prejdi si nejaký návod na Python, PHP alebo JavaScript. Je to jedno, princíp je všade rovnaký, všade je nejaká premenná, nejaké polia, nejaká funkcia a nejaký výsledok, ktorý chceš zobraziť. Pomôže ti to lepšie pochopiť prečo sa niektoré úlohy vlečú alebo koľko času dokáže zabrať odhalenie drobnej chyby.

Podceňuj pri plánovaní (#9)

Hoc máš v tíme samé esá, keď sa ťa šéf spýta, kedy bude konečne prepojený účtovný systém s eshopom, predstav si programátorov ako kapustné hlavy, ktoré celý deň nič nerobia, len klikajú na klávesnici nula alebo jedna. A na základe týchto „profesionálnych“ výpočtov odhadni deadline.

Radšej pridaj na funkcionalitu pár týždňov naviac a doruč výsledok skôr, ako opačne.

Buď moderný a inovatívny (#10)

Ak má programátor návrh na použitie nejakej novej technológie, ktorú by chcel vyskúšať, uvažuj nad tým. Keď ti programátor navrhne k rýchlemu riešeniu aj pomalšiu alternatívu, ktorá predíde budúcim problémom, zváž to pomalšie. Aspoň môže schuti napísať pár kódov naviac.

U programátorov je časté, že pracujú „remote“, teda napríklad z domu. Z veľkej miery to súvisí s koncentráciou spomínanou v bode 7. Ja prácu na diaľku plne podporujem, nielen u programátorov.

Je super, keď si zamestnanec môže rozvrhnúť čas sám. Keď má chuť robiť, tak robí, keď nemá, tak si oddýchne. Ak nútiš sedieť na kancelárskej stoličke od deviatej do piatej, tak určite platíš za čas, ktorý oddychuje v práci. Na káve, pri debatách alebo cigaretke. To je bežné. A áno, aj doma ľudia robia podobné veci, ale sú dostupnejší aj mimo deviatej až piatej.

Otestuj si to, naozaj! Ja som stále prekvapený koľko práce dokážu urobiť ľudia doma a koľko tí, ktorí sedia v práci. Česť výnimkám :)


Zhrnutie

Výhody plynúce s dodržiavania 10 uvedených tipov

  • ušetrené - nakoľko sa nepredražujú úlohy nedostatočným zadaním a slabou komunikáciou
  • všestranné využitie - v internom vývojárskom tíme ako aj komunikácii s externou spoločnosťou alebo freelancermi
  • rýchlejší workflow - úlohy sú jasne zadané, každý vie čo má robiť, práca nestojí
  • dokumentácia - všetko ostáva spísané, napríklad pri výmene ľudí v tíme
  • kontrola - ktokoľvek si vie pozrieť v akom stave sú práce a na ktorých úlohách sa robí (napríklad nadriadený, vedenie firmy)

Nevýhody

  • je potrebný „režisér“ - čo môže byť vyšší náklad na ďalšieho zamestnanca, rozhodne byť mal byť na strane zadávateľa, nie agentúry/firmy, buď ako zamestnanec, ktorý je z oboru alebo ako externý konzultant so skúsenosťami
  • treba si platiť za nástroje vo vlastnej réžii

Aktualizácia 3.9.2019:
Skôr ako sa dostanete k zadaniu úloh programátorovi, je dobré si zodpovedať niekoľko otázok. Pomôcť môže môj novší článok o vytvorení webu, na čom ho vybudovať a aká bude cena.