Tak vypadá obálka poměrně specializované knihy Petra Palety, určené jak programátorům a softwarovým inženýrům, tak vedoucím projektů, jejichž produktem je jakýkoli software, až po manažery a ředitele softwarových firem.

Její autor, bohužel, nedávno zesnulý, Petr Paleta, se po vystudování Matfyzu pohyboval v několika většinou peněžních ústavech, kde pracoval jako programátor. Poté založil s kamarády softwarovou firmu DataTech, která se již v polovině devadesátých let nebránila novým trendům jako wapové, Javové a inter/intranetové technologie, které zaváděla do infrastruktury firem i státních, většinou opět bankovních či telekomunikačních, podniků. Krom toho všeho si dokázal zorganizovat čas tak, aby navíc stačil psát do odborných časopisů jako např. Computerworld aj.

Jak sám autor říká, popudem k napsání této knihy byly některé opakující se nešvary a chybné nebo prostě zbytečně neefektivní praktiky jak při programování tak vedení softwarových projektů. A tím je myšleno vedení projektu od samotného začátku do samotného konce, se vším všudy, co to obnáší.

Vyvinout nějakou aplikaci může obnášet sednout si k počítači a za deset minut sbalstlit něco, co odpovídá původnímu požadavku, může to ovšem znamenat i vzevrubnou, náročnou striktně orgranizovanou intenzivní práci desítek lidí po dobu několika měsíců, která se musí být velmi pečlivě plánována a vyžaduje neodmyslitelnou usilovnou práci manažerů projektu a dalších lidí, kteří mají s programováním pramálo společného, aby na konci tohoto úsilí stanul produkt, který si zasloužil všechnu tu systematickou lopotu a především se i svým tvůrcům vyplatil. Pokud píšete programy a dokážete si představit natolik sofistikované aplikace nebo samotné softwarové systémy, na které byste pro jejich složitost si vživotě netroufli, je to právě tato knížka, která vám k tomu dodá odvahu a především návod a několik dobrých rad, jak na to.

Co programátory ve škole neučí je velmi zkušeně napsaná – autor velmi vzevrubně přistupuje k problémům vývoje softwaru a to hned z několika stran. Nejdříve problém definuje, popíše typické příčiny vzniku potenciálních problémů a poté poradí, jak jim předejít. K tomu navíc uvede příklady z jeho praxe, což je podle mě skutečně k nezaplacení. To je to, čím se tato kniha liší od ne mnoha knih na podobné téma.

Kniha je rozdělena do několika hlav, kde každá se logicky zabývá jedním problémem. Vedle obligátního úvodu do psaní softwaru je zde něco jako metodická příručka jak psát a nepsat programy, pak dvě části věnující se chybám – proč k nim dochází a jak s nimi zatočit, a dále jak aplikaci testovat. Poté následuje tématický odskok od praxe programátora k dalším profesím vývojového týmu: od problematiky řízení softwarového projektu po část nazvanou „Lidské zdroje a komunikace“, která se od tématu knihy odklání nejvíc a zabývá se složením vývojového týmu a ve vztahu k efektivitě vývoje produktu. S tím poměrně úzce souvisejí metodiky a technologie vývoje aplikací, což je název další části knihy. Ta slouží spíš jako stručný přehled jednotlivých metodik a technologií a motivační úvod, určený k tomu, aby si čtenáři, které jednotlivé metodiky osloví, přečetli knihy na tyto metodiky specializované. Nakonec se vracíme k samotné aplikaci částí zabývající se její architekturou a výhodnými rysy, které úspěšné aplikace mají a jak jich dosáhnout, abychom si v poslední hlavě knihy zkonfrontovali autorovy a naše zkušenosti s fází, když již projekt běží, protože i přesto je někdy potřeba se k němu (ať už vinou programu nebo přání zákazníka) vrátit.

Jak vidíte, autor to vzal pěkně od podlahy.

Petr Paleta se ale nespokojí s pouhou „kuchařkou“ jak se zbavit nejčastějších chyb a špatných metod psaní a napsat co nejlepší a nejefektivněji aplikaci splňující původní požadavky. Praxe mu dává za pravdu, že skutečným tajemstvím úspěchu vývoje softwarových produktů (a zejména aplikacím na míru, kterých je čím dál víc) je komunikace se zákazníkem. Odpovědí na to je podstatná část této knihy zabývající se nejenom vývojem, ale i následnými fázemi realizace produktu. Po určitém stádiu, kdy je software schopen svého základního fungování, je to fáze testování, poté zkušební provoz a nakonec instalování zákazníkovi – a to vše za neustálé konfrontace zákazníkových dodatečných přání i stížností.

Jiná část knihy je určena zejména manažerům a vedoucím softwarového projektu. To neznamená, že by nebyla atraktivní i pro programátory – i ti se mohou z této části naučit něco podstatného (nebo spíš, především, to, co se hned tak jinde nedoví).

Jsem sice trochu zmatený z pořadí hlav a kapitol knihy, nevím, proč autor vkládá část, která je tématicky trochu jinde, právě doprostřed jiného tématu, ale nedovolím si to kritizovat – asi jsem to já, který tomu nerozumí :-).

Autor si toho naložil poměrně dost velkou porci práce – ve své podstatě jsou metodiky psaní programů a řízení softwarového projektu dvě různé věci, dvě různá témata, a beze všeho mohly být rozděleny do dvou knih. Dokonce bych i tipoval, že by nakladatelství této knihy (ComputerPress) asi vydalo místo této knihy knih několik: každou pojímající jednu hlavu této výsledné knihy, ale to, že se tomu tak nestalo, kvituji s povděkem, antož nemám tolik financí, které bych býval ochoten věnovat za všechny takové knihy.

Co se mi líbí nejvíc, jsou příklady z autorovy reálné praxe. Ono totiž: můžete stokrát teoreticky rozumbradovat nad některými poučky a pravidly, dokud vám někdo neřekne svoji konkrétní „dramatickou a melodramatickou příhodu“ o tom,  jakou kdy udělal pinaktní chybu. Tu si totiž, podle mě, do paměti vryjete stokrát silněji.

Celkově považuju tuto knihu za optimální a dobře koncipovaný zdroj informací pro všechny ty, kteří se chtějí zdokonalit ve „štábní kultuře“ své práce. A nebo se dozvědět, co to vlastně je zač :-).

Carlos

P.S. A jedno překvapení nakonec: součástí knihy je i test na funkci programátora. Sice je situován konkrétně pro firmu DataTech, ale případní programátoři ho mohou brát jako typický test na tuto pozici – jiné firmy dělají testy podobné.