Přejít k navigační liště

Zdroják » Různé » Programátor není umělecký kovář!

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

Články Různé

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í.

Nálepky:

Č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!

Komentáře

Subscribe
Upozornit na
guest
155 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
alancox

Právě tyto názory jsou důsledkem toho, proč dnešní sw je padavý, pomalý, chybový a proč se z uživatelů dělají betatesteři.

On je totiž „užitek na první pohled“ při předváděčce – to je to co preferuje článek.

A pak užitek při dlouhodobém používání.

To druhé chce jistý druh umění a trefení.

Ale prosím, když chce někdo naštvaný druhým mluvit do programátorského řemesla jako tento článek – pak dobře udělá ten, kdo se na článek vykašle.

Ostatně názor autora mě neudivuje – Dan North neprogramuje, dělá školitele a jako takový těžko může zaměřen jinak, než na vnější stránku. V zásadě je přesně v pozici uživatele a jako takový už dávno ztratil náhled o čem programování skutečně je (podle jeho údajů 8 let neprogramuje i když kdysi dávno ano). Já mohu stejně dobře psát o tom, jak by měli lidé stavět atomové elektrárny (neumím to a jsem pouhý člověk zvenčí), nebo mohu radit třeba kosmickým inženýrům (to taky neumím, vidím to jenom zvenčí). V zásadě se to nijak neliší od pohledu 4. cenové skupiny, kde příslušní návštěvníci také vyřeší všechny problémy světa a do všeho vidí.

Aleš Roubíček

Jenže Software Craftmanship není o vnitřní kráse. Když zvolím metafory užité v článku. Dobrý stavař ví, že z panelů katedrálu ani most nepostaví. Co si pomyslíte o instalatérovi, co místo 1,5 m dlouhé trubky pospojuje 10cm kousky a když mu v půlce odejde svařovačka, tak to dolepí kanagonem…

Umělečtí kováři dělaj fakt pěkný řetězy, ale ruku na srdce, kdo z vás by si ho vzal s sebou do lesa na tahání 150 letého buku? Já tedy ne.

Karel2

S poslední větou nelze než jenom souhlasit.

Opravdový odborník :-)

Souhlasím, taky jsem neměl sílu to dočíst. Tradiční páteční žvásty, tentokrát dokonce překlad od přespoklního autora. Nebylo by možné se zde vrátit k odborným článkům a tato témata přenechat např. pro tlachání ve firemních kuchyňkách, kavárnách či hospodách?

neodbornik

Ja tedy opravdovy odbornik nejsem, ale souhlasim. Uz v pulce clanku jsem si rikal, ze tohle jsou kecy tak do hospody k pivu. A ke konci clanku jsem si rikal, ze autor je grafoman. A jestli tady nekdo nahore tvrdi, ze autor ani neprogramuje (tj. obecne netvori), ale pouze skoli (tj. zivi ho mluveni), tak to docela sedi.

biggringo

Já bych naopak byl pro rozšíření tradičních pátečních žvástů i na jiné dny v týdnu.

backup

moje manzelka je take umelkyne (stredni umelecka skola+architektura) a poslednich 20 let prevazne (kdyz trovna nekoncipuje vystavy) se mnou programuje podnikove informacni systemy. (zejmena tu oblast rizeni vyroby). Tim dlouhym vztahem jsem smozrejme poznamenan a ‚vidim veci v sirsim zaberu‘ nez bych patrne jako inzenyr cinil. Proto mam take pochopeni pro takove ‚patecni zvasty‘.

Nyni nekolik kritickych poznamek:

– zavadejici priklady
Pouzivani prikladu je problematicke. Vetsinou je pak diskutovana vhodnost prikladu nez samotna problematika – jak diskuze zde opet dokazuje. Na nejvetsim nemeckem IT-portalu ‚heise.de‘ se rika, ze v kazdem patecnim flejmu musi byt minimalne jeden priklad s automobily, automobilovym prumyslem :-)

– koncepce clanku
uvital bych, kdyby bylo nejak na zacatku clanku receno, co je cilem (dokazat, ukazat, vyvratit), jake jsou predpoklady , vstupni hodnoty. Potom metoda, kterou pouziji. Dale seznam literatury. To je pro me dulezite, abych mohl videt, zda autor cerpa pouz z vlastni hlavy a nebo se informoval jinde. Proste neco mezi ‚zvasty‘ a ‚odbornym clankem‘

– inzenyrstvi
V jednom prispevku rika muf, ze programator by mel inzenyrsky myslet. Opet, a to je casty ukaz v podobnych clancich a diskuzich, ze je jaksi nejasne, kdo to ten inzenyr je a cim se to mysleni vyznacuje. POvazuji to za zakladni, nez se zacne pozadovat inzenyrske mysleni, aby bylo jasne o co se jedna a jaky by to melo dopad na vyrobu software.

– softwarove krize
v clanku probirana tematika je vlastne jiz stara 40 let, zaclo to tim pamatnym kongresem v Garmisch-Partenkirchenu, kde se projednavala vyse uvedena problematika. Do dnesnich dnu se na toto tema napsalo stovky clanku a byla provedena rada studii a take se za ta leta vyzkouselo leccos. Kritizuji, ze jak puvodni autor, tak zdejsi autor nestavi na techto zakladech, ale opet a znova se zacina u cisteho stolu. To podle me neni profesionalni a musim souhlasit s temi, kteri hovori o hospodskych kecech. Vlastne bych to ani nechtel rici, ale mam pocit, ze se to stale vice rozmaha. Prosim, v parlamente, na univerzitach humantinich zamereni, na pravech v Plzni jsem ochoten to akceptovat, ne ale na IT servru. My mame prece nasi dustojnost?

muf

Na netu se válí jeden vtip, který pár slovy vyjádřuje podstatu:

Inženýr, kněz a doktor stojí na golfovém hřišti a čekají až se uvolní jamka před nimi… Inženýr povídá: co to tam tak dlouho dělají?! Doktor: Nevím, ale nikoho tak pomalého jsem ještě neviděl! Kněz: Nevím, ale támhle je maitel hřiště.. zeptám se ho.. Georgi, co to jsou prosímtě za lidi, že tak zdržují? Ale to je skupina hasičů co oslepli když nám hasili klubovnu, tak je tu kdykoli necháváme hrát zadarmo..Kněz na to: To je smutné.. večer jim věnuju speciální motlitbu. Doktor: Zeptám se, jestli pro ně nejde něco udělat. Inženýr: Ale proč sakra nehrajou v noci?!


Střízlivá věcnost, racionalita, logika, solidní matematické zázemí, solidní rozhled v přírodních vědách, schopnost vědu aplikovat v praxi, technický cit. A když se k tomu přidá i určitý nadhled a schopnost vnímat lidi z jiných oborů, které se vyskytují kolem řešeného problému, máme to oč tu běží.
Bohužel takto můžeme jen stěží charakterizovat většinu absoloventů dnešního školství.

Třeba takový Wozniak bez kterého by nejspíš neexistovala firma Apple, to je typický inženýr. Bez inženýrů by nejspíš nebyl ani Unix a jeho klony a koneckonců ani třeba takové jádro Windows NT a jejich následovníků. Skvělým inženýrem byl také třeba Gary Killdal atd… A když se podíváme mimo IT, nikdo jiný než inženýři nenavrhl mosty po kterých jezdíme (nemyslím malý můstek přes potok), letadla, techniku v autech,……….
Horší je, že s hrůzou pozoruji, jak se toto ze Západu pomalu vytrácí a jak naopak roste v Číně a Indii. Jestli s tím něco neuděláme, Bůh s námi :-(

backup

ne, ta ultimativni humorna definice inzenyra je:

Matematik, fyzik a inzenyr maji za ukol zjistit objem cerveneho mice.

Matematik zmeri prumer cerveneho mice a vypocita objem podle vzorecku na 2 desettina mista.

Fyzik ponori mic do kapaliny a zjisti vytlacene mnozstvi. Toto mereni opakuje 10 x a po zohledneni moznych chyb mereni oznami objem cerveneho mice na 4 desetinna mista.

Inzenyr odecte pozadovanou hodnotu z normy definujici vlastnosti cervenych micu.

Tento vtip ukazuje na tu zasadni vlastnost, ktera odlisuje ostatni zde jmenovana povolani od inzenyrskeho.

Jeste bych dodal, ze jsem rad, ze se zde vubec najde nekdo, kdo ma alespon trochu matnou predstavu o co jde. Ale jiste se mnou budete souhlasit, ze s Vasimi nazory narazite vesmes na nepochopeni. Ty Vami jmenovane vlastnosti sice charakterizuji _take_ inzenyrskou praxi, ale to zasadni v ni chybi. Zde odkazuji na definici prof. Honzika z brnenske VUT, co to inzenyrstvi je. (je mozno dohledat na netu).

Jiste , Wozniak je inzenyr. Ale i Thompson a Ritchie jsou inzenyri, i kdyz vlastne studovali matematiku. Kdyz se ale Wozniaka zeptate, jak inzenyrsky navrhoval ten Apple, tak vam rekne, ze nevi. Zrovna tak to nevi Thompson, proc ho napadlo navrhnout operacni system , ktery visi na open, close, read, write a select. To je na tom to zaludne, ze dostat ten napad smrdi po kreativite a umeni.

Souhlasim s Vami, ze to inzenyrstvi nejak upada. Ale to jen tak vypada. Stale nas spolecnost potrebuje. Momentalne sice honoruje vice blafaly v kravate, ale ani zde v Evrope to bez nas nepujde. Co nam chybi, je vetsi odmena, abychom si mohli bez starosti koupit nejnovejsi merici pristroje, aby kdyz ti kravataci srkaji nekde sampus, my mohli v klidu provest dalsi vzrusujici merici radu.

To s tou softwarovou krizi je velmi dulezite. Jako reakce na tuto problematiku se totiz objevil ten zasadni clanek, ktery ukazuje, ze i ve strojirenstvi vse nebylo odjakziva bezvadne. Na prikladu problematiky vybuchu parnich kotlu u parniku na Misissipi se ukazuje, jak se na to tenkrat slo a ze software neceka nic jineho.

muf

Našel jsem co praví profesor Honzík. Možná jsem nenašel to co máte přesně na mysli vy, ale zhruba to odpovídá i mé představě, jen do toho netahám ty tržní vztahy(i když něco na tom asi je). Honzík velmi správně poukazuje na 2 stránky inženýrství – neopomíjí tu tvůrčí řekněme Wozniakovskou :-) (když vidíte Wozovy konstrukce především v Apple II, je to fakt síla). U nás byli podobně schopní třeba bratři Smutní – jejich některé nápady byly geniální…
Blafalové v kravatě se nám na Západě silně přemnožili a výsledky vidíte ihned jak se podíváte kamkoliv do Zpráv nebo pustíte rádio…Přepadá mě pesimismus, když to vidím. Poraďte prosím zdroje informací, kde bych načerpal radostnější pohled, že není až tak zle…

