Programátor není umělecký kovář!

Je programování víc umění, nebo spíš dělnická profese? Nebo má programátor nejblíž ke zručnému řemeslníkovi? Lehce provokativním pohledem komentuje Dan North „Software Craftmanship Manifesto“, polemizuje s jeho závěry a cíli a vyzývá: Pojďme vymyslet „programátorské řemeslo“, s učením, mistry a s žebříčkem dovedností.

Článek je překladem článku Programming is not a craft, jehož autorem je Dan North. Originální článek byl zveřejněn pod licenci CC-BY.

Pozn.překl.: V originále hojně používané slovo craft, craftmanship nemá vhodný český ekvivalent, který by bylo možné spojit se „software“. Nahrazuji jej proto slovy „umělecké řemeslo“, „řemeslo“, „řemeslná dovednost“ či tam, kde to je vhodné, parafrází „umělecké programování“, které se mi zdají nejblíž původnímu významu.

TL;DR

Riziko softwarového uměleckého řemeslnictví je, že staví do centra pozornosti software samotný namísto užitku, který má software přinést. Hlavním důvodem je, že jsme romantici s velkým egem. Programování se zabývá automatizováním činností, jako přechroupat data, zpracovat a vypsat informace nebo řídit a automatizovat práci strojů.

Neprogramátoři se nestarají o estetickou stránku software, stejně jako se neinstalatéři nestarají o krásu vodovodu. Prostě chtějí, aby měli informace tam, kde je chtějí mít a aby jim horká voda tekla tam, kam téct má, když tam téct má (ale je na místě podotknout, že ocení možnost lehce měnit nastavení bojleru).

Motivace k softwarovému řemeslnictví

Bylo by skvělé, kdyby programování bylo opravdovou profesí, ale ono není. Profese mají strukturovaný model získávání zkušeností a schopností po úrovních – například právníci musí studovat a pak získávat praxi, stejně jako lékaři začínají po škole jako „doktorská embrya“ a náročnou praxí „od píky“ se propracovávají k atestacím…

Pokud chcete být programátorem, nic takového nepotřebujete. Někteří lidé mají přirozený programátorský talent (dva z nejlepších programátorů, jaké znám, nikdy VŠ nestudovali), někdo se naučí programovat z knih, další se propracovávají metodou pokus-omyl k funkčnímu výsledku. Programátorova úroveň a schopnosti jsou tak dobré, jak dobrá je jejich osobní reputace: neexistuje žádný široce přijímaný a přenositelný systém hodnocení schopností, jako je v „pořádných“ profesích.

K ilustraci toho, jak nízko může být laťka, poslouží Visual Basic a jeho úkol „demokratizovat programování“. Kdokoli, kdo uměl tahat objekty myší a dokázal pochopit alespoň základy technických věcí, mohl s poměrně malým úsilím tyto znalosti spojit a vytvořit přijatelné řešení svého problému. Nejrůznější průvodci a nástroje umožnily lidem vytvořit inteligentní tabulky v Excelu bez jakékoli znalosti programování. Jazykový guru Erik Meijer strávil několik posledních let přednášením odemokratizaci cloudů, tedy o snaze zjednodušit propojování online služeb a výpočetního výkonu tak, jako VB zjednodušil propojování kancelářských aplikací. Jinými slovy: mnoho lidí pracuje na tom, aby snížili už tak nízké nároky, potřebné pro vstup mezi „programátory“. (Uvedl jsem příklady s Microsoftem, ale Microsoft udělal nejvíc pro debilizaci programování, nebo pro zpřístupnění programování masám, záleží na tom, z kterého úhlu se díváte.)

IT jako obor je poměrně mladý – ve skutečnosti jen pár generací. (Zkuste se zeptat svých spolupracovníků, kolik z nich má rodiče, co pracuje v IT. Vidíte?) Zároveň je to něco jako zlatý důl. V porovnání s většinou průmyslových odvětví je toto slušně placená práce v kanceláři, u které netaháte těžká břemena, a co teprv ty minimální vstupní požadavky? Celé ekonomiky se rozvinuly a nahlížely přitom na IT jako na hru čísel: když tam vhodíte dost lidí, tak úkol nějak vyřeší, a když ty lidi seženete levně (ačkoli jsou stále dobře placení), pak jich budete moct hodit dovnitř spousty.

