Jak se postavit k nekvalitnímu projektu?

Nemo7

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #30 kdy: 04. 09. 2015, 14:53:41 »
A existuje kvalitní projekt ?
Ne, protože je vždy psán nekvalitním člověkem. ;) Navíc pojem "kvalita" je diskutabilní. Má být SW co nejšetrnější k přírodě (=nejrychlejší a nejšetrnější ke zdrojům počítače)? Pak má spotřebovávat co nejméně elektřiny a nejlepší jazyk je assembler. A teď v assembleru udělejte kvalitní objektový návrh! ;) Kvalitní vzhledem k rozšiřování aplikace, kvalitní podle počtu chyb (i špagetový kód může být velmi kvalitně za tu dobu otestovaný), kvalitní podle rychlosti vývoje (když my ten program potřebujeme už příští týden, bez něj nám zákazník uteče!)... Kvalitu si každý představuje jinak.


Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #31 kdy: 04. 09. 2015, 15:13:20 »
Přepis aplikace má tu výhodu, že máte k dispozici údaje, které nebyly původně k dispozici. Nevýhodu máte v tom, že musíte znova realizovat zadání zpravidla za několik let, což je obvykle víc práce, než se v evangelizačním nadšení zprvu zdá. A stále tam zůstává problém skrých předpokladů - use-casů, které se sice používají, ale zákazník si to vůbec neuvědomuje.

Typické reakce jsou: Ta nová verze je hrozná, nejde tam udělat XY a zrovna tohle v původní verzi fungovalo skvěle. Cože, vy jste něvěděl, že to takto používáme?? No ale za to mi nemůžeme, přece jsme nechtěli, abyste nějakou funkčnost rušil, mysleli jsme že to bude fungovat jako dřív a že si to jen nějak uvnitř uzpůsobíte aby se v tom vám lépe programovalo a aby to bylo rychlejší...

K principu DRY: Někdy je lepší se opakovat a zachovat ortogonalitu, než se za každou cenu neopakovat a vytvořit přebujelou hiearchii tříd nebo do sebe zaklesnutých pomocných modulů, které rádoby dělají tu věc, které se nemá opakovat, ale jsou špatně navržené. Takže než vytvořit nezvládnutou abstrakci, je lepší to psát jednoduše. V tom dost pomůže prototypování - otestuje se, zda zvolená architektura zachycuje reálné potřeby.

Kvalitu si představuje programátor typicky jako elegantní návrh (a možná i jako odolnost vůči chybám), uživatel požaduje hlavně srozumitelné gui no a manager to chce zítra :-)

Nemo7

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #32 kdy: 04. 09. 2015, 15:41:53 »
K principu DRY: Někdy je lepší se opakovat a zachovat ortogonalitu, než se za každou cenu neopakovat a vytvořit přebujelou hiearchii tříd nebo do sebe zaklesnutých pomocných modulů, které rádoby dělají tu věc, které se nemá opakovat, ale jsou špatně navržené. Takže než vytvořit nezvládnutou abstrakci, je lepší to psát jednoduše.
Aneb každé správné a jednoduché pravidlo má své výjimky. Úplně stejně jako v reálném jazyku.  :) 


Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #34 kdy: 04. 09. 2015, 16:49:03 »
Jojo, nové začátky jsou prostě osvobozující - člověk odhazuje tíživou karmu projektu a jde vstříc novým světlým zítřkům. Nikde ale není zaručeno, že neskončí stajně jako předtím. Nicméně úkolem všech patternů je zařídit, aby ta karma zůstala pokud možno čistá a aby bylo co nejmenší puzení k přepisu kódu...


j

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #35 kdy: 04. 09. 2015, 17:57:21 »
Přepis aplikace má tu výhodu, že máte k dispozici údaje, které nebyly původně k dispozici. Nevýhodu máte v tom, že musíte znova realizovat zadání zpravidla za několik let, což je obvykle víc práce, než se v evangelizačním nadšení zprvu zdá. A stále tam zůstává problém skrých předpokladů - use-casů, které se sice používají, ale zákazník si to vůbec neuvědomuje.