Martin Soušek

Zdroj té úvahy o parních kotlech by byl?

backup

N. G. Leveson, High-Pressure Steam Engines and Computer Software, Computer, October 1994, page 65 – 73

takeinzenyr

Pánové, opatrně prosím s přejímáním definic — tedy těch neformálních. Obzvlášť v IT musíte počítat s pojmem životnost definice (než se najde nějaký, jak říkáte „blafal v kravatě“, který definici překroutí). O čem tady pravděpodobně polemizujete, je souvislost mezi inženýrstvím a technickým pokrokem. Praví inženýři (tedy asi včetně vás) ji vidí implicitně.

devnull

Ja jsem si precetl prvni odstavec, pak jsem scrolloval a hledal nejakou anketu – a nic. Alespon prvni titulek v diskuzi me zaujal :)

talpa

Souhlasim ze je to blbost, pripad od pripadu je to jine, zda byt ci nebyt umeleckym programatorem, nekdy je to dokonce efektivnejsi a soft je vykonejsi, blabolit nadtim je opravdu zbytecne, kdyz to nic neresi a k nicemu to nepomuze, hezci by tu byla basnicka. Teda chceme basnicku, jupiii napad:))

Matlam tady kod,
jako negramot,

chyby delam z ostra,
jsem koderu postrach.

Umělec

Že by definice prototypu programátora, co hledí jenom na to, „aby to sakra fugovalo“, popisovaného v článku?

Matlám tady kód,
jako negramot.

Chyby dělám z ostra,
jsem kodérů postrach

(kdo to po mně převezme,
může se třeba posrat).

Ale na tom nezáleží,
já vám řeknu, oč tu běží:

„Hlavně že to funguje
a pěkně se to rýmuje.“

Tak matlejte klidně taky,
umění je pro č*****.

Linuxový otaku.

A pak užitek při dlouhodobém používání.

ten může být z hlediska manažerů kteří se softwarem nepracují stejný bez ohledu na to, jak je ten software zaměstnancům-uživatelům nepříjemný. Takže je lepší dodat nějakou slátaninu rychle a levně, aby se mohl plnit úkol pro který je určena, a to že uživatelé budou nadávat, a programátoři taky nebyli elita, je nevzrušuje. Proč by práce měla být zábava pro obě strany? Dokud jezdí produkt z linky a je dodáván na trh, tak ať si zaměstnanci nějakou tu podpůrnou aplikaci restartují třeba 10x denně a v duchu proklínají programátory, ale pokud to neovlivňuje samotný mega proces výroby, tak je to jedno. To je manažerská logika…

Mard

Kdyby tahle logika nebyla, tak už SAP nikdo nekoupí :-(

muf

Programátor by měl být především inženýr a technik. Ne zcela nutně formálním vzděláním, ale hlavně myšlením.
Dnes tomu tak často není a podle toho to mnohdy vypadá. Člověk by zaplakal, když vidí ty bastly, dnes vydávané za software, uklohněné lidmi, kteří vlastně ani ve skutečnosti nevědí, co to je počítač a „computer science“ jsou pro ně sprostá slova….
Čest a sláva té menšině skutečných programátorů…. ať už tvoří v čemkoliv pro cokoliv od mikrokontroléru po třeba aplikaci pro banku. To oni dělají řemeslu dobré jméno.

muf

Elegance řešení nebo samotného kódu není s opravdovým inženýrem v rozporu. Nebo myslíte, že takový člověk má rád rychlobastly, kterými se dnešní trh jen hemží? Ne – dobře totiž ví, že elegantní řešení zpravidla řeší zdroje, bývá spolehlivé a snadno se udržuje. Ano, někdy je třeba na nalezení elegantně jednoduché cesty více času – to není na škodu a snad to momentálně bláznící svět opět pochopí.
Neštěstím dnešního světa je mimo jiné nezdravě vysoká míra vměšování kšeftu a marketingu do práce inženýrů.

Inkvizitor

Souhlasím, „krása“ programu podle mě spočívá v tom, že je logický a přehledný. Takový program se pak snadno optimalizuje a případně i opravuje, pokud se v něm objeví nějaký problém. Vzpomínám si, jak jsem někdy v 80. letech narazil na článek, kde citovali nějakou „programátorskou moudrost“, která zněla „pokud program nefunguje správně, přidej další proměnnou“. To je příznak katastrofy, špatného návrhu a dost možná i špatně zvoleného programovacího paradigmatu. Pak existuje ještě měkčí verze takové katastrofy a to napsání „dokonalého“ programu, který dělá přesně co má a je výpočetně optimální, ale v němž se nikdo nevyzná, snad kromě (v lepším případě) samotného autora. Takový „génius“ je v byznysu většinou nepoužitelný, protože jeho díla prakticky nelze škálovat a rozvíjet. Z tohoto pohledu je rozdíl mezi „krásou geniální – esoterní“ a „praktickou krásou“.

Na druhou stranu je ale potřeba chápat tu obchodní stránku. Pokud znamená napsání korektního a „krásného“ programu to, že Tě konkurence zašlape do země, je třeba prostě udělat kompromis. Zákony ekonomie jsou neúprosné – dostupné zdroje jsou omezené vždycky. Někdy je prostě lepší program „naprasit“ než léta brousit diamant, o který v době vydání nikdo nebude mít zájem nebo rok před vydáním sledovat, jak firma zavírá krám, protože už nemá na výplaty a nájem kanceláří.

dfsagdfgdsg

trochu bych zapolemizoval, ze se programatorstvi lisi treba od doktoriny.
i clovek bez vzdelani by s trochou skoleni byl schopen lehcich
lekarskych ukonu (sam jsem si suchym ledem vypalil bradavice), ale bez
skoleni a treninku z nej nebude dobry chirurg.
a neni to stejne s programovanim, bez treninku clovek udela programek, ale
jak to bude vypadat. teprve zkusenejsi a lepsi borec (no nemusi mit
k tomu titul z vysky) muze psat jadro systemu.

Aleš Roubíček

Už originál je jaksi mimo a Craftmanship movement nějak nepochopil, ale překlad to posouvá ještě absurdnějším směrem. Sorry Martine.

Program

Jenže přesně to programování možná je, ne? Programování není sbastlit co nejrychleji řešení, které vypadá funkční. K čemu jsou podle Vás např. návrhové vzory, code style a různá doporučení, jak se to má psát? Už jste někdy programoval? Už jste někdy musel rozšířovat rychlobastlený kód? Evidentně ne…

Aleš Roubíček

Pozor, Martin je autorem překladu. Můj komentář je směřován na překlad „umělecké řemeslo“ a „umělecké programování“ ne na obsah článku.

Aleš Roubíček

Ok, to chápu. Problém je v tom, že už originál je mimo. A pak už jen ztraceno v překladu… :)

Z českého překladu pak můžu chápat, že článek bojuje proti „SW metrosexuálům“, což Craftmaship movement rozhodně není. Nebo pokud jsem v obraze, tak krásně vyleze ven, jak utor bujuje pouze s vlastním nepochopením.

Doporučuji přečíst Uncle Bobovi reakce na tento a podobné články:
http://cleancoder.posterous.com/software-craftsmanship-things-wars-commandmen a http://cleancoder.posterous.com/individuals-and-interactions

arron

Nejake dovysvetleni smyslu tohoto clanku by se jiste hodilo :-D Sam jsem v prubehu cteni stale menil nazor na to, o cem ten clanek vlastne je. A na konci jsem zjistil, ze si vubec nejsem jisty, co tim autor chtel rict a co si z toho mam vzit. Az po precteni komentaru zacinam mit pocit, ze tusim:-)

Nicmene opet vyborny vyber tematu, diky moc :-)

Pavel

No jo, blbý Frantové čtenáři….

Opravdový odborník :-)

od „člověka co staví most nebo montuje trubky“

I to montování trubek se dá dělat elegantně, hezky, aby tím nejen tekla správně voda, ale aby to i nějak vypadalo. Stejně tak i při tak primitivní činnosti, jako je vození kolečka nebo házení lopatou, je potřeba přemýšlet – kdo nepřemýšlí, ten se zbytečně nadře a výsledek jeho práce nebude takový, jaký by měl být (a to už jsme dokonce u dělnických profesí, ne u řemesla). Tohle je prokletí dnešní doby – myslet si, že manuální práce je fuj, a „řemeslo“ je hanlivé označení.

vikr

U nás (ve středních čechách) máme pro řemeslník a řemeslník rozlišení „fachman“ a „fušer“ přeneseno do IT asi odhadnete kterej to umí a kterej ne :-))

Aleš Roubíček

Já to chápu tak jako s tím instalatérem. Chceme po něm, aby byl kohoutek, tam kde má a mohli si občas naštelovat boiler. Ale nechceme, aby nám za chvíli neprosakovala voda ze zdi, aby nám neupadával kohoutek nebo nezůstávala páka v ruce, když se zrovna sprchujeme a voda je moc horká… :)

Aleš Roubíček

Ano, a tom je software craftmanship, v ověřených postupech, řemeslné preciznosti a zdravém rozumu. :) Musíme brát v potaz taky kontext manifestu. Vznikl jako reakce na vytrácející se důraz na technickou stránku věci v Agilním hnutí, které sklouzlo k čistě projektovému vedení, které samo o sobě není zárukou dobrých výsledků.