Mluvil jsem s člověkem, co mi říkal, že pracuje na nějaké veřejné zakázce, která má zajišťovat daňové benefity pro stavebníky. Jako stavebník budete mít online účet, kam se můžete přihlásit a nakupovat daňové dobropisy, které si odečtete na konci roku z daní. Jinými slovy šlo o aplikaci, která udržovala uživatelské účty a měla nástroj pro karetní platby (od třetí strany), nic víc! Tento projekt požral 400 programátorů na tři roky. To je víc než člověkotisíciletí vývoje. U webové aplikace! Tohle si prosím platím ze svých daní. Ale to je na jinou diskusi.

Z čistě demografické perspektivy se ukazuje, že většina lidí v IT je v IT proto, že a) to je dobře placená alternativa k jiným kancelářským pracem, natož k práci manuální, a b) není žádný tlak na to, aby z IT bylo něco jiného než výše popsaná hra s čísly.

Ale jsou tu i další. Je tu menšina lidí, co opravdu milují programování a chtějí v tomto oboru vyniknout. Chápou, že vývoj software je dovednost, lépe řečeno celé portfolio různých dovedností: chápání a modelování problému, znalost programovacích jazyků, knihoven, paradigmat a idiomů, schopnost vybrat řešení odpovídající situaci, schopnost učit se a chápat algoritmy, zkušenost s „cestou k produktu“ (sestavení, nasazení, uvolnění), sledování běhu, automatizace procesů, teorie Lean manufactoring, znalost cloud computingu, konkurenčních procesů a paralelismu, a tak bych mohl pokračovat dál. Tihle lidé hledají způsob, jak se odlišit. Často citované případy desetinásobného vzestupu produktivity v případě najmutí takových expertů ve srovnání s nováčky jsou dle mých zkušeností o celé řády chybné. Opravdu skvělý programátor (a měl jsem to štěstí, že jsem s několika takovými pracoval) překonává „programátory, co to dělají pro peníze“ mnohosetnásobně a dokáže během hodin či dnů vytvořit něco, na čem průměrný vývojář stráví týdny až měsíce.

Čím se tihle lidé odliší? A jak mohou pomoci ostatním v oboru, který opravdu oceňuje software, co píší? Potřebujeme určitý „učňovský model“ a způsob, jak objevit mistry, co budou učit žáky a ostatní mistry. Což zní jako určitá obdoba toho, co se používá ve světě řemesel. A taky to silně rezonuje s romantickými sny průměrného alfa geeka, který by jistě přivítal i propracovaný systém tajných znamení a podání rukou.

Jde o to, že software může být ohodnocen pouze mírou užitečnosti, kterou poskytuje uživatelům. Dokud dělá to, co má, tak nezáleží na tom, jak hnusný je zdrojový kód. Programátor může ukázat krásný kód kolegovi, ale tím možné ocenění krásné řemeslné práce končí.

Pohled na negativní prostor

Má žena je umělkyně, a jedna z věcí, kterou studuje, je negativní prostor. Jde o prostor mezi zobrazenými tvary či předměty v obraze. Pochopení negativního prostoru je klíčové pro věrné ztvárnění kompozice. Představte si lehce natočený sedící model a povšimněte si zakřiveného trojúhelníku, tvořeného horním ramenem, dolním ramenem a bokem těla. Podívejte se na plochu mezi obličejem a rámem obrazu – je obdélníková a úzká. Vidíte, jak obrys nosu vytváří v levé straně tohoto obdélníku zub? Podívejte se na bradu, respektive na prostor pod bradou, kde je vidět úhel mezi čelistí a krkem. Podívejte se skrz namalované okno na barvu oblohy v prostoru mezi větvemi stromu. Liší se od šedo-bílých oblaků nad stromem. Všechny tyto tvary a barvy – prostor mezi zobrazenými objekty, negativní prostor – jsou tvary, které určují, jak věrné bude zobrazení na plátnu. Ale většinou si negativního prostoru nevšimnete – především na dobrých malbách.

