Stavební dozor

Nikdy jsem si nemyslel, že postavit rodinný domek je snadné. Je to hodně práce, proto nesmírně obdivuji kutily, kteří si barák postavili téměř vlastníma rukama. Základy, hrubou stavbu, elektriku, topení, okna, omítky… Je toho moc. Můžete si najmout pomocníky, ale nejspíš nad nimi budete muset stát, aby se neflákali, nebo aby svou práci dělali správně. Ani do města si nemůžete odjet, aby se něco nepokazilo.

Do nedávna jsem se domníval, že pokud si necháte dům postavit firmou, všechny starosti odpadají. Firma dodá výrobek v požadované kvalitě, máte i nějakou tu záruční dobu. Jenže dost často se stává, že je zákazník nespokojen. Tu a tam to někde „ujíždí“, po čase může omítka praskat („Dům ještě pracuje, mladá paní.“) nebo okna nemusejí těsnit tak, jak bychom si představovali. A firmy v tom umějí chodit, navíc potřebují vydělávat.

Proto bývá najímán specializovaný odborník, myslím, že se mu říká stavební dozor. Takový člověk stavebníkovi poradí, prohlédne smlouvy, spolupracuje se státem (stavební povolení) a především zajišťuje plnění smluv, plánů a kvality. Také řeší případné odstraňování problémů a asistuje při předávání, kolaudaci a jiných milnících v celém procesu stavby.

Kdesi jsem četl, že vývoj softwaru je co do komplikovanosti jako stavba domu.

Někdy minulý rok jsem posuzoval kvalitu jednoho projektu. Jednalo se o aplikaci, která vykazovala už v průběhu implementace výkonnostní problémy – to byl také důvod mé „inspekce“. Ukázalo se, že kromě fatálních chyb způsobujících výkonnostní problémy je celý systém špatně navržen, není zdokumentován a postrádá koncepci. Byl tam pokus řešit performance problémy berličkami typu cache a o nějakých návrhových vzorech či testování jednotek se mi mohlo jen zdát. Strach zákazníka byl oprávněný.

Pokud by byla válka, za něco takového by byl programátor bez soudu zastřelen.

Podle poznámek v kódu („tady vylepšit“ nebo „prozatím takto“) se zřejmě mělo ještě jednat o jakýsi prototyp. Bohužel byl projekt před nasazením. To mi připomnělo jedno moudro z knihy, kterou jsem zmínil v předchozím příspěvku.

Consider a building with a few broken windows. If the windows are not repaired, the tendency is for vandals to break a few more windows. Eventually, they may even break into the building, and if it's unoccupied, perhaps become squatters or light fires inside. – Wikipedia, Fixing Broken Windows

Uvažujme budovu s několika rozbitými okny. Pakliže okna nejsou opravena, vandalové mají tendenci rozbít několik dalších. Mohou se eventuálně dostat do budovy, jestliže není obydlena, a pravděpodobně tam vytvořit squatterské doupě. – volný překlad.

Nikdy nenechávejte v softwarovém projektu vědomě rozbitá okna.

Bohužel evaluovaný projekt neměl jen rozbitá okna. Kdybych navázal na úvod mého příspěvku, zákazník měl strach, že mu dům po nastěhování spadne na hlavu. Nabízí se otázka – neexistuje při výrobě softwaru podobný způsob kontroly, který by byl průběžně aplikován od prvotního zadání až po finální předání?

Zajímavá myšlenka. Určitě to už někoho napadlo.