Ales Roubicek

Podepsat se je snadne, protoze jde o manifest, nikoli o certifikat. Muzem to brat jako smlouvu se sebou samym, jako commitment.

Justas

Jenomže, pokud jsem článek pochopil dobře, o to právě jde. Pokud to někdo vezme jako svůj osobní závazek, je na cestě k tomu, stát se tím „uměleckým řemeslníkem“ neboli „fachmanem“. Ale je spousta těch, kdo napíší své jméno do formuláře a domívají se, že tím se stali odborníky. A pak často pohrdají těmi opravdovými programátory.

Asi všichni známe článek „Vývoj programátora“ (např. http://mcu.cz/plugins/tcpdf/tcpdf.php?news.408), který přesně popisuje vývoj fušera. Místo aby směřoval k maximální efektivitě směřuje k maximální efektnosti.

Opravdový odborník :-)

Vývoj softwaru je jak řemeslo (z největší části), tak i umění a věda (oboje z menší části). Rezignovat ale úplně na tu uměleckou případně vědeckou stránku je stejně tak chyba, jako odvést špatné řemeslo. Je to podobné jako v jiných oborech. Koupil byste si např. reproduktorovou soustavu, která sice hraje dobře, ale vypadá naprosto odporně, do vašeho bytu se nehodí a její autor je nedouk, který nemá ani základy fysiky, což se mimo jiné projevuje chybným značením na štítcích a konektorech?

titanik

Mezi remeslnou praci a kvalitni praci nelze davat rovnitko! Remeslnik – istalater (vyuziji vyse zmineny priklad) udela vodovod z 1.5m dlouhe souvisle trubky, jiny instalater – remeslnik ji udela spojenou z peti kusu, oba odvedli remeslnou praci a jejich dilo bude dlouho slouzit. Ale v prvnim pripade mohu bez komplikaci pripojit dalsi potrubi, coz se u druheho neobejde bez nutnosti vyhodit cast potrubi a spojek, aby napojeni spolehlive fungovalo…

neodbornik

„Remeslo“ neni vubec spatne slovo, nebal bych se ho pouzivat. Programatori, doktori, elektrikari, instalateri – vsichni jsme v podstate remeslnici. Akorat nekdy je potreba u toho vic myslet, vic vedet nebo byt vic sikovnejsi. Je radost spolupracovat s elektrikarem nebo instalaterem, ktery u prace premysli. Mnohem vetsi hruzu mam prave z „umeleckych remeslniku“, podle me to jsou spis takovi, kteri dokazou zakaznika presvedcit, ze jejich dilo je krasne a proto drazsi. To je obvykle jejich nejvetsi umeni. To uz radsi ten „cech“.

František Kučera

Ad „Mnohem vetsi hruzu mam prave z „umeleckych remeslniku““

Všichni naštěstí nejsou stejní. Zrovna nedávno jsem mluvil s jedním umělcem o jeho soše a dalších dílech. Je skvělé vědět, že je za tím nějaká myšlenka, že se tím snaží něco sdělit a že to není jen „samoúčelná úchylárna“ (což bohužel velká část dnešního „umění“ je).

Sten

Sochy jsou něco jiného. To je umění. Těžko budou sochy plnit nějaký jiný účel než estetický. Stejně tak třeba Boost je umění. Ale užitečné je to teprve, když postavíte budovu se sochami (napíšete aplikaci používající Boost).

povinna prezdivka

craft mapuje na remeslo velice dobre, a craftsmanship je proste fortel. takze ja jsem se pri cteni nedostal ani pres „Pozn. prekl.“.

Program

se v poslední době rojí takovéto názory. Není asi divu. Dřív, když jste sbastlili kód, tak se Vám sám brzy zhroutil nebo alespoň vyžral paměť kvůli špatnému memory managmentu nebo plýtvání zdroji. Dneska VM spoustu věcí vyřeší za vás, takže šílený bastl vypadá, že funguje. Možná si akorát někde zlomíte nohu, až Vás bude Váš prokleje ubožák, který s tím kódem bude muset dál pracovat.

Když si třeba koupím auto, taky mě nezajímá, jak přehledně jej konstruktér navrh. Ani managenent to nezajímá. Ale znamená to, že ten konstruktér to může načrtnout, aby se v tom vyznal jen on?

Stanley

Souhlas. Ten článek je blábol člověka, který neprogramuje, ale kafrat se do toho snaží. Dočíst se to nedalo…

Sten

Doporučuji ten článek přečíst, než budete kafrat. I když autor údajně neprogramuje (neověřoval jsem), tak píše o něčem úplně jiném, než s čím nesouhlasíte.

Program

Trocha konkrétnosti by nebyla od věci…

Sten

Dobře, konkrétně: Program by měl být elegantní, snadno udržovatelný i jednoduše pochopitelný. To nikdo nepopírá. Ale cílem programování by nemělo být, aby program byl elegantní, snadno udržovatelný a jednoduše pochopitelný. To zákazníka nezajímá, to by měla být samozřejmost (na druhou stranu, pokud to program nebude splňovat, nic vážného se většinou nestane). Stejně jako most bývá elegantní, snadno udržovatelný a jednoduše pochopitelný (pro stavaře). Hlavním cílem by ale mělo být, aby ten program dělal to, co se od něj očekává, tak, jak se od něj očekává, použil ta rozhraní, která zákazník má, a vůbec aby co nejméně dával najevo, že tam je.

Pokud bych měl být úplně konkrétní: teď pracuji s jedním programem, který se jmenuje Hyparchiv. Vůbec není elegantní (běží na Windows Serveru ☺), pravděpodobně není snadno udržovatelný (je to komerční program ☺) a už vůbec není jednoduše pochopitelný (instalace na nový server zabere vždycky několik dní a používá to spoustu různých adresářů a úložných systémů). Ale když jej nainstalujete a spustíte (resp. když to za vás udělá odborník), dělá potom přesně to, co se od něj očekává: archivuje dokumenty. Miliony dokumentů, terabajty dat, mnoho let a bez ztráty jediného bitu. A dělá to tak, že o něm málokdo ví. Když někde chtějí archivovat dokument, vloží jej do skeneru a zmáčknou jedno tlačítko (přímo na skeneru). Hned po naskenování jej najdou ve svém IS, stejně jako jej najdou i jejich zákazníci (tedy pokud je to jejich dokument, cizí samozřejmě nenajdou). A najdou jej kdykoliv, podle jakékoliv identifikace včetně fulltextového hledání a ať už ten server ty dokumenty přesouvá kamkoliv od zápisové vyrovnávací paměti po write-once Fibre Channel disková pole.

Bohužel naprostá většina komerčních i open source programů se tak nechová a IMO právě kvůli tomu se začalo tak dbát na eleganci, udržovatelnost a pochopitelnost. Na funkčnost se tak nějak zapomnělo.

Mard

Dovoluji si nesouhlasit. Estetika je také důležitá. Obecně vzato bychom mohli bydlet ve vyřazených kontejnerech, zateplených polystyrenem. Případně v zemljankách. Program to nejsou jen střeva ale i vnějšek. Pokud udělám dobrá střeva, tak vnějšek reaguje rychle a efektivně. Rovně je důležité jak vypadá vnějšek. Není to tak dávno, kdy bylo dost aplikací se žlutými tlačítky na červeném pozadí s blikajícím nadpisem.
S čím bych mohl souhlasit je vaše poznámka o funkčnosti. Ano, sebelepší a sebe krásnější program, co nefunguje správně je k ničemu. Ale proč má linux obecně tak malé rozšíření? Funguje dobře, střeva jsou správně napsané, ale běžný uživatel dá přednost něčemu jinému. Bohužel :-(

Clock

Ja kdyz si koupim auto, tak me zajima, aby fungovalo, a jakmile se objevi, ze je v nem od vyroby zavada, budu ho reklamovat.

Nox

Jenže právě stylem prezentovaným v článku by pak oprava po reklamaci trvala rok a firmu by to stálo jako nové auto…

megahafo

Problem je v tom, ze ked je v aute problem tak musi byt dizajnovane tak aby servisak nemusel rozobrat cele auto koli vymene nepr. sviecky. To iste je i s programovanim. Tak sa pozna profik od bastlica.

Mirek Prýmek

Přijde mi, že tohle je časté nedorozumění: jakmile někdo někde zdůrazní, že jde o výsledek a ne o provedení, někdo jiný oponuje, že pokud je to blbě provedené, nedá se to udržovat.

Ale udržovatelnost je přeci taky výsledek!

A pokud je to údajně „blbě provedené“, ale nemá to žádné podstatné vnější důsledky (rychlost, náročnost, použitelnost, udržovatelnost, …), v čem je to vlastně „blbé“?

backup

jak jsem psal nahore, diskuze bez prikladu s automobilem neni _uplna_.

Program

Když automobil se na tohle docela hodí, ale můžete si za to domyslet cokoli, co je dostatčně složité a čehož pořizovací náklady jsou dostatečně vysoké na to, aby se vyplatila údržba a opravy.

balik

Pri tvorbe softveru by „majstri“ a „ucni“ nefungovali. Pri umeni, murarcine atd… , je to jasne. Pozriem sa na obraz / stenu a vidim, ze je vyborne zvladnuta. Ten, kto zrucnost ovlada, je majster. Zrucnost sa ziskava vdaka talentu a dlhodobej praxi.

Ale co by mal taky „majster“ ovladat, aby mohol nieco dat ucnom v IT? Poziadavky sa menia, dnes neplati, to co platilo vcera. Majster moze byt kazdy a zaroven nikto.

Clanok som nedocital. Som za to aby v IT pracovali iba kvalifikovani ludia, ale tento clanok je blabol.

ales roubicek

Ani nevite jak moc daleko jste od pravdy. Softwarovy vyvoj stavi na principech ltere se nemeni cela desetileti i staleti. Mentoring je jednou z podcenovanych praktik a casto absentujici. Podle toho to pak vypada. Craftmanship se snazi mentoring, vdelavani a cviceni zanest do bezneho vyvpjarskeho zivota.

balki

„Softwarovy vyvoj stavi na principech ltere se nemeni cela Desetileti i staleti.“

Mozno su sucasti, ktore su nemenne, ale inac dovolim si nesuhlasit.

Uz len modely vyvoja. Najprv bol vodopadovy model, potom sa zacalo pristupovat iterativne, a teraz mame agilne techniky, ktore zasa prinasaju nieco ine.

Techniky modelovania a analyzy sa neustale menia. Boli vyvojaky , DFD, teraz mame UML, pomaly sa zacinaju presadzovat aspektovo-orientovane techniky.(Nielen rozdiely v obrazkoch, ale aj v mysleni)

Mame strojove programovanie, proceduralne, funkcionalne , objektovo-orientovane, aspektovo-orientovane. Kazdy den sa puziva iny framework s inymi principmi. Iny jazyk, s inymi zaludnostami.

Pristupy testovania sa tiez stale menia a zdokonaluju.

Taky „majster“ by mohol byt majstrom len velmi kratko (alebo by ucil len velmi vseobecne principy, co sa robi aj teraz a ludia na to aj tak nadavaju.)

kverulant

Jenže tyhle změny probíhají ve všech oborech. Např. i mistr na pásu v továrně dělá dnes něco jiného než mistr před 20 lety. Přitom tam v mnoha případech je pořád ten samý člověk. To že se člověk musí celý život učit, aby mu neujel vlak, je normální součást života lidí. Rozhodně to není specifické pro IT obor. Lidi co si prošli více metodikami vývoje mají lepší náhled na celou problematiku a nováčkům rozhodně mají co říct.

Aleš Roubíček

Přečtěte si prosím nejprve něco o historii vývoje a doplňte si zmiňované pojmy. Kdybyste měl dobrého „mistra“, neudělal byste v jednom komentáři tolik faktických chyb. :)