Co to má společného se software? Připadá mi, že většina nejlepších programátorů, co jsem potkal, nedělala „software jako umělecké dílo“; psali software, který zpracovává informace, který něco dělá. Informace jsou opravdové hodnoty – software jen definuje prostor, v němž se pohybují. Pro tyto programátory bylo podstatné, zda se dostaly informace z bodu A, kde se motaly, do bodu B, v němž byly užitečné, co nejrychleji a nejefektivněji, jak jen to šlo. Úspěšné UI spočívá v zobrazení či vykreslení přesně těch informací, které jsou k užitku – ne míň a rozhodně ne víc – ve stručné a zřejmé podobě. Software samotný je podružný, detail schovaný někde v pozadí a vlastně na něm vůbec nezáleží.

Proč není programování umělecké řemeslo?

Řemeslný výrobek je krásný z vnitřní podstaty. Katedrála je v podstatě obrovská chata, v níž se lidé setkávají. Je z kamene, takže vydrží mnohem déle než dřevěný srub, ale proč tam je ta dekorace? Samozřejmě proto, aby katedrála působila majestátně a úžasně a oslovila tu část v nás, která oceňuje krásu a velkolepost, takže do katedrály vstupujeme s úctou a pokorou v rozpoložení, vhodném pro uctívání. Řemeslné umělecké zpracování je to, co má katedrála navíc oproti srubu, to, co jí dává vnitřní krásu.

Když ze stejného kamene postavím most přes železnici, budu se především zajímat o jeho efektivitu a fungování. Když to bude dobrý a jednoduchý most, tak si ani nevšimnu, že tam je! Nevšímáme si většiny staveb na cestě, po které jedeme nebo na železnici, kterou cestujeme, až do doby, než se něco pokazí! (Pro stav, kdy si věcí všimnete jen pokud jsou rozbité, existuje trefné pojmenování, ale nemohu si na něj zrovna vzpomenout.)

Je rozdíl mezi přístupem kamenického mistra, který modeluje výraz kamenného chrliče, a někým, kdo právě usazuje běžný zděný blok do zdi několikapatrového parkoviště. V tom druhém případě je to poslední, oč stojím, čísi „osobnost“, projevená v tom, že každý kámen bude jiné velikosti a unikátní, nemluvě o vyšší ceně za člověka, co kámen ručně oseká, v porovnání se strojovou prací s prefabrikátem. V prvním případě je osobnost kameníka určující: obtiskává svou značku (a své ego a svou pověst) do jedinečného ztvárnění pekelného tvora. Ale když chcete jen kamenný odtokový žlábek na olej, kupte si ho v obchodu pro kutily.

Softwaroví praktici – speciálně ti dobří, což je ironické – často ztrácejí tyto věci ze zřetele. Zamilují se do software samotného a začínají sami sebe považovat za umělecké programátory.

Nejsnazší kvalifikace na světě

Moje obavy z myšlenky uměleckého programování jsou jasné. Je riskantní nechat programátorská ega zdivočet. A když se to stane… no, když se naposledy opravdu řádně zcvokli, získali jsme Web Services, před tím zase J2EE. Přesvědčili dokonce britskou vládu, že potřebuje überdatabázi, v níž bude naprosto vše o naprosto všech. Chápete, kam mířím?

Když jsem se podíval na Manifest Řemeslného Programování, něco ve mně zemřelo. (Něco jiného ve mně začalo řvát smíchy a řeklo dalším věcem uvnitř, aby se nebraly tak smrtelně vážně, takže teď se máme všichni mnohem líp.) Když odhlédnu od toho, že je to, no, nijaké, připadá mi to především celé jako jednoznačné oxymoron. Pokud má být poselství toho celého v tom, že o sobě máme přemýšlet jako o uměleckých řemeslnících v oboru software, a že to je něco výjimečného, tak jde o okázalé naskakování do příliš snadného vagónu.

