Software is hard. [Donald Knuth]
Tak jsem tu zas s další pidirecenzí knihy pro úchyly jako jsem já a doufám že i vy. V originále se jmenuje Dreaming in Code, a napsal ji Scott Rosenberg. Její podtitul mluví za vše: „Dva tucty programátorů, tři roky, 4 732 chyb a jedna výprava za výjimečným programem.“
O čem, že to je? Pan Mitchell Kapor, zakladatel Lotusu, si vydělal nějakých sto milionů dolarů na Lotusu 1-2-3. No a jelikož nevěděl co s penězi, tak se rozhodl, že založí Open Source projekt, který vyřeší jeho a ostatně i naše trable s MS Outlookem. Že napíše něco mnohem lepšího. Program, který změní svět. Který úplně převrátí náš pohled na na PIM programy. Převratný programu Chandler. Že jste o něm nikdy neslyšeli? Není divu. Ono se to moc nepodařilo. O to je ta kniha zajímavější.
Autor po tři roky sledoval marnou snahu týmu, tento program napsat. A musím přiznat, že je to čtení jen pro silné nátury. Je to čtení o tom, jak se neustále dohadovali, co vlastně chtějí naprogramovat, jak to chtějí naprogramovat, co to bude dělat, jak to bude vypadat, jaké knihovny použít. V prvním roce v podstatě nenapsali nic užitečného. K první použitelné verzi se blížili asi po třech letech! To už to ovšem autor knihy vzdal a šel dělat něco užitečnějšího. Podobně otřesný zážitek jsem zažil naposled, když jsem sledoval Sin City ve Francouzštině.
Co knihu dělá stravitelnou a i užitečnou jsou citace a četné odkazy na další literaturu. Autor často odbočí, problémy Chendleru zobecňuje a píše, co o problému kdo zajímavého napsal. Takže, až vás příště budu ohromovat nějakým citátem, tak víte, kde jsem ho našel.
Takže abych to shrnul, pokud vás zajímá vývoj software, máte silný žaludek a nemáte dost odstrašujících příkladů z vlastní praxe, kniha Dreaming in Code je pro vás ta pravá. Dávám jí chabých 6 hvězdiček z deseti. A dovolte mi zakončit citátem, který knihu docela vystihuje. Jde o odpověď, kterou dal Linus Torvalds na otázku, jakou radu by dal lidem, kteří se pouštějí do velkého projektu.
Nikdo by se neměl pouštět do velkých projektů. Začněte s malým, triviálním projektem a nikdy neočekávejte, že bude velký. Když to budete čekat, jenom ho předimenzujete a budete si myslet, že je důležitější, než pravděpodobně v dané fázi je. Nebo ještě hůř, představa té hromady práce vás může úplně odradit. Takže začněte v malém a myslete na detaily. Nemyslete na velký obraz a fantastický design. Pokud to neřeší okamžitou potřebu, je to zcela jistě předimenzováno.
Diky Lukasi za vsetky Tvoje velmi poucne clanky, robis velmi dobru pracu v prospech mnohych ludi a to uz dnes nie je take bezne. DIKY
Neco podobneho rikal Jarda Tulach o vzniku NetBeans.
Myslim, ze kazdy z nas zazil, jak se jednorazovy rychloprogram rozrostl do nevidanych rozmeru a pouzival se denne. Naopak i dost vzletnych slov, odmeneni nezucastnenych a potrestani nevinnych.
Tohle jsem zazil u nas ve firme. Po nekolika fuzich bylo jasne, ze je nutne prepsat stezejni aplikaci aby odpovidala pozadavkum doby. Po 5 letech to stale neumelo to co puvodni sw (nehlede na to, ze to bylo neskutecne padaci) a firma se ocitla na pokraji krachu. Pak na nas vedeni poslalo hromady poradcu, kteri mezi nas vnesli rad a svete div se, dneska (dalsi 3 roky) to snasi zlata vejce a vyvoj jde radove lepe nez predtim.
Takze si myslim, ze je mozne prijit od zacatku s velkym projektem, ale i s dobrym rizenim to bude chtit hodne nervu a par let trpelivosti, nez to zacne nest nejake vysledky.
To mi pripomina Lotus Notes – nechutny moloch obsahujici tuny frameworku a pojidajici systemove prostredky. Je to proste predimenzovano a ve vysledku to ani nefunguje.