Mistr zná metodiky vývoje, jejich historii a souvislosti. Mistr ví, že UML není nástrojem analýzy a modelování, ale jiný způsob „zápisu.“ O dost horší než kód, se zjistilo. Ale na skicování některých nápadů je to dobrý.

Mistr zná paradigmata (funkcionální tu je od 50. let, objektové od let šedesátých a strokturované programování je kupodivu o dost mladší. Aspekty jsou poměrně mladé, ale to je spíš dáno technologickýmy možnostmi než, že by na to do tý doby nikdo nepřišel.) a ví v jaké situaci, které použít. Ale v každém systém mu se najde příležitost ke každému, protože každé řeší jiné problémy a navíc se dají dobře kombinovat.

balki

Dobre teraz slovickarme. S uml su spojene techniky ooans a UML nie su len tie obrazteky. Ak sa to tak pouziva, je to nanic.

balki.

A prosim vymenovat fakticke chyby.

balki

Taketo veci nas ucili na skole. Ale to je len jedna cast majstrovstva.

Darmo ma clovek presahy do inych disciplin, ked nevie spravit tu spinavu robotu a vytvorit kvalitne dielo, tiez nemoze byt majstrom.

balki

Co sa usilujem povedat, ze „majstrovstvo“ v IT je tazko uchopitelne a definovatelne. Mohlo by to viest ku skostnatelosti, co tiez nie je dobre.

Dotycny prime koder s presahmi moze byt uzitocny vo firme, ale ako majster by bol mozno zatrateny.

Ospravedlnujem sa za ten blabol :D

maio

Pekne to je popisane v knihe „Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman“. Existuje aj free online verzia.

Majster/Ucen dava zmysel v kazdom obore, ktory je netrivialny na zvladnutie a vzhladom k tomu, ze vyvoj softwaru je komplexna cinnost tak dava samozrejme zmysel aj tu.

V zahranici existuju firmy ako napriklad Obtiva, ktore tento system uspesne pouzivaju (google obtiva apprenticeship).

mm-marek

nedávno zemřel profesor Vaníček, skutečný mistr svého řemesla. Ve svém věku samozřejmě nestihal všechny novinky, programovací jazyky a frameworky, ale právě diky svému přesahu a chápání matematického základu programování (které do nás tlačil horem dolem) byl mistrem. V tom se mi líbí článek nejvíc – rozdělení na mistry a učně. Všeobecně v informatice si o sobě kdekdo může myslet že je mistr a je zatim třeba jen špatný učeň.

požadavky se mění? chyba lávky, požadavek je stále stejný, mění se jen prostředky.

Tomas Z.

Tuší někdo co myslí autor tou částí s nage ne katou? Já znám jen nage no katu vytvořenou koncem 19 století Jigorem Kanem pro judo, která má strukturu podobnou, ale rozhodně ani náhodou nehrála uvedenou roli, a mé zdroje i Google mlčí.

Pokud si vymýšlí nepřesné analogie pro svůj článek, tak to není dobrá známka.

Clock

Obavam se take, ze tvrzeni v clanku o nage no kata nejsou pravdiva:

Nage-no-kata is a throwing kata in judo. The kata is composed of 3 techniques from each of the five throw groups in judo: hand techniques (te waza), hip techniques (goshi waza), foot techniques (ashi waza), rear sacrifice techniques (ma sutemi waza) and side sacrifice techniques (yoko sutemi waza).

http://en.wikipedia.org/wiki/Nage_no_kata

cleb

Tvorba obrovských systémů ne. Je otázka jestli by se všichni ti webkodéři (teď včetně mě, nějak si člověk při studiu vydělat musí) měli nazývat programátory. Podle mě skoro ani ne.

(z článku jsem četl pouze TL;DR a tímto redakci děkuji za jeho umístění do článku – škiovná věc)

none

Pěkný článek. S programátorstvím je to zcela stejné jako se všemi ostatními
„povoláními“. Vždy je důležité, aby výrobek splňoval účel, ke kterému byl
vytvořen (a je jedno, zda je tím účelem ozdobit nemovitost, nebo unést auto, či
zpracovat data). Tento primární účel je nejdůležitější. To co je nad tím, jaksi
nad rámec toho základního účelu, může být uměleckým dílem, ale neovlivňuje to
primární účel. Podívejme se na dlážděné cesty „kočícími hlavami“. Pro to aby
splnily svůj primární účel stačí, aby se po nich dalo chodit a jezdit. Na
většině z nich je však ještě určitý vzor a mozaika. Kromě základního účelu jsou
ještě pěkné.

Článek jsem pochopil tak, že programátoři vytváří kód se základním účelem. Do
tohoto účelu počítám například čitelnost kódu, dokumentaci, ošetření chyb a
samozřejmě dlouhodobou očekávanou funkčnost. O těchto vlastnostech není pochyb,
že se nejedná o umění, ale o dovednost. Tím je splněn základní účel. Když je
navíc kód mnohonásobně efektivnější, kratší elegantnější, při zachování
základního účelu, může to být projev umělecké dovednosti autora. Tak jako je to
například u hraní na hudební nástroj – hrát na klavír se víceméně naučí každý,
ale aby to byla hudba, umění, na to je třeba mít talent, být umělec.
Programování je běžná práce a hranice, kde začíná být uměním je mnohem dál, než
si signatáři pravděpodobně představují.

koudy

+1
Moc dobre napsano.

kverulant

Podle mě programování jednoznačně není umění ať už na jakékoliv úrovni. Přijde mi to podobné, jako kdyby někdo tvrdil, že pěkně provedený matematický důkaz je umění (ano jsou zvrácení lidé, co si to myslí :-). V umění je nejdůležitější nějakým osobitým způsobem vyjádřit nějakou myšlenku a působí spíše na emoce. Programování je typická inženýrská disciplína, kde se dá práce hodnotit objektivně a jednoznačně nejdůležitější je sebekázeň (nepsat osobitý kód, ale dívat se na to co nejvíce objektivně). Pokud už by něco mělo být umění, tak jedině výstup programu.

ferren

programovani je vubec takova podezrela cinnost. za sebe reknu uprimne,jedine co me u ni drzi jsou hodne nadstandardni penize. ani uz me to nebavi, v podstate tak trochu obtezuje. zaroven myslim ze nejsem spatny programator,mam pomerne dobrou povest. sam sebe se ptam, jak dlouho bude takhle nevyvazena era s vysokymi prijmy trvat, ono opravdu na tom neni nic sloziteho, je to velice jednoducha nenarocna prace. kdy se to narovna s podobnyma kancelarskymi cinnostmi, napr. s ucetni?
nebo opravdu si myslite ze si z nejakeho duvodu zaslouzite x-nasobek platu ucetni? ja si ho nezaslouzim,urcite ne, presto tak nejak je. jsem z toho trochu nesvuj:-)

Clock

U me podobne, programovani me casto stve a nudi.

muf

No, tak ono jde hlavně o to, co a jak programujete.
Pokud děláte třeba řídící systém pro elektrárnu, motor, letadlo nebo třeba nějaký operační systém (dokonce i pro řídící jednotky v autech se dnes dělají malé speciální OS) atd… jsou vaše příjmy nejspíš oprávněné – na funkčnosti záleží mnohdy bezpečnost atd…
Pokud ale třeba taháte myší a bastlíte např. webové, ekonomické a podobné aplikace, vůbec se vašemu černému svědomí a znuděnosti nedivím.
Prostě jsou programátoři a programátoři.

ferren

no prave delal jsem pomerne prestizni a narocne hi-end CPU vytezujici algoritmicke veci, takze urcite ne vylozene kancelarske bussiness reseni,natoz webovou nudu, presto kdyz nekomu rikam ze sem programator se tak trochu stydim. neznam moc jinych profesi s tolika protiklady (prijem vs prestiz) to i pravnikum se asi rika lepe ostatnim ze jsou pravnici:-)
cely ten IT svet je nejakej divnej….ale ty penize…:-)

Aleš Roubíček

„narocne hi-end CPU vytezujici veci“

Něco jako: (?)

while(true) {} 

:)

muf

