Návrh návrhu

Nejtěžší část návrhu je přijít na to, co vlastně navrhujeme.

Nakonec mi pomalu začalo docházet, že to nejužitečnější, co pro zákazníka dělám, je pomoc v rozhodování o tom co vlastně potřebuje.

Jakýkoliv pokus o formulaci všech možných požadavků na začátku projektu selže a způsobí podstatné zpoždění.
PAHL AND BEITZ, ENGINEERING DESIGN

Po delší době se mi do rukou dostala technická knih, který mě opravdu zaujala. Nespáchal ji nikdo jiný než Fredercik Brooks a jmenuje se The Design of Design: Essays from a Computer Scientist.

Pokud si nevybavujete, kdo je pan Brooks, tak vám připomenu, že to je člověk, který napsal v roce 1975 klasiku „The Mythical Man Month“, dělal projekťáka při konstukci IBM System/360, pomáhal americké armádě s projekty a podobně. Zkrátka je to člověk, který ví, o čem mluví.

Z té knihy je to vidět. Mluví v ní obecně o návrhu software, hardware, domů nebo i knih. Dost se v knize opírá do našeho oblíbeného vodopádového modelu. V zásadě říká, že vodopád nemůže efektivně fungovat, což mě od člověka takového formátu těší. Kniha by se dala číst jako chvála agilního vývoje, i když slova agilní jsem si všiml jenom jednou. Ale jinak tam prosazuje většinu agilních fint jako používání vlastní hlavy, používání iterací, důraz na talentované lidi nebo třeba častou komunikaci se zákazníkem. Staví se také proti používáni rigidních procesů, když chce člověk vymyslet něco inovativního.

V první části představuje racionální postup při návrhu. Něco ve stylu „dokud nejsou splněny všechny požadavky a návrh není dost dobrý, procházej všechny možnosti návrhu a hledej ty které maximalizují užitnou hodnotu.“ V dalších částech vysvětluje proč tento postup nejde použít. Například proto že možností návrhu je nesmírné množství, požadavky jsou nejisté a nestálé, užitná hodnota je vágně definovaná a podobně. Určitě to znáte sami, pan Brooks to ale pěkně systematizuje.

Zajímavá kapitola je o racionalizmu a empirizmu. Je to trochu filozofický problém, ale pro nás velmi důležitý. Točí se kolem otázky: „Dokáži jenom pomocí přemýšlení správně navrhnout složitý objekt?“ Racionalisté věří že ano, empirici věří že ně. Já se stejně jako autor řadím mezi empiriky, ale dovedu si představit, že někdo věří i v opak. Mám za to, že ho z toho praxe rychle vyléčí, ale je možné že ne. V knize se dozvíte více detailů i argumentů pro empirizmus.

V dalších kapitolách se zamýšlí, jak tedy ten návrh dělat, pokud na to není žádný recept. V zásadě tvrdí něco podobného jako agilisti: „Sežeňte si šikovné designéry a dejte jim prostor a prostředky k tomu, aby se mohli realizovat.“

Samozřejmě i na této knize najdete pár mušek. Třeba v kapitolách 17 a 18 navrhuje dokonalý systém pro domovní architekty. Musím se přiznat, že tyto části jsem přeskočil. Dobrý úlet je i část 16, kde popisují, jak se ještě s jedním spoluautorem pokoušeli zaznamenat rozhodnutí kolem návrhu. Kdyby se jim to povedlo, bylo by to užitečné. Často totiž potřebujete vědět, proč je daná věc navržená zrovna takto, z jakých požadavků rozhodnutí vycházelo, proč to není uděláno jinak a podobně. Bohužel narazili na problém, že struktura popisu odráží strukturu navrhovaného systému, no a když se mění struktura návrhu, musíte měnit i strukturu popisu a je v tom zmatek. Takže je to něco ve stylu průkopníci slepých uliček.

Ale jinak je to kniha hodně dobrá, takže dostává úžasných osm hvězdiček z deseti. No a protože jsem v poslední době okouzlen službami Amazonu, přikládám odkaz na místa, která si čtenáři v knize často zvýrazňují.

One Response to “Návrh návrhu”

  1. Java crumbs » Blog Archive » iWoz Says:

    [...] Java crumbs Short remarks from Java world « Návrh návrhu [...]