Ještě jsem neviděl firmu, kde by někdo do komentářů psal, že zákazník je blbec
Já netvrdím, že taková firma existuje - právě naopak píši, že tohle se neděje. Píši že, nemá cenu hodnotit kód (přesněji posuzovat kvalitu programátora podle kódu), pokud neznáme kontext a okolnosti vzniku toho kódu.
Výkon na který jsem třeba já osobně dost hrdý je neobjektová prasárna používající špatné datové struktury bez jediného komentáře s 0% pokrytím unit testy. Ale stihl jsem to za 3 hodiny a vytáhlo do potřebná data z databáze a šéf s těmi daty stihl argumentovat na jednání. Pak se to samozřejmě zahodilo a pro strýčka příhodu se to celé napsalo znova a hezky - ale za to už pak kolega žádnou pochvalu nedostal :-)
, a kde by tebou jmenované věci nějak někdo zohledňoval - a když už, tak jako naprosto marginální záležitosti. Na prvním místě - jestli stíháš termíny.
Jenže to je přesně ono - pokud nemám dost zkušeností a aplikaci navrhnu špatně, tak ji pak buď musím přepisovat podle zkušeností nabytých tou první implementací (= nestihnu termín). Anebo aplikace funguje blbě (= má problém projít zákazníkovými akceptačními testy, a to může být ještě mnohem horší, než nestihnout termín).
Pak dlooouho nic, pak kvalita dokumentace a pak někdy, možná, kdesi na dně je nějaká kvalita kódu. Nikoho nezajímá, kolik času někdo možná ušetří za rok, za dva při nějaké změně, ale jestli se stihne termín teď.
Souhlasím, že primární je stihnout termín teď. Ale navrhnout aplikaci blbě, že její úpravy jsou moc komplikované je rozhodně dobrý důvod, jak přijít za rok o image výborného člověka, který si zasluhuje přidat a být povýšen.
A za ty dva roky si už nikdo nevzpomene na toho, co jen tak tak stihnul tenkrát ten termín, protože "chytře ztrácel čas" v zájmu těch, co přijdou po něm. Takže tím pádem to pochopitelně ani nikdo neocení a nikam se to nepromítne.
Nepochopil jste mne. Nebavím se o situaci, že ztrácím čas v zájme těch, kteří přijdou za půl roku. Ztrácím čas, abych stihl současný termín.
Prostě měsíc před termínem dostanu zadání V1.0. A 14 dní před termínem dostanu zadání V1.1, které znamená slušné změny v architektuře a datovém modelu. A termín se neposouvá.
To je IMHO celkem běžná situace. Pokud jsem správně odhadl, co může zákazník chtít jinak a v těch prvních 14 dnech tím ztratil den, tak mě v druhých 14 dnech čeká třeba jenom den navíc - a termín stihnu.
Pokud jsem pracoval podle zadání, tak mám třeba 4 dny práce navíc a termín nestihnu.
Samozřejmě se na to nedá spoléhat, ale když člověk dobře zná obor zákazníka a má zkušenosti s daným typem aplikací, tak se dá trefit, co bude zákazník chtít jinak/navíc než bylo v první verzi zadání.