Pokud děláte, jak píšete, něco náročného, nechápu vaše pocity. Stydět by se měl spíš ten typický dnešní právník, který mnohdy jen parazituje….
Já se teď mimo jiné živím na psaní kódu pro zmíněné řídící jednotky. Rozhodně si nepřipadám jako flákající se vyžírka. Krize mě z IT zavála k této práci, ale doufám, že se časem vrátím k milovanému Unixu….ani tam jsem si jako vyžírka nepřipadal. Hlavu vzhůru :-)

nick

„Pokud ale třeba taháte myší a bastlíte např. webové, ekonomické a podobné aplikace, vůbec se vašemu černému svědomí a znuděnosti nedivím.“

Kristova noho! Co je podle vás tak podřadného na vývoji webových aplikací? Dokonale zvládnout práci s grafikou, typologií, návrhem UI a vlastních komponent, značkovacími jazyky, styly, JavaScriptem, PHP/Javou/Ruby/… a všechno to skloubit dohromady v perfektně funkční celek zabere několik let praxe. Měl jsem několik možností vidět pokusy vytvořit webovou aplikaci od podobných elitářů, jako jste vy a pokaždé to stálo za velký kulový – vypadalo to odpudivě(design a barevné provedení ála 1995), stránky byly odporně statické, user experience nulová, většinou to fungovalo jenom v jednom prohlížeči nebo se rovnou rozpadal layout a v nesémantickém napraseném kódu stránek s inline styly a podobnými lahůdkami se nejspíš nevyznal ani autor. Webdesign je z velké části o tom umění a estetice, kterých se podobným namachrovaným technokratům nedostává. Nejspíš máte zkreslené představy, co to vlastně ten webdesign je. Mimo to spousta lidí včetně mě zároveň programuje i v „nepodřadných“ jazycích – taky bych měl mít černé svědomí nebo stačí cítit se rozpolceně?

Nox

Co jste popsal není 100% už „programátořina“, i tak ale máte pravdu že je rozdíl zda se chápe programování – a spousta lidí toto bere jako jediný pohled (a z toho pak asi pramení i různé rozkoly) – jako především matematika + hardware, horkotěžko se tam snaží protlačit alespoň nějaká algoritmizace (trochu přeháním, vím, je to trochu narážka)

neodbornik

Asi delam neco spatne, ale mam pocit, ze nemam x-nasobek platu nasi ucetni. Treba to bude tim, ze nespim s nasim sefem? :)

František Kučera

Výše platu je výsledkem nabídky a poptávky. Jestli máš slušný plat, tak buď rád a užívej si to. ;-) Rozhodně si nemáš co vyčítat nebo z čeho být nesvůj – dávají ti ho dobrovolně, tak v čem je problém?

Heron

Tuhle poučku jsem slyšel mnohokrát. Ty tomu fakt věříš? Výše platu je taková, jakou si člověk vybojuje. Je tedy závislá na osobnostech zaměstnance a zaměstnavatele. Znám mnoho lidí, kteří jsou pro firmu hluboko v mínuse, přesto berou slušné platy. Ucekacali nadřízené (případně je drží za koule) o své potřebnosti. Na proti tomu znám mnoho pracujících lidí, kteří bohužel nemají odvahu si říci o více. Plat prostě není funkcí potřebnosti práce, ani nabídky a poptávky. Stejně jako cena zboží.

Sten

Plat (stejně jako ceny zboží) v tržním prostředí je vždycky výsledkem nabídky a poptávky, ale to není matematická funkce s pevně daným výsledkem, existuje tam určitý (občas i značně velký) rozsah, ve kterém se lze pohybovat a se kterm lze manipulovat (na obou stranách). Někteří zaměstnanci se nabízejí lacino, tak dostanou málo. Jiní se nabízejí draze, ale nabízejí něco, co nikdo jiný (a může to být i to, že „drží nadřízené za koule“). Pokud by ale chtěli víc, než je někdo ochoten za jejich nabídku zaplatit, tak o tu práci prostě přijdou.

backup

viz dalnice a jine statni zakazky.

uf

Ty nadstandardní peníze porovnáváte s prodavačkou v malém krámku, kde dělají za minimální plat? Pak jo. Já se honím jako blbec, kolega taky, ale peníze a benefity nikde. Pak jsou takoví, co se umí předvádět, jezdí na školení, přiživují na rozjetých projektech a ted už dělají šéfa jinde.

Clock

Temer u kazde vety v clanku se citim nerespektovany. Kdyz se prezentuje jako fakt neco, na co bych mohl mit jiny nazor, citim se vetsinou nerespektovany.

Pokud by autor mluvil o svych pocitech nebo nazoerch, necitil bych se nerespektovany. Pokud by jako fakt prezentoval neco, co je vseobecne prijimano, tedy i mnou, take bych se ebncitil nerespektovany. Pokud by sva tvrzeni prezentovana jako fakt podlozil odkazy, take bych se necitil nerespektovany.

Nox

Souhlasil bych, na druhé straně kdyby do každé věty musel napsat „myslím že“ nebo ekvivalent, článek by byl nataženější delší než už je teď…

Clock

Ted se citim nerespektovan kdyz mi nekdo rika, ze muj pocit neni na miste. Z erci o male sebejistote a prerosteleho ega se citim urazen. A z posledni vety opet nerespektovan a nepravem kritizovan.

Nox

Tak to neberte tak vážně ;)

Nox

Kromě toho, že myslím že zrovna u programátorů je těch co si IT vybrali, protože ho mají rádi, celkem dost

Sice souhlasím že mít na paměti užitek je extrémně důležité, pravděpodobně nejdůležitější, ale…
Na druhé straně mi přijde že autor nějak pozapomněl že vývoj taky něco stojí, že vodopádový model není to pravé, že vývoj nekončí vypuštěním softwaru a že požadavky nejsou rigidní … proto přístup „zprasím to a nějak to bude fungovat“ není úplně skvělý, byť je to hezky blýskající se protipól vypiplávání kódu a overengineeringu

A jsme opět u toho že svět není černobílý

Karel

Článek je to pěkný a i s ním do jisté míry souhlasím. Ovšem nevyhnul se tomu, co osobně kritizuji už 15 let – mluví se o „programátorech“ a přirovnávají se k zedníkům atd. Podle mně je to hodně vysoká úroveň abstrakce. Něco jako „doktor“. Stejně tak jako nechcete aby vám koleno spravoval patolog a děsíte se toho, že by vám slepé střevo operoval psychiatr (byť špička v oboru), stejně tak je zrádné obecné označení „programátor“. Je to tak všeobjímající pojem jako zedník, stavební dělník, architekt, technolog, logistik a ekonom dohromady. Nechci aby mi dlaždičky pokládal architekt a děsím se toho, že by mi most počítal logistik (nebo nedej bože stavební dělník). U programátorů je to stejné – někteří jsou tam na nekreativní práci podle technických specifikací, jiní tam jsou od toho, aby psali technické specifikace podle funkčních specifikací, jiní jsou tam od toho, aby podle přání zákazníka psali funkční specifikace, jiní tam jsou na testování, jiní tam jsou na technologii, specikem jsou programátoři, kteří píší nástroje pro další programátory, stejně tam je tam malá skupinka lidí, kteří by se dali označit za „R&D“ nebo za „strategické plánování“ atd. Osobně za programátora považuji i sebe byť mou prací je práce se zákazníkem na zlepšování firemních a obchodních procesů a specifikace odpovídajících požadavků na technologii a IS (byť sám nepíšu ani řádek kódu, čeká se odemně výborná znalost IT technologií abych dokázal správně odhadnout co je a co není technicky možné a kudy vlastně jít). Spíš než přirovnání s doktory, přeci jen je u nich středem pozornosti člověk, takže se vše beztak točí jen kolem anatomie, se hodí přirovnání s tím „kdo všechno se jak podílí na tom, že na louce vyroste dům“.

Osobně za „mor programátorského řemesla“ považuji fakt, že je to nehorázně levná oblast s naprosto minimálním rizikem. Prostě jednou koupíte PC a software a pak platíte mzdu programátorovi bez ohledu na to co dělá. Oproti tomu kovář musí kupovat materiál a dost se rozmyslí než ho jen tak nějakým pokusem zkazí. Stejně tak je obvykle přijatelné, že se používá polofunkční program, zatímco u „obvyklého výrobku“ typu zámek nebo kolo by to byl problém. Zatím nikdy v historii takový obor v takovém rozsahu neexistoval (kde jediná investice je čas) a nejspíš i proto se nám doposud nepodařilo postavit ho do nějakých mezí.

phr

Tak tohle nemusí být zdaleka pravda. Ono převedení dat z jednoho systému na jiný, vyškolení obsluhy, atd. obvykle nebývá úplně triviální a dík tomu se může dost prodražit. A to už je srovnatelné s tím zkaženým materiálem

D.A.Tiger

…jsou to tak trochu kecy. V jakémkoliv oboru lidské činnosti ať už je to obyčejná dělnická profese, nebo programování, či třeba řízení podniku se dá práce odbýt, udělat dobře, a nebo si s ní opravdu vyhrát. Ono totiž záleží na člověku, který danou práci vykonává – na jeho přístupu a motivaci, a na podmínkách v níž danou práci vykonává.

Instalatér, který svou práci z nějakých důvodů nedělá moc rád, ale jen proto, že musí – ji udělá, ale… Pokud má do zdi zavést vodovodní potrubí, parkrát látne kladivem do zdi, nějak tam ty trubky napasauje, lehounce to zafixuje pár lžicemi sádry a jde od toho. Na ostatní si pořiďte zedníka a uklízečku. V opačném případě hezky majzlem a kladivem udělá drážku pro potrubí (dovolí-li to podmínky tak flexou), trubky ve zdi srovná, pečlivě vyrovná jednotlivé armatůry… Je-li to potřeba udělá i další práce.

