Vyhoďte analytiky
Při psaní softwaru mnoho firem zaměstnává analytika, což je označení pro člověka, který má za úkol fungovat jako filtr mezi klientem a vývojářem a domýšlet software do konce. Protože analytik musí obhajovat svou práci a ukázat, že je prospěšný, píše na papír, jak má software fungovat. Tyto papíry se typicky odsouhlasí ještě před samotným psaním software, klient na ně dá štempl a začne se psát.
Vidím tady několik potíží:
- klient z analýzy nemusí pochopit, co nakonec dostane
- klient má při čtení analýzy strach, protože jí nerozumí, vzniká tak blok pro používání softwaru
- vývojář z analýzy nemusí pochopit, co se po něm chce
- vývojář je frustrován, co ten blbec analytik zase vymyslel
- analytik systém na papíru nevymyslí, to lze zjistit až při psaní softwaru
- analytik nemusí pochopit, co klient chce
- analytik nemusí pochopit, co vývojář umí naprogramovat
- analytik, fungující jako filtr přináší vždy informační šum a chyby, protože v podstatě jen zprostředkovává komunikaci mezi klientem a vývojářem
- analytik dává vývoji software lidskou tvář, vývojáři často neumí mluvit a klienti je berou jako zvířátka, kterým nerozumí
- analýza se musí v průběhu psaní aktualizovat
- analýza je po rozběhnutí softwaru mrtvá, protože je jednodušší podívat se přímo do systému
- analýza je drahá a špatně se sdílí, musí se verzovat, odsouhlasit, atd.
- analýza se používá jako štít pro softwarovou firmu v případě, že klient nedostane co chce (“ale vždyť jste to přece podepsal”).
- psaní analýz je vopruz
- čtení analýz je vopruz
Mnohem lepší je analytiky vyhodit a pustit vývojáře rovnou ke klientovi. V praxi je tohle jedna z největších překážek a velká zátěž pro obě strany. Vývojář se stydí, neumí mluvit, neumí si prosadit svůj názor a klient vůbec nechápe, proč se má s těmito zvířátky bavit.
Pokud však budeme trpěliví a vytrváme na pravidelném kontaktu, náš software bude lepší:
- vývojář nejlépe ví, co umí napsat a co je blbost, klienta tak usměrní
- vývojář dokáže nejlíp zhodnotit, kolik mu to zabere času
- vývojář se na systém bude dívat z pohledu klienta, tohle je naprosto zásadní pro pochopení, proč software vůbec píše
- vývojář přijme odpovědnost za vývoj softwaru a nemůže se vymlouvat na špatnou analýzu
- vývojář se naučí prezentovat svou práci
- vývojář se socializuje
- vývojář pochopí, že klient je také jen člověk a má právo na chyby
- klient pochopí, co lze napsat a co je blbost
- klient se na systém podívá z pohledu vývojáře, což po něm vyžaduje jistou technickou investici do svého vzdělání, která se mu ale dlouhodobě jen vyplatí
- klient osobně vysvětlí vývojářům, proč je software pro jeho business důležitý, tím si také pravidelně uspořádá priority a provádí na sobě sebereflexi
- klient pochopí, že vývojář je také jen člověk a má právo na chyby
Setkání klientů s vývojáři je samozřejmě nutné dělat pravidelně. Doporučuji týdenní iterace. Na každé schůzce vývojář prezentuje svou práci za poslední týden, klient určí priority pro další týden, opraví a zkoriguje možné odchylky při vývoji a má dobrý pocit z toho, jak práce hezky pokračuje. Nejhorší, co se může stát, je 1 ztracený týden práce. Což je v porovnání s chybně napsanou analýzou a dlouhým vývojem v řádu měsíců, kdy nakonec klient dostane něco, co vůbec nechtěl, dobrá daň.
A analytik může dělat něco užitečnějšího. Třeba se učit programovat nebo měnit svět jinak.