Musel jsem ukázat jakoukoli schopnost či znalost? Ne. Nějakou specifickou reputaci? Ne. Jakoukoli zkušenost s touto prací? Kdepak (a jako Pragmatičtí Programátoři vás rádi upozorníme, že desetiletá zkušenost je velmi odlišná od deseti ročních zkušeností). Ve skutečnosti jediné, co jsem musel udělat, abych se připojil k hnutí Softwarového Řemesla, bylo napsat svoje jméno do formuláře. Jupí! A od teď jsem spojen s Manifestem Softwarového Řemesla! Jsem sám, kdo v tom vidí ironii?

(Původní) problém obchodního cestujícího

Kdysi dávno, zhruba v dobách, kdy měl Západ spoustu práce se středověkem, si japonští náčelníci najímali bandy žoldáků, kterým se říkalo samurajové, k tomu, aby – no, hlavně aby se rvali s jinými partami samurajů. Vaše životní vyhlídky, pokud jste byl samuraj, nebyly nic moc, a ještě klesly ve chvíli, kdy jste přišel o koně. V těch dobách se zrodilo umění jiu jitsu. Výchozí předpoklad jiu jitsu je ten, že jste v bitvě přišli o koně: jste neozbrojení, uprostřed nepřátelské přesily a vaši protivníci jsou ozbrojení a vyšší než vy. Máte to spočítané – pokud se ovšem nevytasíte s nějakými cool pohyby.

Jak se samurajové pohybovali po celém Japonsku, najímáni různými náčelníky, napadlo některé, že by bylo fajn vytvořit lokální školy bojových umění, kde by se pokračovalo v tréninku. Jistě si dokážete představit, že pokud jste se naučili jiu jitsu v jedné škole na určité úrovni (budeme jí říkat „černý pásek“) a pak jste přešli do jiné školy, neměli jste žádné srovnání s tamními studenty, pokud jste je nevyzvali na životu nebezpečný souboj. A bez srovnání jste nevěděli, jak je kdo dobrý.

Proto vyvinuly školy jiu jitsu určitý druh tance, nazývanýnage-ne-kata, který obsahuje pět skupin po třech technikách. U každé techniky ukazujete, jak ji provádíte a jak ji někdo provádí na vás, abyste ukázali nejen to, jaký jste bojovník, ale i jak umíte padat. Všichni studenti se naučili nage-na-kata, a když přišli do nové školy, tamní sensei je požádal, aby je předvedli. Dodneška se v některých školách učí.

Z nage-na-kata lze poznat spoustu věcí o tom, jak dobrý dotyčný v jiu jitsu je. Vidíte jak stojí, jak udržuje postoj, jak se pohybuje, s jakou ladností, jak dobře udrží rovnováhu, jak respektuje svého protivníka, jak dobře padá (a jak rychle se zvedá!), jestli upřednostňuje určitou stranu či kde jsou jeho slabiny. Tohle všechno z jednoduchého tanečku.

Tak tedy buďme řemeslníky – ale jinak!

Zpátky k tématu – trochu mě uklidňují některé jména, která jsou spojená s hnutím Softwarového Řemesla, jako jsou Kevlin Henney, Bob Martin, Corey Haines, Glenn Vanderburg. Jsou to pragmatici, vnímaví lidé, co stojí na zemi a především jsou opravdu pokorní. Obávám se ale toho, že okouzlení předstihlo záměr, jak je vidět na obrovském počtu lidí, co se chtějí k hnutí počítat.

Rád bych viděl někoho, kdo by přepsal Manifest Řemeslného Programování do výrazů jako mít výsledky nebo uspokojit zákazníka. Nechci „trvale přidanou hodnotu“, chci „potěšit zákazníky každý den!“ Softwarový řemeslník by měl být bez ega, pokorný, zaměřený na výsledek, ne na samotný kód či na proces. Rád bych vyzval do zbraně proti sebezahleděnosti, za chápání programování coby pokročilého obchodu, kterým ve skutečnosti je.