Je to sice trochu přehnaný příklad (pro instalatéra rozhoduje co bude dělat zadání zakázky, takže nemůže od ní odejít, kdy se mu zachce) ale dobře ilustruje myšlenku. Podobně je to i s programátory. Pokud analitik se nebude s tím moc párat, prostě se to „nějak“ slátá a ono to „nějak“ bude fungovat a když ne, tak se to zas nějak zpraví. A co potom výkonnost takové aplikace. Možné vedlejší interakce s okolím (dneska je už málo aplikací, které běží na strojích samostatně) atpd…

Sice svou práci odvede, ale jaký je výsledek? To je často (až moc) hezky vidět třeba na widlích (nebo i na mnohých webech). Nemá smysl se moc rozepisovat o tom jak to dopadne, když to svou práci dělá kodér pouze… tak jak musí. Číst pak takové zdrojáky je podobné jak luštit šifru.

flv

Tedy prvne trochu jsem se musel smat kdyz tu nekdo poznamenal ze kdyz uz musi rict cim se zivi tak je mu lehce blbe :) kdyz rekne ze programovanim. Priznam se ze sam mam nekdy stejny pocit.

Nicmene to prirovnani ke klasickym remeslum (kovar, instalater), nevim nevim.

Oboji ma nejake, dejme tomu, predepsane postupy, nicmene mira abstracke uvazovani je rekl bych trochu jinde. Nemyslim ze instalater se
normalne potyka s tak komplikovanymi systemy jako programator.

Proste kdyz nekde praskne voda, fajn, instalater se podiva na trubky, vezme hasak a muze opravovat. Na druhou stranu kdyz se neco podela ve vetsim IS tak je to nekdy opravdu hodne detektivni prace a casto musite i vymslet nove postupy jak vubec chybu analyzovat.

Rozhodne je mi sympaticky ten pristup splasknuti ega (jsem vic nez instalater) ale obecne, nikdo mi nenamluvi ze se to bude moci kdy skutecne vecne stotoznovat s klasickym remeslem.

Proste IS systemy jsou neskutecne komplikovane (a ted mluvimd o IS sytemech na kterych jede wall street, letecky prumysl, banky), na jejich vyvoj, udrzbu, zmeny, upravy jsou potreba zatracene schopny lidi, casto vykazujici schopnost hledat reseni problemu hodne neotrelou cestou.

Takovych lidi zase tolik neni (coz bohuzel potom muze vest k tomu nabubrelemu egu, bohuzel.

titanik

„jen vezme hasak“ tak se prosim o napodobeni teto cinnosti NIKDY nepokousej!!

flv

Souhlasim :).

jehovista

„Proste IS systemy jsou neskutecne komplikovane (a ted mluvimd o IS sytemech na kterych jede wall street, letecky prumysl, banky), na jejich vyvoj, udrzbu, zmeny, upravy jsou potreba zatracene schopny lidi, casto vykazujici schopnost hledat reseni problemu hodne neotrelou cestou.“

Tak tohle me rozsekalo:) Az budes na nejakem podobnem critical systemu delat, tak se ti asi zborti svet. Schopnost programatora podle me moc nekoreluje s tim na jak „dulezitem“ systemu dela.

flv

Ehm, ja prave na podobnych systemech delam, to co jsem vyjmenoval.

Asi takhle, kolem se motaji i neschopny lidi, ale ti moc velkou vahu nemaji a postupem casu se vetsinou i samy vyselektuji (tedy pokud se nejedna o nejakeho hodne social skill cloveka).

Sorry ale tohle je moje zkusenost, vim ze lidi casto nadavaji jak moc neschopny clovek vede to nebo to, ano, zazil jsem, ale vic prevladali lidi co se hodily.

Co se tyce programovani, mel jsem schopne a mel jsem neschopne kolegy, ti schopni byli vzdy ti na kterych zalazi. Kdyz je pruser a banka ma dole dulezitou cast jeji infrastruktry diky chybe v dodanem IS tak budete zatracene rad za nekoho kdo to bude umet rychle vyresit.

To je konec koncu jeden z duvodu proc delam to co delam, vetsinou je to opravdu o tom co umite, nastesti (samozrejme vyjimky se najdou ale projekt s neschopnyma progr. se odepise sam).

l.

„Kdyz je pruser a banka ma dole dulezitou cast jeji infrastruktry diky chybe v dodanem IS tak budete zatracene rad za nekoho kdo to bude umet rychle vyresit.“

typicky se to ma tak, ze IS je zavisle na infrastrukture a nikoli opacne.

flv

Jiste, tedy pokud pod IS neni myslen system ktery zajistuje beh ostatnich IS systemu v bance, coz je to co mam na mysli v mem pripade. Omlouvam se ale nechci byt konkretnejsi o jaky system se presne jedna (ne, neni to zadny VMWare apodb, je to opravdu IS ktery „ridi“ ostatni IS).

Ovsem normalne to byva tak jak jste uvedl.

jehovista

Vsak ja na podobnych systemech taky delam(nefinancni, ovsem blize upresnovat nebudu, protoze pak by se ma anonymita smrskla tak na pet lidi) a nemam pocit, ze by se jednalo o nejake programatorske perly. Akorat se leje hromada(nekolikrat vic, nez do samotneho vyvoje) penez do testovani, procesnich dokumentu a podobnych serepeticek. Hackeri a enthusiasti se(imho) pohybuji v uplne jinych oblastech.
P.S. Jedna se o muj omezeny nazor a muzu se plest, do krve se hadat nebudu.

Sten

Ale vždyť ten instalatér na tom není moc odlišně. Když se na stropu objeví mokrá skvrna, protože někde protékají trubky, nemůže rozmlátit celé patro (nebo rovnou několik, klidně to může téct ve stěnách i ze střechy), aby našel, kde to protéká. Stejně tak nemůže fungující systém (domovní vodovod) odpojit na moc dlouho, protože se používá. Musí přijít na způsob, jak najít, kde to teče (a to je stejně jako u software 9 dílů rutiny a 1 díl improvizace podle aktuální situace), a přitom to udělat rychle a měl by při tom rozkopat co nejméně podlah (samozřejmě, i když jich rozkope hodně a bude mu to trvat dva týdny, zaplatí to zadavatel, u software je tohle stejné, ale dobrý instalatér to neudělá, protože jinak by to byla jeho poslední zakázka). U tohoto přirovnání mají navíc ajťáci jednu velkou výhodu: hodně problémů v IT lze dočasně řešit redundancí, čímž se prodlužuje čas na nalezení a odstranění problému. Zato vodovod bývá v domě jeden.

Sten

Jinak co se týče těch critical systémů: teď v nich dělám taky, ale předchozích šest let jsem dělal v systémech s menší náročností. Ty jsou hodně podobné tomu vodovodu a jsou taky mnohem mnohem častější (a článek se IMO týká hlavně jich). Critical systémů moc není a tam se samozřejmě uplatňují jiné metody. Stejně tak opravu vodovodního řádu zásobujícího celé město nedělá instalatér.

maio

Uvest Software Craftsmanship (Manifesto) tady tim clankem bez predchoziho predstaveni mi prijde jemne receno nevhodne. O to vic, ze tam neni zadna zminka o tom jak na ten kontroverzni blog zareagovali lide, kteri iniciovali vznik toho manifestu/hnuti.

Kazdopadne me prijemne prekvapili reakce v komentarich. Budu doufat, ze jednou zvnikne SC grupa i tady v CR.

PS: s prekladem „umelecke remeslo“ nesouhlasim. Osobne bych slovem craftsman nazval kazdeho, kdo ma ve svem oboru urcitou miru dovednosti. A muze to byt klidne instalater, chirurg nebo vyvojar.

Biktop

Například se zde píše o tom, jaký je programování rozdíl oproti lékařství. Okamžitě jsem si vzpomněl na knihu The Mythical Man Month od Freda Brookse, který tvrdí naprostý opak – píše, že k projektu by se mělo přistupovat stejně, jako lékař přistupuje k operaci: jeden ji vede, druhý mu asistuje a kolem sebe mají tým lidí, kteří vědí, co mají dělat, co kdy podat, ale v principu je tam celý ten tým „pouze“ k ruce operatérovi. Přičemž než se člověk dostane na posici toho operatéra, měl by si nejdřív projít tím ostatním, aby získal představu, co která etapa obnáší; navíc by měl mít operatér volnou ruku při výběru toho týmu k sobě, protože to bude on, kdo bude v důsledku zodpovědný za zdar celé operace.
Jen dodávám, že Fred Brooks se podílel na vývoji operačního systému Multics v 60. letech a knihu napsal na základě svých celoživotních zkušeností s takovýmto typem projektů.
Řekl bych, že i po 40 letech je to velmi trefná analogie, jejíž implementace do praxe se stále neprosazuje – spíše ovšem kvůli tomu, že u spousty lidí by se ukázalo, že na svou stávající pozici ve skutečnosti nemají schopnosti.

l.

Ano, s timhle souhlasim.

phr

No jo, ale kdo je v tomto případě ten operatér ? Vedoucí projektu ? Vedoucí analytik ? Investor ? Programátor ? Mám dojem, že programátor to tady rozhodně není, ten jenom sedí a „buší“ kód.

Biktop

No v současné praxi právě nikdo. Brooks navrhuje opustit ten zažitý model „vedoucí projektu, analytik, programátor“.

ferren

obavam se ze v IT to je presne naopak. operuje novacek a seniori kolem ho dozoruji ;-) aby se clovek dostal na pozici prisediciho,musi si to vetsinou napred oddrit na place

Aminux

Připadá mi, že článek si protiřečí.
Na jedné straně píše
„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…“

A v zápětí píše
„Pokud chcete být programátorem, nic takového nepotřebujete.“
„někdo se naučí programovat z knih, “ – a to jako nejni studium? I ti právníci i lékaři studují z knih.
A dále
„další se propracovávají metodou pokus-omyl k funkčnímu výsledku“ – jestli tohle nejni praxe, tak už vážně nevím co. Takovéto protiřečení se jen tak nevidí.

Pravda je, že lékař to má těžší, omyl může být smrtelný. Na druhou stranu špatně fungující program může ohrozit mnohem víc životů než jeden lékař. Vemte si, co všechno závisí na počítačích – letadla, elektrárny i ty přístroje v nemocnicích které pomáhaji lékařům.

