Ne. Programátor má mít buďto jasně zadáno, co má dělat (modul X, implementace rozhraní Y, metoda Z bude mít kontrakt takový a takový,...), nebo musí mít doménovou znalost toho, co dělá. Expert na účetní programy musí rozumět účetnictví, programátor komunikačního stacku musí znát protokoly,... Jinak z něho vypadne jenom to hnědý mazlavý a šéf ho tím vždycky nahodí.
Ne vždy házejme vinu na programátory. Programátor má být na řetězu a má dostat jasné zadání, co má naprogramovat, jak se to má chovat.
To zadání si ale nemá dělat sám, jak se mu zlíbí nebo jak by se mu to dobře udělalo. Jestli je chyba v uživatelském komfortu, má nastoupit designér na UX, který se s tím vymazlí, navrhne, otestuje to, nahodí to designerovi, který tomu dodá vzhled a to se pak má dodat programátorovi, který to zprovozní.
Programátor by opravdu neměl navrhovat věci, ještě se mi nestalo, aby to, co navrhl programátor bylo hezké, nebo nedejbože i funkčně použitelné!
Moje osobní zkušenost asi 25 let stará. Dělali jsem pro firmu automatizaci řízení výroby, tenkrát na "zastaralých a neintuitivních" znakových terminálech. Firma ale chtěla být moderní, tak pořídila místo terminálů PCčka s Win 3.11. No, a zaměstnanci se pak na těch "uživatelsky přívětivých, intutivních a jednoduchých" woknách učili týden spustit si myší emulátor terminálu, aby se pak se tu naši "ošklivou a neintutivní znakovou" aplikaci naučili ovládat za den.
No, to je právě ono: "navrhl jsem si" - když člověk navrhuje "si", tak se mu s tím dělá dobře. Problém nastane tehdy, když programátor něco navrhne a musí to pak používat někdo jiný. Někdo, kdo potřebuje jasné a jednoduché UI a ne efektivní příkazový řádek a podobné věci. Někdo, pro koho jsou ty barvičky a slůvko schované za třemi hvězdičkami naprosto zásadní, protože mu to usnadní a zpřehlední práci.