Jak efektivně vyvíjet software v období nedostatku vývojářů? Respektujte známá fakta!

Zahajujeme seriál textů Tomáše Pavlíka, který nabídne doporučení, jakým zásadním chybám se vyhnout při hledání vývojářů do vašeho týmu nebo při nakupování služeb v oblasti vývoje software na zakázku v období, kdy celá Evropa trpí velkým nedostatek kvalifikovaných softwarových inženýrů.

V posledních 2-3 letech se na sociálních sítích mezi vývojáři objevil nový fenomén. Všichni se baví nad trapnými schůzkami s nekompetentními recruitery, nad hloupými nabídkami od personálních agentur a firem, které se snaží ze všech sil na prázdném pracovním trhu něčím zaujmout posledního volného programátora. Probíhají soutěže, kdo dostane více pozvánek na přijímací pohovor za měsíc, kdo obdrží pracovní nabídku do nejvzdálenější destinace na zeměkouli nebo kdo dostane na rande více „HR girls”.

Nezávisle na této bitvě o kvalifikované jednotlivce každý den vidím, jak neefektivně se s takto cennými kapacitami zachází. Nedostatek zdrojů v posledních letech nijak nesnížil počet projektů, které buď skončí krachem, nebo se k nim musí připojit nikdy neplánované „stabilizační etapy”, které nafouknou původní rozpočet i harmonogram na několikanásobek. Také se nijak nesnížil počet lidí pracujících na softwarových projektech, kteří jsou frustrovaní buď z přepracování, z nevyužití svého talentu nebo z pocitu marnosti z práce, která se nejspíš vyhodí.

Jaká jsou má zásadní doporučení, jejichž aplikace by podle mého názoru přinesla jak vyšší spokojenost na straně vývojářů, tak vyšší úspěšnost projektů pro zákazníky?

Respektujte známá fakta

 

Snad všechny větší projekty, které jsem za posledních 25 let viděl, byly poznamenané ignorováním jednoho naprosto základního faktu, který je v softwarovém inženýrství znám již od pravěku tohoto oboru, ale který se buď celá odborná komunita stále stydí odhalit zákazníkům, nebo ho zákazníci odmítají vzít v úvahu. Tímto faktem je, že nepřesnost odhadů pracnosti / nákladů / času je v době, kdy se tyto odhady u projektů typicky dělají, ve stovkách procent. Je to stejné, jako byste si rozpočet na dům pro rodinné bydlení dělali dříve, než si vyberete manželku. U některých zákazníků se tomuto riziku částečně čelí předběžnými analýzami, předepsanými architektonickými paterny, čímž se ze stovek procent můžeme dostat na velké desítky, ale nikdy ne na jednotky procent. Přes všechny zkušenosti v tomto směru vládne obrovská naivita, jejímž výsledkem je stres na projektu, tlak stihnout věci, které se ani při všech přesčasech stihnout fyzicky nedají a ve výsledku frustrace lidí pracujících na takovém projektu.

S nepřesností odhadů je nutné pracovat jako s vlastností softwarových projektů, která je zcela logická a není chybou ani vývojářů ani zadavatelů. Pokud se tedy jako zadavatel chci pouštět do softwarového projektu, musím počítat s tím, že než se dostanu k přesnému rozpočtu, musí být přesně vymyšlena konstrukce celého softwarového systému. Stejně jako u stavby domu se k pevnému rozpočtu dostanu až v momentě, kdy se rozhodnu o barvě poslední kachličky v koupelně a vyberu si poslední vypínač ve sklepě. Dostat se do tohoto stavu ale samo o sobě již bude stát dost peněz a času, a s tím je potřeba počítat. Nebo je možné postupovat obráceně, tedy vzít rozpočet jako pevný a uzpůsobovat rozsah, tedy dodat maximální rozsah, který lze za daný pevný rozpočet pořídit. Tento přístup má v sobě však riziko, že místo rodinného domu dostanete zahradní domek na nářadí.

Tomáš Pavlík, CEO společnosti Profinit

Příště se dozvíte, proč byste určitě měli zapomenout na bodyshop.