Vývoj softwaru – největší mýty

Petr Stahl | 31. 1. 2008 | Software | , | Přečteno: 3,457

V poslední době vypadá situace trhu práce na velký nedostatek IT odborníků, zejména vývojářů. Pojďme si ukázat, proč je tomu tak a jaká řešení se nabízejí.

Architektura a konvence projektu

Stává se tradicí, že na projektu je minimálně jeden nedoceněný, zhusta zastávající vedoucí roli, neschopný programátor. Ten je na první pohled poznat – věnuje se všem možným aktivitám, jen ne opravdovému programování. Nejoblíbenější aktivitou těchto parazitů je určování mantinelů, zejména tzv. architektury. Ti jenž takový projekt nesou na svých bedrech a přesčasech jsou pak nuceni např.

  • trávit čas přemýšlením nad každým písmenkem v názvu proměnné
  • vytvářet soubory, které nejsou ke spuštění aplikace vůbec potřeba – interfacy, konfigurační a překladové soubor
  • zvykat si na formátování kódu, které není danému programátoru vlastní – jako by na nějaké té mezeře záleželo
  • rozlišovat, do které ze zbytečných vrstev psát výkonný kód
  • udržovat jednotlivé soubory směšně malé, při tom je známým faktem, že kompaktní kód je lépe přehledný
  • nepoužívat všechny vlastnosti daného programovacího jazyka – např. v Javě, už tak velmi syntakticky omezené, prskají nad přiřazením v podmínkovém příkazu a otrlejší i nad ternárním operátorem

Co tedy nutí vývojáře, ale zejména jejich nadřízené, k vynucování konvencí? Jednoznačně čas. Čím více zbytečných aktivit, tím více zaměstnanců, kteří pak chybějí na pracovním trhu, tím dražší projekty a tím vyšší platy.

Analýza, design a řízení projektu

Co je lidstvo lidstvem, existovala menšina produkující skutečné hodnoty a většina, která jen práci předstírala. Softwarové projekty jsou učebnicovým příkladem tohoto jevu. Není výjimkou stav kdy několika skutečným programátorům sekundují zástupy analytiků, konzultantů a manažerů. Přitom je pravdou, že několik schopných vývojářů by dokázalo projekt bez problémů zrealizovat. Je tedy důvod se zabývat jinými aktivitami, než skutečným vývojem?

  • analýza – vždy je zřejmé, co má výsledná aplikace dělat, proč to opakovaně popisovat?
  • to co nyní analytici považují za analýzu je stejně nepoužitelné, jedinou možností programátora je jí v tichosti obcházet a nebrat na vědomí
  • se všemi zásadními požadavky se tak jako tak zákazníci obracejí přímo na programátory, proč je tedy nenechat vytvářet přímo kód – nic jiného stejně zákazníka neuspokojí
  • řízení projektu je činnost, kterou jen manažeři maskují svou zbytečnost, určování co, kdy a jak mají vývojáři dělat začínající z nich jen obtěžuje a zdržuje – zkušení manažery ignorují
  • zbytečné nástroje pro vedení požadavků – je dobrou praxí realizovat všechny nároky zákazníka okamžitě, proč je evidovat jinde než u jednotlivých vývojářů

Co tedy nutí vedoucí pracovníky k vynucování plánování a projektování programů? Jednoznačně čas. Čím více zbytečných aktivit, tím více zaměstnanců, kteří pak chybějí na pracovním trhu, tím dražší projekty a tím vyšší platy.

Testování

Stojí za povšimnutí, jak se v poslední dobou prosazují metodiky vývoje softwaru, které zdůrazňují důležitost automatizovaného testování. Kdo, nebo co, za tím humbukem stojí? Shrňme si fakta o testování a testovatelnosti programů.

Nebylo by tedy lepší testy vůbec nepsat? Zde jsou důvody, které jasně dokáží, že ano.

  • testy nikdy nemohou pokrýt všechny požadavky zákazníka
  • testy se musí přepisovat s každou změnou požadavků na produkt
  • automatizované testy nikdy ani z části nenahradí testování zákazníkem
  • při spadnutí testu mnohdy nelze rozhodnout, zda je chyba v aplikaci, či v testu samotném
  • s každou sebemenší změnou zadání vývojář jednoduše upraví kód a nemusí upravovat nudné testy
  • pokud se v projektu vyskytne chyba, je hned zřejmé, že k ní došlo v aplikaci – testy jsou vždy v pořádku, neexistují
  • vývojáři nejsou zatěžováni další technologií, klesají náklady na školení
  • není zbytečně zabíráno místo na discích vývojářských stanic, což zejména v případě mnoha malých souborů není zanedbatelná veličina

