Právní výhody a nevýhody vývoje systému podle jednotlivých vývojových modelů
Postup při projektech vývoje systémů má určitou metodologii. Obvykle, když se učíme o právních problémech souvisejících s vývojem systémů z knih a podobných zdrojů, často předpokládáme nejklasičtější metodu zvanou vodopádový model. Nicméně, metodologie nebo modely pro vývoj systémů nejsou omezeny pouze na vodopádový model. Například v poslední době se často volí metoda zvaná agilní vývojový model.
V tomto článku budeme porovnávat a vysvětlovat dva modely, vodopádový model a agilní vývojový model, z hlediska právních rizik a prevence sporů.
Co je vývojový model
Co je model vodopádu
Nejčastější a nejtradičnější způsob vývoje systémů je následující:
- Definice požadavků: Identifikace funkcí, které by měl systém mít, a specifikací, které jsou potřebné
- Základní návrh: Návrh celkového obrazu systému z pohledu uživatele, včetně návrhu obrazovky a přechodů mezi obrazovkami
- Podrobný návrh: Návrh celkového obrazu systému z pohledu vývojáře, včetně propojení mezi programovými soubory
- Programová implementace: Kódování programu podle návrhu
- Testování: Ověření, zda je výsledek v souladu se specifikacemi, a požádání uživatele o kontrolu
Tento vývojový přístup, který se snaží postupovat od horního toku k dolnímu toku řeky bez zbytečného opakování kroků, se nazývá “model vodopádu”. Tento postup není nezbytný pro vytvoření funkčního systému. Nicméně, vývoj systémů, který často vyžaduje velké množství lidí a dlouhodobé úsilí, vyžaduje pečlivé plánování. Proto je důležité také rozdělení jednotlivých fází, organizace rolí a jasné vymezení odpovědnosti jednotlivých účastníků.
Co je agilní vývojový model
Na druhou stranu, způsob, jakým se vývojové práce provádějí, nemusí vždy vyžadovat přístup, který je zcela průchodný od “horního toku k dolnímu toku”. Je pravda, že vzhledem k povaze práce je důležité plánování a technické dovednosti. Nicméně, vzhledem k tomu, že se jedná o práci spojenou s vytvářením nových věcí nebo děl, je často nemožné vytvořit dokonalý plán od samého začátku. S ohledem na tyto aspekty by měl být důraz kladen nejen na postup podle stanoveného plánu, ale také na schopnost flexibilně reagovat na pozdější úpravy a změny specifikací, a na zvýšení počtu pokusů a omylů. Tento přístup je reflektován v “agilním vývojovém modelu”. V agilním vývojovém modelu se obecně snažíme minimalizovat námahu věnovanou přípravě podrobných plánů a návrhů, opakovaně implementovat a testovat velmi malé programy a postupně je přetvářet do větších programů a systémů.
Studium právních otázek je snazší v modelu Waterfall
Předtím, než přejdeme k porovnání obou vývojových modelů, je třeba se dotknout právních otázek spojených s každým z nich, a to z hlediska snadnosti shromažďování informací a studia práva.
Většina odborné literatury je napsána na základě modelu Waterfall
Při studiu právních otázek spojených s vývojem systémů a právních znalostí je snazší shromažďovat informace v modelu Waterfall. Právní texty diskutující o vývoji systémů jsou často napsány s předpokladem modelu Waterfall. Klasický a obecný vývoj systémů se provádí podle modelu Waterfall, zatímco agilní vývoj je často pouze doplňkový a je omezen na stručný úvod. Proto je při hledání informací o právních otázkách spojených s vývojem systémů z knih snazší pokračovat ve studiu v modelu Waterfall.
Model Waterfall má také mnoho případů soudní praxe
Model Waterfall je také bohatý na příklady sporů, které se skutečně staly v minulosti, protože je to klasická a obecná metoda vývoje systémů. V právních diskusích je důležitá nejen znalost zákonů, ale také znalost předchozích soudních případů. Dokonce i v případech, kdy je těžké říci, zda je výklad zákona “bílý” nebo “černý”, může být možné doplnit obsah zákona získáním poznatků z předchozích soudních případů.
I když se nejedná o kodifikovaný zákon, hromadění soudních rozhodnutí může být stejně jako zákon ustanoveno jako kritérium pro rozhodování. Tyto se nazývají “principy soudní praxe”. Dokonce i v oblastech, kde již existuje hromadění principů soudní praxe, jako je vývoj systémů, může být relativně snadné předpovědět konečný výsledek sporu, i když je to neznámý spor. V tomto ohledu lze očekávat mnoho výhod při vývoji systémů na základě modelu Waterfall.
Výhody jednotlivých vývojových metod
S ohledem na výše uvedené, následně porovnáme a seřadíme výhody a nevýhody jednotlivých metod. První část je zaměřena na výhody vodopádového modelu a čím více se posuneme dolů, tím lépe budou pochopitelné výhody agilního vývoje.
Porovnání z hlediska plánovatelnosti a předvídatelnosti
V aspektech jako je plánovatelnost a předvídatelnost, můžeme říci, že model Waterfall je preferovaný. Bez ohledu na to, jak velký je systém, který vytváříte, je vždy rozdělen do jednotlivých fází, které postupují od “nahoře dolů”. Nastavením termínu pro každou fázi se její pokrok stává relativně snadno plánovatelným a řiditelným.
Na druhou stranu, agilní vývoj je metoda, která nevyžaduje mnoho nákladů a úsilí na předchozí plánování nebo celkovou koncepci, takže se může stát, že přístup se stává ad hoc.
Srovnání na základě jednoduchosti vymezení rolí a odpovědností jednotlivých členů
V modelu Waterfall je jednou z výhod to, že díky důkladnému rozdělení jednotlivých fází je možné jasně definovat role jednotlivých členů projektového týmu.
Na druhou stranu, v agilním vývoji se často stává, že rozdělení fází je nejasné, což může vést k nejasnostem ohledně toho, kdo nese odpovědnost za neočekávané problémy a podobné situace.
Porovnání v kontextu velkých vývojových projektů
Vodopádový model, který se vyznačuje vynikající plánovitostí a jasným rozdělením rolí, nabízí větší výhody, čím větší je vývojový projekt. I při organizaci velkého počtu lidí můžete snížit náklady na koordinaci týmu tím, že proces rozdělíte na menší části a podpoříte specializaci.
Na druhou stranu, agilní vývojový model se obecně nepovažuje za vhodný pro velké vývojové projekty. Jelikož tento přístup klade větší důraz na rychlost zahájení práce než na plánování a rozdělení rolí, může být obtížné ho uplatnit v situacích, kde jsou obavy z posunutí konečného termínu dodání.
Srovnání rychlosti a efektivity
Agilní vývoj začíná rychleji
V případě rychlosti od doby, kdy uživatel vyjádří požadavek na nějakou funkci, až do doby, kdy je tato funkce skutečně implementována, má navrch agilní vývojový model. Důvodem je, že v modelu Waterfall jsou odpovědné osoby obvykle jasně odděleny mezi horní a dolní procesy, což často zvyšuje nároky na interní komunikaci na straně dodavatele. Tento aspekt, který často vyžaduje více komunikace, je také spojen s tím, že je náchylnější k problémům s požadavky na změnu specifikací po dokončení.
Na druhou stranu, agilní vývojový model umožňuje rychle začít a provést práci bez zbytečného zprostředkování. Toto je úzce spojeno s největší výhodou agilního vývojového modelu, kterým je snadná adaptace na změny specifikací po dokončení. Nicméně, i v případě agilního vývojového modelu, pokud se neformálně a neustále reaguje na požadavky na změnu specifikací a další vývoj, může to vést k riziku “hoření” projektu. V tomto smyslu je klíčem k úspěchu vývoje systémů pomocí agilního vývojového modelu správa změn. Podrobný popis správy změn naleznete v následujícím článku.
https://monolith.law/corporate/howto-manage-change-in-system-development[ja]
Model Waterfall je méně náchylný k selhání v průběhu
Na druhou stranu, při srovnání z hlediska rychlosti a efektivity je důležité zvážit také dlouhodobý časový rámec. Pokud zvažujeme riziko, že projekt “hoří” uprostřed a postup se zastaví, má navrch model Waterfall. Největším rizikem, které může vést k selhání projektu v průběhu, je nedostatečná komunikace mezi uživatelem a dodavatelem. Model Waterfall, který jasně definuje role obou stran, má v tomto ohledu výhodu.
Agilní vývoj usnadňuje hladký průběh v přijímací fázi
Avšak z hlediska snadnosti řízení v přijímací fázi má mírnou výhodu agilní vývojový model. Důvodem je, že se předpokládá, že uživatel a dodavatel budou sdílet informace detailně i během vývoje systému. Lze očekávat, že se sníží riziko náhlého vynoření rozdílů v pochopení obou stran po zhlédnutí finálního produktu. Podrobný popis kroku přijetí vývoje systému a s tím souvisejících právních problémů naleznete v následujícím článku.
https://monolith.law/corporate/estimated-inspection-of-system-development[ja]
Shrnutí
Při takovém srovnání lze celkově říci, že pro důkladnou správu je vhodný model Waterfall, zatímco pro důraz na rychlost od zahájení až po provedení je vhodný agilní vývojový model. Mimochodem, právní problémy spojené s vývojem systému na základě agilního vývojového modelu jsou podrobněji popsány v následujícím článku.
https://monolith.law/corporate/legal-and-contract-issues-of-agile-development[ja]
Volba vývojového modelu by měla být založena na celkovém posouzení, které zahrnuje nejen právní hlediska, ale také velikost projektu, rozpočet a cíle.
Category: IT
Tag: ITSystem Development