Nikdo nechce váš smradlavý software – chtějí funkce, které jim nabízí, a chtějí je včera. (Zde výslovně vyjímám lidi od User Experience. Ti se pohybují ve světě estetiky a chápání lidí. Oni ve skutečnosti, když použiju zednickou terminologii, pracují na fasádě domu, na tom, co lidé nakonec uvidí.)

Možná by tu měla být nějaká Rada pro Softwarové Řemeslo, která by přijímala členy na základě nějakých pravidel, přesně podle toho elitářského modelu, který k smrti štve některé lidi, co jsou systematicky oblbnutí školním systémem (ale to je opět na jinou diskusi). Byli byste přijati jen tehdy, kdyby rada usoudila, že budete přínosem pro Softwarové Řemeslo.

Opravdu zkušený tým programátorů dokáže dosáhnout úžasných obchodních výsledků v šíleně krátkém čase. Koukněte se na jejich práci! Chci vaši zkušenost, chci vaše vědomosti, chci, abyste mi ukázali, jak je „jednoduchost druhou stranou složitosti“, abych citoval Olivera Wendella Holmese. Budete potřebovat opravdového odborníka, abyste se dopátrali oné elegantní jednoduchosti, která je pohřbená pod haldou odpadků, kterým říkáme, třeba, enterprise software.

Nazývat programování druhem obchodu neubírá nic z touhy po profesionalitě, zkušenosti a odbornosti. Stejně jako chci, aby mi elektrické rozvody v bytě dělal zkušený elektrikář a ne kovboj, tak chci, aby mi zkušený programátor pomohl s prací. Co nechci je instalatérská primadona, co bude mít plná ústa řečí o eleganci, kráse nebo umění instalatéřiny, co je přesvědčená, že ocením krásu svařených trubek, nebo co „bude pracovat pouze s jinými špičkovými instalatéry, kteří dělají jedině měď-driven instalatéřinu“. Nejlepší software je takový, co neobtěžuje a je nenápadný (stejně jako by měli být ti nejlepší programátoři). nechci slyšet skřípění dat, když se namáhavě přesouvají z jednoho špatně implementovaného systému do druhého přes dementně navržené rozhraní.

A co dál?

Když jsem psal tento článek, napsal jsem k tomu pár poznámek na Twitter a dostal jsem pár zajímavých odpovědí. Jeden člověk psal, že programátor je řemeslník, podobně jako například šperkař. Odpověděl jsem, že hodnota zlatých či stříbrných šperků je specifická pro šperky. Nepoužívám ten předmět k žádnému jinému účelu, než k tomu, aby se lidé obdivovali jeho kráse (a zároveň mému vybranému, ale neokázalému vkusu a bohatství).

Pokud chceme použít zlato či stříbro jako analogii k programování, pak možná v tom smyslu, v jakém je použito na konektorech u reproduktorů: zlepšuje spojení a zvuk je kvalitnější. I když v tomhle případě uvítám, aby zlatý konektor byl identický s tím levnějším. Pokud bude výrobce konektorů chtít předvést své estetické cítění, budu mnohem radši, když udělá nějak zajímavě samotný kabel, než když se bude esteticky realizovat na tvaru konektoru!

Pokud jste dočetli až sem, tak vám děkuji. Když to celé shrnu: Myslím si, že by měl existovat nějaký Manifest Softwarového Řemesla, ale ne v té podobě, v jaké je teď. Myslím že by měl být provokativní, umíněný, drzý, burcující a tak dál, jak dobré manifesty mají být. Myslím si, že by měl existovat způsob, jak by se vášniví a zkušení programátoři mohli odlišit od ostatních, mainstreamových „kusů do počtu“, jak by se mohli poznat a jak by mohli předvést své schopnosti budoucímu zaměstnavateli. Jak by to mělo vypadat a jak to můžeme rozběhnout?