Je taky pravdou, že programátor nemusí mít vejšku. Stačí když prokáže schopnosti. Ale učit se musí taky a praxi mít musí taky a ne jak se píše v článku, že nic takového nepotřebuje.

Aminux

No a vymýšlet nějaké složité algoritmy taky nejni pro blbce. Tohle lékaři dělat nemusí. Většinou. Mají dané postupy co jak léčit, jak oživovat atd. Tím nijak nechci snižovat náročnost lékařské profese. Jen chci říct, že každá profese má svoje pro a proti.

Aminux

„Softwarový řemeslník by měl být bez ega, pokorný, zaměřený na výsledek, ne na samotný kód či na proces.“
A co udržovatelnost a rozšiřitelnost takového kódu?

Ivan Nový

vede k rychlejší produkci inovací a lepší adaptaci na změny. Mistr může mít své učedníky, ale ne tak, aby z toho vznikla nějaká komora programátorů.

bpbp

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í.

Jasně, to srovnání User Experience a práce na fasádě je spisovatelská zkratka.
Ale kulhá to – jestli programátor je zedník, tak User Experience „člověk“ je spíš architekt celé stavby.
User Experience vklad je (krom vzhledu) spojený hlavně se samotnými funkcemi – toho jak a kde jsou nabízeny a nad jak strukturovanými daty (informační architektura) uživatelé pracují a spolupracují.

Chápu kam článek míří a souhlasím. Jen je dle mého názoru třeba zdůraznit, že se nevzdáváme svobody kreativně řešit problémy. Jsme lidi, ne stroje.
Ale jen ty problémy jenž softwarovému řemeslu přísluší.

to je jedno

ty komenty tady jsou masakr. v clanku pisou o prebujelem egu a o nadenicich. dve tretiny komentaru tady pak sou presne ty potrefeny husy. programatori, pani tvorstva, pohrdaji „zvanilama v kvadrech“, „manazerama“, „obchodnikama“ a dalsima neinzinyrama. hold mentalita delnasu z kolbenky, fakt ze jo. ty sou taky presvedceny, ze by mohli od minuty ridit fabriku, dopravu, delat soudce nebo aspon piskat fotbal. klepete se tu akorat po ramenech jak ste dobry a nedoceneny. kdekdo pise jak dela bankovni a kriticke aplikace a mysli si, ze tim je programatorska extraliga. osobne delam bankovni aplikace taky, takze se tomu jen smeju. kdo z vas, co si tu trepite hubu kritickejma aplikacema, je opravdu navrhuje, analyzuje nebo testuje, co? vy ste totiz nejspis presne stejny nadenici jako ja, co si jich firma najme sto zamenitelnych. rek bych, ze sedite na prdelich a pisete denne sto radku objektoveho kodu, co vam nekdo predepsal. koho tim chcete ohromit? a jestli ne, tak prove it or it didn’t happen! kecy o tom, ze by vas nekdo poznal vykladejte holubum, sorry.

Michal Vallo

Trochu zložitý článok o dôležitej veci. Konečne sa niekto začína zaoberať aj kvalitou programátorov.

Manifest je zaujímavý. Je to identický koncept ako Manifesto for Agile Software Development (http://www.agilemanifesto.org). Škoda, že sa vymedzuje voči Agilnému manifestu. Skôr by som očakával z podstaty veci, že sa bude vymedzovať voči nekvalitnej práci vývojárov, nízkej až žiadnej vzdelanostnej úrovni a minimálnym zručnostiam. Takto je to paľba na nesprávny cieľ.

Myslím, že je dobré rozprúdiť diskusiu na toto téma. Vývojár sa dá plne zrovnávať s umeleckým remeselníkom. Okrem remesla musí mať zvládnuté aj dosť veľa vecí okolo, aby jeho práca neskončila „měď-driven instalatérštinou“. Hodnota pre zákazníka je v komplexnej znalosti. Tú získa časom, prácou na projektoch, osobnou angažovanosťou, … ale s aspoň desiatimi rokmi by počítať mal.

Otázkou zostáva ako organizovať učňov a majstrov. Podľa môjho názoru majstrov by mali mať firmy, ktoré mladých „učňov“ naberajú, pracujú s nimi a rozvíjajú. Dobrá firma sa pozná podľa toho, že v podstate učňovský systém v organizácii svojich vývojových oddelení implementovaný má. Potom sa dá rozhodnúť, kam nastúpiť, ak sa niekto chce stať profesionál. Na druhú stranu asi je zrejmé, že freelancer stredoškolák (a bez disciplíny)ťažko túto pro úroveň niekedy dosiahne.

Horšie je to s motiváciou. Odmena za prácu vývojára je na trhu takmer identická pre totálneho amatéra ako aj profesionála. Dokonca amatér v korporácii zarobí viac než profesionál v strednej firme. Kvalitu musí rozlišovať zákazník. A ako dosiahnuť, aby sa zákazník o kvalitu zaujímal, netuším.

backup

[…] Vývojár sa dá plne zrovnávať s umeleckým remeselníkom. […]

Tato veta neni uplna. Spravne zni:

Sice pro to nemam nejmensi dukazy, ale neco mi tak intuitivne naseptava, ze by bylo mozno rici, ze …Vývojár sa dá plne zrovnávať s umeleckým remeselníkom. …
Teda abych to jeste upresnil, mluvil jsem o tom s Karlem v hospode, a ten je taky toho nazoru.

Ondra

Houby, ten manifest není zajímavý, je to bezduchý blábol toho typu, jaký si vyvěšují některé firmy v kancelářích (a samozřejmě velkým písmem na recepci, aby každý viděl, jak jsme úžasní) jako svůj „kodex“ nebo „krédo“. Všechny tyhle kecy mají jedno společné – nikomu nevadí, většina s nimi dokonce i víceméně souhlasí, ale málokdo se jimi cíleně řídí, protože většinou řeší podstatnější věci. Právě ve srovnání s hodnotou Agilního manifestu, který přímo dává návod, jak vyvíjet efektivně, mi tenhle výplod připadá velmi ubohý a jalový.

Aleš Roubíček

Můžete mi v agilním manifestu ukázat ten návod prosím?

Tady je Agilní manifest:

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more. 

a tady Software Craftmanship manifest:

As aspiring Software Craftsmen we are raising
the bar of professional software development
by practicing it and helping others learn the craft.
Through this work we have come to value:

Not only working software,
   but also well-crafted software
Not only responding to change,
   but also steadily adding value
Not only individuals and interactions,
   but also a community of professionals
Not only customer collaboration,
   but also productive partnerships

That is, in pursuit of the items on the left we have
found the items on the right to be indispensable. 

Já tam vidím pouze zvýšení **laťky výš**.

Ondra

Pardon, jste si jistý, že tomu Agilnímu manifestu rozumíte? Říká se v něm explicitně, jaký způsob přístupu jeho autoři považují za podstatný ve srovnání s jinými způsoby. Všechny ty body jsou přímo a jasně aplikovatelné v praxi (a v tomto smyslu tedy fungují jako návod). Např. ten první bod říká (aplikováno na jednoduchý praktický případ), že je lepší, když si lidi sednou dohromady a průběžně spolu mluví o tom, co a jak je potřeba udělat, než aby si donekonečna přehazovali tickety v nějakém workflow systému. V Agilním manifestu se nemluví o pozvednutí nějaké nehmatatelné úrovně, ale o tom, jak zefektivnit vývoj změnou přístupu k němu.

SW Craftmanship Manifest naopak nic takového nepřináší, protože ty výrazy na pravé straně jsou prostě významově jalové – ta úroveň, na kterou chtějí v tomhle manifestu „pozvednout laťku“, je imaginární, prakticky neměřitelná a každý si ji může vyložit nějak jinak. Navíc ho jeho autoři dokonce v té poslední větě sami shazují. Podle nich „pro dosažení levé strany je NEZBYTNÁ pravá strana“ – pak ovšem ta pravá strana nepřináší vůbec žádnou hodnotu, protože pro její splnění stačí, aby byla splněna levá (pokud by to tak nebylo, pak není pravá strana pro levou nezbytná). Když tihle „SW craftsmeni“ zřejmě nezvládají ani základy výrokové logiky, tak si o nich stěží můžu myslet, že za něco stojí…

Aleš Roubíček

Stejně stále v „hodnotách“ nevidím žádný návod. V jednom manifestu čtete mezi řádky a v druhém ani ty řádky… Zajímavý přístup.

Aleš Roubíček

Jenže Software craftmanship manifesto se nevymezuje vůči Agile Manifesto. Obě tyto manifesta inicioval Robert Martin, každé v jiné době. SCM se snaží vrátit k původnímu ducho Agile (XP), které zahrnovalo jak PM tak technickou stránku věci. Ale Agile se postupem času zvrhlo k certifikací scrum masterů a v mašinerii sprintů se zapomnělo i na technickou stránku věci. Že čistý kód nám umožňuje udržet výkon ve sprintech, že TDD umožňuje snížit počet defektů, že pair-programming zlepšuje design a pomáhá šířit znalosti, že vývojář by měl trénovat a vzdělávat se, aby dosahoval skvělých výkonů apod.

Michal Vallo

Nakopíroval ste to tam – Craftsmanship Manifesto – na pravej strane je všetko to, čo Agilné manifesto a jeho princípy obsahujú, nie je tam nič nové alebo odlišné. Preto si myslím, že je to také vymedzenie sa. Napriek tomu sa domnievam, že zámer bol dobrý, a to je kritizovať alebo odlíšiť sa od priemernej a veľmi nízkej úrovne znalostí a skúseností bežných programátorov. Forma podľa mňa nie je dobrá.

Agilné manifesto je z časti zamerané na vývojárov, z časti na management. Na jeho aktuálnosti sa rokmi nič nezmenilo. Aby bolo správne pochopené, vyžaduje zaškolenie. Asi najlepší tím školiteľov má Scrum Alliance a ich certifikačný program, preto možno oprávnený tlak na certifikáciu. Píšem o tom v článku tu: http://www.agilia.cz/2011/06/potrebujeme-certifikovany-vodicsky.html V porovnaní s „vodopádovými“ a byrokratickými metodikami je týchto ľudí stále príliš málo. Preto sa Vám možno zdá, že sa Agile zvrhol na certifikáciu a sprinty. Z môjho pohľadu zatiaľ stále chýba schopnosť a záujem riešiť problémy holisticky. Vývojári sa snažia naskočiť na proces, pretože je to nateraz cool, management chce ostať bokom, pretože sleduje svoju vlastnú agendu, zákazník svoju nízku kompetenciu kompenzuje dodávkou softéru a procesu a presunutím rizika na dodávateľa. Nikto ale nechce spolupracovať, a na kvalitnú prácu potom nezostáva čas ale hlavne ju ani nikto nepožaduje. A tak je dobré a záslužné, že niekto ďalší začína hovoriť aj o potrebe tej kvality – ktorá nás oslobodí od množstva času nad opravami starých chýb a umožní venovať sa novým veciam. Agile je o kvalite, o znalostiach, o spolupráci a o komunikácii, bez toho to nejde.

Aleš Roubíček

„Nejen, ale i…“ přece není vymezování. A ještě jednou zopakuji, že vznik obou manifestů inicioval jeden a ten samý člověk. Takže to není „někdo další.“ ;)