Typické reakce jsou: Ta nová verze je hrozná, nejde tam udělat XY a zrovna tohle v původní verzi fungovalo skvěle. Cože, vy jste něvěděl, že to takto používáme?? No ale za to mi nemůžeme, přece jsme nechtěli, abyste nějakou funkčnost rušil, mysleli jsme že to bude fungovat jako dřív a že si to jen nějak uvnitř uzpůsobíte aby se v tom vám lépe programovalo a aby to bylo rychlejší...

K principu DRY: Někdy je lepší se opakovat a zachovat ortogonalitu, než se za každou cenu neopakovat a vytvořit přebujelou hiearchii tříd nebo do sebe zaklesnutých pomocných modulů, které rádoby dělají tu věc, které se nemá opakovat, ale jsou špatně navržené. Takže než vytvořit nezvládnutou abstrakci, je lepší to psát jednoduše. V tom dost pomůže prototypování - otestuje se, zda zvolená architektura zachycuje reálné potřeby.

Kvalitu si představuje programátor typicky jako elegantní návrh (a možná i jako odolnost vůči chybám), uživatel požaduje hlavně srozumitelné gui no a manager to chce zítra :-)

Predevsim u toho prepisu nejsou k dizpozici zadani, podle kterych to puvodne vznikalo, a nikdo si uz nepamatuje, co vsechno se vlastne chtelo aby to umelo. Osobne sem se ucastnil, a osobne sem prepisovatele predem varoval, ze nikdo nevi, co vsechno ta vec vlastne dela. Vysledek byl v souladu s ocekavanim (tedy, mym ocekavanim, managori vazne verili, ze bude fungovat) - misto v unoru se to zprovoznilo v lednu.


Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #36 kdy: 04. 09. 2015, 23:06:17 »
Predevsim u toho prepisu nejsou k dizpozici zadani, podle kterych to puvodne vznikalo, a nikdo si uz nepamatuje, co vsechno se vlastne chtelo aby to umelo. Osobne sem se ucastnil, a osobne sem prepisovatele predem varoval, ze nikdo nevi, co vsechno ta vec vlastne dela. Vysledek byl v souladu s ocekavanim (tedy, mym ocekavanim, managori vazne verili, ze bude fungovat) - misto v unoru se to zprovoznilo v lednu.

Jenže cílem nemusí být realizovat to samé - cílem může být realizovat jen to, co se používá a realizovat to lépe.

Krysa1

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #37 kdy: 04. 09. 2015, 23:43:25 »
NIKDY nenabízej, že delší dobu v reálném prostředí fungující projekt přepíšeš from scratch. To se jdi raději oběsit rovnou, dokud na to máš ještě aspoň dost sil.
Pokud si tě někdo najme výslovně na tento úkol, protože je sám pevně přesvědčen, že je to dobrý nápad, můžeš o tom uvažovat, ale dej si pozor na smlouvu a nech si zaplatit předem s no refunds.

sdasdasdasd

Re:Jak se postavit k nekvalitnímu projektu?
« Odpověď #38 kdy: 05. 09. 2015, 00:17:14 »
NIKDY nenabízej, že delší dobu v reálném prostředí fungující projekt přepíšeš from scratch. To se jdi raději oběsit rovnou, dokud na to máš ještě aspoň dost sil.
Pokud si tě někdo najme výslovně na tento úkol, protože je sám pevně přesvědčen, že je to dobrý nápad, můžeš o tom uvažovat, ale dej si pozor na smlouvu a nech si zaplatit předem s no refunds.

Jo, spravil som to tak. Nejdem to prepisovat ale vypisal som slabiny ktore to ma a ponukol som riesenie ako by sa to mohlo zlepsit. O kompletnom prepisani nepadlo z mojej strany nic.

Myslim si, ze je to zbytocne prepisovat to uplne odznova. Ako tu vela krat zaznelo, nema to zmysel a nestoji to za to. Uz to je raz tak ...