KOJA: No dobra, zacnu tedy nostalgicky vzpominat :-) Ale nebudu nikoho jmenovat, ani ne tak proto ze bych si za tim nestal jako spis proto, ze nechci nekoho pomlouvat za jeho zady, takze jen anonymne (pokud neco takoveho v dobre googlu a facebooku existuje).
CA mel takovou zvlastni kombinaci povahy a pristupu k veci. Byl (je) to takovej fire-fighter, chodi k zakaznikum konzultovat a kdyz meli nejaky problem tak to vyresil aby byli spokojeni. Zaroven vyznaval "if it ain't broke, don't fix it" a "don’t future-proof your code". Testy jsou zbytecnost, protoze tim ze produkt denne pouzivame tak to denne testujeme ("eating our own dog food"). Jeste par detailu krat par let a nektery casti kodu byly vylozene FUBAR. Nikdo s tim kodem nechtel mit nic do cineni, takze veskere upravy v nem se hazely zpet na nej, cimz se problem pouze amplifikoval.
Tohle me stalo par let zivota (a firmu tisice eur :-). Dostal jsem za projekt udelat neco jako sdileny repozitar programu v jejich proprietarnim data-flow jazyce - do te doby se to ukladalo do binarnich souboru a ty se uploadovali nekam - no velke firmy z toho nebyly nadsene. Neco jako ENVY, kdo to pamatuje. Ten jazyk mel velmi dobre, az genialne vyresenou kompatibilitu / zavislosti, ve smyslu ze mas knihovnu A v1.0 co pouziva jinou knihovny B v1.0 a pak jeste jinou C v1.0 co pouziva B ale ve verzi 1.10. Nikdy se nestalo, ze neco co bylo ulozene s nejakou zavislosti zacalo nahodou pouzivat jinou verzi. Zaroven to bylo cele automaticky deduplokovane a garbage collectovane takze se to drzelo dost male. Cele to bylo nadesignovane kolem par jednouchych pravidel a invariantu, fakt celkem pekny. Vystavet kolem toho centralni repozitar bylo teoreticky snadne - "just work".
Fast forward par let, ukazalo se, ze uz peknou radku let tyhle "opravy pro klienty" ty invarianty porusuji a tudiz to nikdy nepujde do toho repozitare nahrat. Jenze klienti meli za ty roky tisice tech programu ulozenych verzemi produktu s temahle "opravama", takze: game over. A jak nikdo tomu kodu nerozumel, tak mi nikdo neveril, ze by mohl ignorovat naprosto zasadni design, na kterem to cele stoji.
V zasade klasicky pribeh o technologickem dluhu.
Byla to cenna zkusenost, byt nase spoluprace skoncila "rozpacite". Nelituji, mel jsem diky tomu take moznost pracovat s jednim z nejlepsich hackeru co jsem kdy poznal a hodne jsem se od nej naucil. Doted kdyz se divam na nektereho jeho designy tak me to stale fascinuje. A take doted kdyz nekdo prohlasi "if it ain't broke, don't fix it", "don’t future-proof your code" nebo "do not over-engineer" tak vyskocim jak cert z krabicky :-)