A coby zákazník – není lepší, když budete vědět, že váš software postavili řemeslníci, ne nějací nádeníci? Platíte za to a zasloužíte si nějaký druh ujištění. Pojďme vymyslet způsob, jak by to mohlo fungovat!

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Komentáře: 153

Přehled komentářů

alancox Nedočetl jsem
Martin Malý Re: Nedočetl jsem
Aleš Roubíček Re: Nedočetl jsem
Martin Malý Re: Nedočetl jsem
Karel2 Re: Nedočetl jsem
Opravdový odborník :-) Re: Nedočetl jsem
neodbornik Re: Nedočetl jsem
Martin Malý Re: Nedočetl jsem
biggringo Re: Nedočetl jsem
backup Re: Nedočetl jsem
Martin Malý Re: Nedočetl jsem
muf inženýrské myšlení
backup Re: inženýrské myšlení
muf Re: inženýrské myšlení
Martin Soušek Re: inženýrské myšlení
backup Re: inženýrské myšlení
takeinzenyr Re: inženýrské myšlení
devnull Re: Nedočetl jsem
talpa Re: Nedočetl jsem
Umělec Re: Nedočetl jsem
Linuxový otaku. Re: Nedočetl jsem
Mard Re: Nedočetl jsem
muf Na jednu věc se dnes zapomíná
Martin Malý Re: Na jednu věc se dnes zapomíná
muf Re: Na jednu věc se dnes zapomíná
Inkvizitor Re: Na jednu věc se dnes zapomíná
dfsagdfgdsg a neni to stejne jako jinde
Aleš Roubíček Vývojařina je řemeslo, ale ne umělecké
Martin Malý Re: Vývojařina je řemeslo, ale ne umělecké
Program Re: Vývojařina je řemeslo, ale ne umělecké
Aleš Roubíček Re: Vývojařina je řemeslo, ale ne umělecké
Martin Malý Re: Vývojařina je řemeslo, ale ne umělecké
Aleš Roubíček Re: Vývojařina je řemeslo, ale ne umělecké
Martin Malý Re: Vývojařina je řemeslo, ale ne umělecké
arron Re: Vývojařina je řemeslo, ale ne umělecké
Martin Malý Dovysvětlující článek
Pavel Re: Dovysvětlující článek
Opravdový odborník :-) Re: Vývojařina je řemeslo, ale ne umělecké
vikr Re: Vývojařina je řemeslo, ale ne umělecké
Aleš Roubíček Re: Vývojařina je řemeslo, ale ne umělecké
Martin Malý Re: Vývojařina je řemeslo, ale ne umělecké
Aleš Roubíček Re: Vývojařina je řemeslo, ale ne umělecké
Martin Malý Re: Vývojařina je řemeslo, ale ne umělecké
Ales Roubicek Re: Vývojařina je řemeslo, ale ne umělecké
Justas Re: Vývojařina je řemeslo, ale ne umělecké
Opravdový odborník :-) Re: Vývojařina je řemeslo, ale ne umělecké
titanik Re: Vývojařina je řemeslo, ale ne umělecké
neodbornik Re: Vývojařina je řemeslo, ale ne umělecké
František Kučera Re: Vývojařina je řemeslo, ale ne umělecké
Sten Re: Vývojařina je řemeslo, ale ne umělecké
povinna prezdivka Re: Vývojařina je řemeslo, ale ne umělecké
Program Jako houby po dešti
Stanley Re: Jako houby po dešti
Sten Re: Jako houby po dešti
Program Re: Jako houby po dešti
Sten Re: Jako houby po dešti
Mard Re: Jako houby po dešti
Clock Re: Jako houby po dešti
Nox Re: Jako houby po dešti
megahafo Re: Jako houby po dešti
PrymekM Re: Jako houby po dešti
backup Re: Jako houby po dešti
Program Re: Jako houby po dešti
balik Majstri a ucni
ales roubicek Re: Majstri a ucni
balki Re: Majstri a ucni
kverulant Re: Majstri a ucni
Aleš Roubíček Re: Majstri a ucni
balki Re: Majstri a ucni
balki. Re: Majstri a ucni
Martin Malý Re: Majstri a ucni
balki Re: Majstri a ucni
Martin Malý Re: Majstri a ucni
balki Re: Majstri a ucni
Martin Malý Re: Majstri a ucni
maio Re: Majstri a ucni
mm-marek Re: Majstri a ucni
Tomas Z. OT: Nage no kata - citation needed
Clock Re: OT: Nage no kata - citation needed
cleb Tvorba malých firemních prezentací samozřejmě řemeslo je...
none Hezký článek
koudy Re: Hezký článek
kverulant Re: Hezký článek
ferren prestiz
Clock Re: prestiz
muf Re: prestiz
ferren Re: prestiz
Aleš Roubíček Re: prestiz
muf Re: prestiz
nick Re: prestiz
Nox Re: prestiz
neodbornik Re: prestiz
František Kučera Re: prestiz
Heron Re: prestiz
Sten Re: prestiz
backup Re: prestiz
uf Re: prestiz
Clock Citim se clankem nerespektovany
Nox Re: Citim se clankem nerespektovany
Martin Malý Re: Citim se clankem nerespektovany
Clock Re: Citim se clankem nerespektovany
Nox Re: Citim se clankem nerespektovany
Nox Částečný nesouhlas
Karel Příliš vysoká úroveň generalizace
Martin Malý Re: Příliš vysoká úroveň generalizace
phr Re: Příliš vysoká úroveň generalizace
D.A.Tiger Já se obávám, že...
flv nerekl bych ze prohramovani se da prirovna i instalaterstvi
titanik Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
flv Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
jehovista Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
flv Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
l. Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
flv Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
jehovista Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
Sten Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
Sten Re: nerekl bych ze prohramovani se da prirovna i instalaterstvi
maio Zmateni
Biktop Jsou lidé, kteří to zase vidí jinak
l. Re: Jsou lidé, kteří to zase vidí jinak
phr Re: Jsou lidé, kteří to zase vidí jinak
Biktop Re: Jsou lidé, kteří to zase vidí jinak
ferren Re: Jsou lidé, kteří to zase vidí jinak
Aminux Připadá mi, že článek si protiřečí.
Aminux Re: Připadá mi, že článek si protiřečí.
Aminux Re: Připadá mi, že článek si protiřečí.
Ivan Nový Volný trh je lepší než cechovní systém,
bpbp Jestli programátor je zedník, tak User Experience "člověk" je architekt.
to je jedno divali ste se na sebe, vy mistri sveta?
Michal Vallo Manifest Řemeslného Programování a Motivace
backup Re: Manifest Řemeslného Programování a Motivace
Ondra Re: Manifest Řemeslného Programování a Motivace
Aleš Roubíček Re: Manifest Řemeslného Programování a Motivace
Ondra Re: Manifest Řemeslného Programování a Motivace
Aleš Roubíček Re: Manifest Řemeslného Programování a Motivace
Aleš Roubíček Re: Manifest Řemeslného Programování a Motivace
Michal Vallo Re: Manifest Řemeslného Programování a Motivace
Aleš Roubíček Re: Manifest Řemeslného Programování a Motivace
Michal Vallo Re: Manifest Řemeslného Programování a Motivace
Aleš Roubíček Re: Manifest Řemeslného Programování a Motivace
Michal Vallo Re: Manifest Řemeslného Programování a Motivace
jehovista Re: Manifest Řemeslného Programování a Motivace
Me TLDR
Washington Irving Lide a doba
Nox Re: Lide a doba
Martin Malý Re: Lide a doba
ctverec Programování
j3nda docetl jsem
Nox Re: docetl jsem
Martin Malý Re: docetl jsem
ctverec Programování II
Rasto 33r. Suhlasím s článkom
Všehomír Udržiavateľnosť
Zdroj: https://www.zdrojak.cz/?p=3526