Je to pořád dokola. – „Nevíme“ – „To už je dávno“ – „On už tady nepracuje“ – „Domácí úkol mi sežrala kočka“…
Řešíte chyby, měníte nějaký starší kód, snažíte se upgradovat aplikaci na novější verzi, analyzovat dopady změny procesu, zjistit administrátorské heslo a tisíc podobných věcí, ke kterým dochází na každém projektu. Jenže… nikdo neví, jaké změny se v aplikaci udělaly, natož proč, jestli se podobná chyba už dříve neřešila, jestli nebyla požadovaná funkcionalita již vyvinuta pro jiného zákazníka a tak dále a tak dále.
Jak to? Pravdivá odpověď by asi zněla, že to tak spoustě lidí vyhovuje (z mně neznámých a nepochopitelných důvodů), ale budu předpokládat, že všichni chceme vytvářet kvalitní a udržovatelné produkty.
Mělo by být vcelku evidentní, že spoléhání se na lidskou paměť je špatná cesta. Nejen že lidé projekt či společnost opouští, ale také představa, že si někdo bude pamatovat detaily své práce řadu let zpátky, je zkrátka naivní.
Informace je třeba dostat z hlav a uložit na nějaké méně degradující médium.
Dobrá, rozhodli jsme se zdokumentovat náš projekt. Vyhradíme se na konci nějaký čas na dokumentaci (polovinu z něj možná věnujeme na urgentní dodělávky) a vytvoříme obstojnou dokumentaci. Když ale dojde na nějaký problém, vzpomínáme, že se související změny řešily někde po Skypu a nikomu nepřišlo důležité je zdokumentovat. Finální dokumentace je totiž vždy určitým zestručněním a zobrazuje jen konečný výsledek, čímž automaticky vypouští většinu informací o tom, proč a jak se práce prováděla.
Přitom když se ta práce dělala, všechny informace existovaly. Vědělo se, proč se navrhla nějaká změna, vědělo se, jaký kód se pro ni naprogramoval, vědělo se, jak změnu otestovat a tak dále. Nějaké informace byly v mailech, něco v dokumentech, které se později smazaly, něco bylo jenom v hlavách – ale všechny ty informace byly k dispozici. A spousta z nich se později ztratila.
Příklad: Koukáte do nějakého zdrojového kódu, je vám jasné, co technicky dělá, ale nemáte tušení, z jakého důvodu to někdo vytvořil. A už se to nejspíš nikdy nedozvíte. Přitom ten programátor to vědět musel a kdyby to popsal byť jen jednou větou…
Uložte informace které máte, dokud je máte. Jejich pozdější rekonstrukce bývá nákladná a často i neúspěšná. U každé informace musíte vždy myslet na to, že může být za několik let potřeba.
Nepotřebujete nezbytně žádný speciální software, i souborový systém je dostatečný nástroj. Má sice svá omezení, ale to podstatné je vaše práce s informacemi, ne se softwarem. Měnit proces zároveň s nasazováním nějakého nástroje má svou logiku (je snažší přesvědčit lidi uvažovat jinak, když už stejně nemohou věci dělat postaru), ale pokud nedokážete informace zachytit, žádný software vás nezachrání.
Nicméně dobrý software vám může pomoci. Pokud můžete schraňovat informace na jednom místě, snadno připojovat dokumenty, vytvářet hierarchické vazby, odkazovat na související informace a tak dále, významně to zjednoduší řadu věcí, třeba vyhledávání informací, změny struktury apod. a může to i podstatně zjednodušit celý proces.
Stále ale musíte zajistit, že bude systém daty plněn. Osobně prosazuji postup, kdy informace není považována za existující, dokud není vložena do systému. Někteří považují tento přístup za příliš formalistický, ale zkušenosti s pozdějším (ne)zadáváním dat jsou příliš špatné. Zadat data do systému nesmí být o mnoho složitější než napsat e-mail (nutnost vyplnit 20 polí odradí i nadšeného uživatele) – pak není racionální důvod posílat informace jinými kanály.
Tak tak. Hesla je možná lepší než do souboru psát do programu pro to určeného – například keepass, lastpass. Na textové informace se výborně hodí například dokuwiki. Na bugy a požadavky je zase pěkný mantis-bt