Co tedy nutí vývojáře, ale zejména jejich nadřízené, k vynucování psaní testů? Jednoznačně čas. Čím více zbytečných aktivit, tím více zaměstnanců, kteří pak chybějí na pracovním trhu, tím dražší projekty a tím vyšší platy.

Komentování kódu

Velcí guruové, kteří mají samozřejmě největší zájem na nedostatku programátorů, prosazují, aby vývojáři svůj kód zhusta komentovali. A to nejenom samotný výkonný kód, ale dokonce i rozhraní tříd a metod. Někteří se dokonce snaží tuto pošetilost povýšit na umění. Měli by si však uvědomit, co je v programování už mnoho let známé.

  • dobrý kód je pochopitelný sám o sobě
  • programátor je placený za tvorbu programů, za ostatní věci se platí spisovatelům
  • je zvykem, že zdrojový text programu vytváří a upravuje jeden člověk, pokud není schopen se ve svém kódu vyznat, měl by zvážit změnu profese
  • zadání toho, co má program dělat se často mění – není snad dostatek práce s přepisováním kódu – musíme ještě udržovat aktuální komentáře?
  • místo na disku a zálohovacích médiích není zadarmo, i bez komentářů mají jednotlivé zdrojové soubory obvykle mnoho tisíc řádek

Co tedy nutí vývojáře, ale zejména jejich nadřízené, k vynucování psaní komentářů? Jednoznačně čas. Čím více zbytečných aktivit, tím více zaměstnanců, kteří pak chybějí na pracovním trhu, tím dražší projekty a tím vyšší platy.
Lze tento začarovaný kruh svazujících zásad rozetnout? Najdou se programátoři, kteří se nenechají ohlupovat nesmyslnými poučkami?

Nevím, jsem velmi pesimistický. Dnes už se lze setkat i s řadovými vývojáři, kteří, jsa ovlivněni výše popsanou propagandou, hlásají uvedené „modly“.

Sdílení:
  • Facebook
  • Google Bookmarks
  • Linkuj.cz

Komentáře

Komentář od filemon
Datum: 31. 1. 2008, 20:18

Pokud je to ironie, tak jsem to nepochopil. :)

Tak namatkou treba k autotestum – chtel bych videt, jak u vas fungujete pri refaktoringu. Ja si ho bez autotestu nedokazu na vetsim projektu predstavit.

Komentář od Petr Stahl
Datum: 31. 1. 2008, 21:23

Vůbec mi nedošlo, že v rámci článku nejsou vidět nálepky.
Abych odpověděl v duchu článku – skutečný programátor píše kód, na který není nutné sáhnout ;-)

Komentář od Michal Smrž
Datum: 31. 1. 2008, 22:02

Tak po několika minutách zatajeného dechu s vykulenýma očima jsem si konečně všiml kategorie „humor“ a dost se mi ulevilo….:D Ale mám jinou modlu, která je bohužel v našem agilním světě realitou: „Make it green and keep it green!“ – samozřejmě heslo managerů a scrum masterů pro build…:-) Tak je to správné, tak to má být! Problém je jen tehdy, kdy je green build nadřazený tomu, jestli aplikace funguje správně (nebo jestli vůbec) a jestli jsou dobře testy… Čili green build znamená jen to, že je možné udělat build, ale není to důvod plácat se po ramenou a začít slavit:-)

Komentář od Pavel
Datum: 2. 3. 2008, 20:21

No taky jsem si nevšiml že jde o legraci a už jsem začínal bublat. Jako bych slyšel jednoho zasloužilého programátora z naší firmy…

Komentář od SB
Datum: 11. 3. 2008, 9:09

No to sem po ránu málem nerozdejchal!!! Eště že výše uvedené komentáře vše vyjasnily. :)

Napište komentář