Ad druhý odstavec. To ale není jen můj pocit. Pokud sleduje dění okolo desátého výročí Agilního manifestu, nebo vlnu Kanbanu a Lean development, tak jistě víte, že Scrum prostě selhává nebo lépe stává se z něj nový vodopád (vč. certifikací a birokratizace). SCM je pouze jednou z mnoha reakcí na tento stav.

Michal Vallo

Nuž, ja tam nevidím nič čo by už v Agilnom Manifeste nebolo obsiahnuté. Preto mi uniká pridaná hodnota :)

Agilných techník je pomerne veľa. Scrum je iba jednou z nich. Kanban je veľmi stará technika. Avšak aj dosť riziková. Myslím, že jej nesprávne nasadenie je ako položiť bombu. Naproti tomu LEAN je síce tiež stará technika, ale zaoberá sa organizáciou procesu vývoja a jeho optimalizáciou. Nepochádza z IT a trvalo pár desaťročí, kým si v IT všimli, že by to k niečomu mohlo byť. Teraz je také druhé uvedomenie, prvé bolo asi pred 10 rokmi. Ak Vás LEAN zaujíma, prídite na túto akciu a môžete tento názor prediskutovať priamo s Guru: http://www.aguarra.cz/Agilni-Snidane-LEAN-Mary-Poppendieck.html Zaujímalo by ma, čo povie.

SCRUM selhává? To ste ma dostal :) Za posledných 5 rokov som nevidel ani jeden projekt, kde by Scrum selhal. Ani som o takom nepočul. Videl som ale niekoľko projektov, kde „selhali“ ľudia, ktorí sa ho pokúšali implementovať bez potrebnej znalosti. Scrum je na implementáciu náročný, pretože po ľuďoch vyžaduje aktivitu. A hlavne je to manažérska technika, na to sa často zabúda :) Certifikácia je spôsob, ako prekonať problém chybnej implementácie. Agilné techniky nemajú zásadnú byrokratickú zložku. Teda, pokiaľ to nechcete naimplementovať na ISO ale ani tak to nie je taká vražda ako Prince II alebo iný vodopád. Pozývam Vás na ukážku implementácie Scrumu, môžeme tam o tom pohovoriť: http://www.scrumalliance.org/events/388-agilia-in-prague

Aleš Roubíček

Nikde jsem nepsal, že Kanban nebo LEAN jsou něco nového. :)

Certifikace neřeší vůbec nic. Certifikát dostane každý, kdo si za něj zaplatí.

Michal Vallo

V tom sa mýlite. Trochu odbočím, také zrovnanie: Vodičský preukaz tiež dostane každý kto si zaplatí. To však neznižuje jeho potrebnosť pre bezpečnosť cestnej premávky.

jehovista

Smysl ridicaku je jenom v tom, aby bylo co sebrat, kdyz dojde k pruseru.

Me

TLDR kydy žvásty o ničem

Washington Irving

Byl to maly clovek, ktery delal velke veci. Byl to spisovatel, architekt, ucitel nebo malir pokoju. Mel svou praci rad, premyslel o ni a venoval se ji. Byl v ni dobry, ale sam si toho nebyl prilis vedom.

proti nemu stal

Kreativni umelec, jez pohrdaje konkurenci povazuje sve dilo za bozke ztelesneni toho co je hodno oznaceni rajska zahrada. Jinym se vysmiva a sam se nad ne stavi.

Mate dva poly a ke kteremu se priklonite?

PS : Mozna, ze bych si dovolil pridat stred, jez schramstne obrovske mnozstvi lidi. Pojmenoval bych jej ponekud proste a vymluvne „lenoch“.

Nox

Další ukázka jak lze slušnou myšlenku zabít podáním.

Máte pravdu že skromnost a neprůbojnost nejsou zrovna ikonami dnešní doby…nebo alespoň se to tak s oblibou říká

Ale názor že kreativní umělec je vždy bezpochyby i arogantní namyšlenec je sám o sobě arogantní a nenávistný a v podstatě poplivává i spoustu skromných a oddaných lidí

Následná řečnická otázka na takto účelově postavené možnosti už pak ani nejde komentovat.

No nic…

P.S.: střed mezi pokorou a namyšleností je lenost?

ctverec

Asi můj pohled bude ve shodě s nemálo příspěvky zde. Titulek článku mě zaujal. Po přečtení několika odstavců jsem došel k závěru, že autora téma poněkud přesahuje a že ho asi nedočtu celý. Ale ten titulek je velmi dobrý. Jsem programátor a svou práci definuju jako řemeslo. A ke kovářství nemá daleko. Jsem přesvědčen, že když se začínám seznamovat se zadáním a vstupuji do procesu jeho řešení, prožívám přesně totéž, co prožívá kovář, který v ruce potěžkává kus železa a v duchu si promítá tvar, ke kterému ho chce změnit. A propos, asi největší knock-out si autor z mého pohledu uštědřil, když pohaněl Microsoft. Vždyť Microsoft přinesl C#. A to je kus dobré práce.

j3nda

docetl jsem. pekny clanek.
a pokud autor docte diskuzi az sem. prosim, aby udelal z diskuze nejaky vycuc/vytah a zverejnil to jako 2. dil k tomuto tematu – diky! – usetri mi to cas (a imho: nejen me).

j3.

Nox

Autorem je Dan North, tento článek je překladem, tudíž si v komentářích příliš nepočte

ctverec

Tak jsem to také dočetl :). Musím poopravit své předchozí stanovisko. Ten článek je vyjádřením upřímného postoje. Docela se mi líbí například odstavec, který začíná: „Nazývat programování …“. Ale autor se možná moc soustředí na to, že existuje mnoho méně dobrých programátorů, kteří se připojují pod nějaký manifest. To samo přece neubere na pravdivosti toho, že existují i dobří programátoři. Není to podobné v každé oblasti, že je více povolaných než vyvolených?

Rasto 33r.

Dobrý programátor je zároveň užívateľ programu, alebo má rád užívateľov a komunikuje s nimi. Potom programuje tak aby bola aplikácia rýchla, funkčná, bezchybná a príjemne sa ovládala. Nevytvára len aplikácie ale aj dobrý pocit z používania týchto aplikácií. Môže to byť aj tím programátorov, analytikov a testerov ale musia byť zohraní a nesmú si zatajovať informácie. Bohužiaľ v dnešnej dobe nevytvárajú firmy aplikácie pre užívateľov ale akési „projekty“ pre manažérov ktorí ich predávajú ako mačku vo vreci nič netušiacim obetiam.

Všehomír

Podnetný článok na zamyslenie. Podľa mňa, keď programátori hovoria o pekných riešeniach – čo bolo pravdepodobne podnetom na napísanie tohto článku – myslia tým najmä udržiavateľný kód. Je to jednoduchšie a účinnejšie pri učení iných odvolávať sa na abstraktnú „krásu“ ako vždy vysvetľovať a vymenovávať dôvody prečo práve takto je to lepšie. To je všetko. Na zamyslenie podnetné, ale možno príliš „slovíčkarske“.

Daniel

Najs, tak s timto clankem temer vubec nesouznim – nemuzu teda uplne presne rict jak moc, protoze me tak bolelo ho cist, ze jsem zvladl jen par segmentu -___-
Resp. dobre mozna pripustme ze ta cast „umelecke“ je diskutabilni, ale ta cast „remeslo“ – v tom mam s clankem problem. Protoze pokud jde o me je programovani na 100% remeslem a vidim paralelu mezi nekym kdo travi roky tim, aby ze dreva co nejefektivneji a nejsikovneji poskladat zidli a stul a skrin a maly dreveny hlavolam apod. nebo nekym, kdo cely zivot zdokonaluje a promysli zpusoby jak stavet domy, jak seskladat tramy, aby to bylo co nejefektivnejsi, nejpevnejsi, dosahl nejlepsich vlastnosti, flexibility kde je potreba atd. atd. .. a programatorem ktery se snazi o to same, jen v abstraktnim svete (ktery je ale vlastne velmi uzce spojen s realitou) Mistra dela zkusenost.

Last edited 5 měsíců před by Daniel
Daniel

Krasa programu je dulezita ALE jeho krasa spociva v jeho funkcnosti, prehlednosti, cim mene kodu, cim jasnejsi a rychlejsi ale hlavne robustnejsi, tim lepsi je. Vidim to stejne jako kdyz stary zkuseny mistr vyrobi behem par okamziku zidli, na ktere je radost sedet, ktera i kdyz behem let dostava zabrat, diky mistrove zkusenosti s vyrobou zidli stale drzi a davno prezila nekolik generaci rozvrzanych zidli stlucenych obycejnymi nadeniky.
Mozna ze v clanku neco na tento zpusob zaznelo, jak si tak procitam komentare …

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.