MONOLITH LAW OFFICE+81-3-6262-3248Dni powszednie 10:00-18:00 JST [English Only]

MONOLITH LAW MAGAZINE

IT

Czym są prawnie zalety i wady różnych modeli rozwoju systemów informatycznych?

IT

Czym są prawnie zalety i wady różnych modeli rozwoju systemów informatycznych?

W prowadzeniu projektów rozwoju systemów istnieje pewna metodyka. Zazwyczaj, kiedy uczymy się o problemach prawnych związanych z rozwojem systemów z książek i innych źródeł, często zakłada się, że podstawą jest najbardziej klasyczna metoda, znana jako model Waterfall. Jednakże, metodyka lub model do prowadzenia rozwoju systemów nie ogranicza się tylko do modelu Waterfall. Na przykład, coraz częściej wybieraną metodą jest model rozwoju Agile.

W tym artykule porównamy dwa modele – Waterfall i Agile – z punktu widzenia prawnych ryzyk i zapobiegania konfliktom.

Co to jest model rozwoju?

Co to jest model Waterfall?

Jaki jest model rozwoju w procesie tworzenia systemów?

Najbardziej powszechnym i klasycznym podejściem do tworzenia systemów jest następujące:

  • Definicja wymagań: określenie funkcji, które system powinien posiadać, oraz wymaganych specyfikacji
  • Podstawowy projekt: projektowanie ogólnego obrazu systemu z perspektywy użytkownika, takiego jak projektowanie interfejsu użytkownika i przejścia między ekranami
  • Szczegółowy projekt: projektowanie ogólnego obrazu systemu z perspektywy dostawcy, takiego jak połączenia między plikami programu
  • Implementacja programowania: kodowanie programu zgodnie z dokumentacją projektową
  • Testowanie: sprawdzenie, czy produkt spełnia specyfikacje, i prośba o potwierdzenie od użytkownika

Ta metoda rozwoju, która polega na postępowaniu jak wodospad, od góry do dołu, z minimalnymi powrotami i zmianami kolejności, nazywa się “modelem Waterfall”. Ten proces nie jest konieczny do stworzenia działającego systemu. Jednak w przypadku projektów rozwoju systemów, które często wymagają dużej liczby osób i długiego okresu czasu, planowanie jest ważne. Dlatego też kwestie takie jak podział procesów, organizacja ról i jasne określenie zakresu odpowiedzialności każdego z uczestników są często uważane za ważne.

Co to jest model Agile?

Z drugiej strony, sposób prowadzenia prac rozwojowych nie zawsze musi polegać na jednolitym przejściu “od góry do dołu”. Oczywiście, ze względu na charakter pracy, planowanie i techniki prognozowania są ważne. Jednakże, biorąc pod uwagę, że jest to praca związana z tworzeniem nowych rzeczy i dzieł, często jest niemożliwe stworzenie doskonałego planu od samego początku. Biorąc pod uwagę te aspekty, powinno być możliwe nie tylko postępowanie zgodnie z ustalonym planem, ale także łatwe dostosowywanie się do zmian specyfikacji i poprawek po fakcie, a także zwiększanie liczby prób i błędów. Metoda rozwoju, która odzwierciedla ten sposób myślenia, nazywa się “modelem Agile”. W modelu Agile, zamiast poświęcać dużo czasu na przygotowanie szczegółowych planów i dokumentacji projektowej, często implementuje się bardzo małe programy, testuje je wielokrotnie i stopniowo przekształca w większe programy i systemy.

Model Waterfall ułatwia naukę problemów prawnych

Zanim przejdziemy do porównania obu modeli rozwoju, chciałbym najpierw omówić łatwość zbierania informacji i nauki prawa związanych z problemami prawnymi, które towarzyszą każdemu z modeli rozwoju.

Większość podręczników jest napisana na podstawie modelu Waterfall

Podczas studiowania problemów prawnych związanych z rozwojem systemów lub nauki prawa, łatwiej jest zbierać informacje, korzystając z modelu Waterfall. Wiele książek prawniczych omawiających rozwój systemów jest napisanych z założeniem, że stosowany jest model Waterfall. Klasyczny, ogólny rozwój systemu odbywa się zgodnie z modelem Waterfall, dlatego rozwój zwinny (Agile) jest często traktowany jako dodatek i jest zazwyczaj tylko krótko omawiany. Dlatego, jeśli chcesz zdobyć informacje o problemach prawnych związanych z rozwojem systemów z książek, łatwiej jest to zrobić, korzystając z modelu Waterfall.

Model Waterfall ma również wiele zgromadzonych przypadków sądowych

Ponadto, ze względu na to, że model Waterfall jest klasyczną, ogólną metodą rozwoju systemów, można powiedzieć, że jest również bogaty w zgromadzone przypadki sporów, które faktycznie miały miejsce w przeszłości. W dyskusjach prawniczych, wiedza o poprzednich przypadkach sądowych jest równie ważna jak treść artykułów. Nawet w przypadku spraw, które są trudne do określenia jako “białe” lub “czarne” na podstawie samego tekstu artykułu, możliwe jest uzupełnienie treści artykułu poprzez zdobycie wiedzy z poprzednich przypadków sądowych.

Nawet jeśli prawo nie jest wyraźnie sformułowane, zgromadzone orzeczenia sądowe mogą być ustanowione jako kryteria decyzji, podobnie jak artykuły. Takie rzeczy nazywane są “zasadami prawnymi orzeczeń”. Nawet jeśli jest to obszar, w którym już zgromadzono zasady prawne orzeczeń, takie jak rozwój systemów, nawet w przypadku nieznanych sporów, może być stosunkowo łatwe do przewidzenia ostatecznego wyniku sporu. W tym sensie, rozwój systemów oparty na modelu Waterfall ma wiele zalet.

Zalety poszczególnych metod rozwoju

Jakie są zalety i wady modelu Waterfall i rozwoju Agile?

Na podstawie powyższych informacji, porównamy zalety i wady poszczególnych metod. Pierwsza część skupia się na zaletach modelu Waterfall, a im dalej, tym bardziej zrozumiałe stają się zalety rozwoju Agile.

Porównanie pod kątem planowania i przewidywalności

Pod względem planowania i przewidywalności, model Waterfall wydaje się być lepszym wyborem. Bez względu na to, jak duży jest system, który tworzysz, zawsze jest on podzielony na mniejsze etapy, które przechodzą od “góry do dołu”. Ustalając terminy dla każdego etapu, postęp staje się łatwiejszy do zarządzania w sposób planowy.

Z drugiej strony, rozwój Agile jest metodą, która nie wymaga dużego nakładu kosztów i wysiłku na wstępne planowanie i koncepcję ogólną, co może prowadzić do podejścia ad hoc.

Porównanie pod kątem łatwości określania indywidualnych ról i zakresu odpowiedzialności

W modelu Waterfall, dzięki podziałowi na drobne etapy, łatwiej jest określić role poszczególnych członków projektu.

Z drugiej strony, w rozwoju Agile, podział etapów często staje się niejasny, co prowadzi do niejasności w kwestii, kto jest odpowiedzialny za niespodziewane problemy.

Porównanie pod kątem łatwości prowadzenia dużych projektów

Model Waterfall, który jest wyższy pod względem planowania i organizacji ról, staje się bardziej korzystny, im większy jest projekt. Nawet jeśli musisz zorganizować wielu pracowników, podział etapów na mniejsze części i promowanie podziału pracy pozwala zminimalizować koszty związane z zarządzaniem relacjami międzyludzkimi.

Z drugiej strony, model rozwoju Agile nie jest zbyt odpowiedni dla dużych projektów. Ze względu na podejście, które kładzie nacisk na szybkość rozpoczęcia pracy, trudno jest go zastosować w sytuacjach, gdzie istnieje obawa o opóźnienia w ostatecznym terminie.

Porównanie pod kątem szybkości i efektywności

Rozwój Agile jest szybszy do rozpoczęcia

Pod względem szybkości, od momentu, gdy użytkownik wyrazi życzenie dotyczące funkcji, do momentu jej faktycznej implementacji, rozwój Agile jest lepszy. Dlatego, że w modelu Waterfall, osoby odpowiedzialne za etapy górne i dolne są zazwyczaj wyraźnie oddzielone, co prowadzi do większej ilości komunikacji wewnętrznej po stronie dostawcy. Ten aspekt, który często prowadzi do większej ilości komunikacji, jest również powiązany z faktem, że jest on bardziej podatny na późniejsze żądania zmiany specyfikacji.

Z drugiej strony, model rozwoju Agile pozwala na szybkie rozpoczęcie i realizację prac bez konieczności angażowania pośredników. To jest ściśle związane z największą zaletą modelu Agile, czyli łatwością dostosowania się do późniejszych zmian specyfikacji. Jednakże, nawet w modelu Agile, jeśli ciągle odpowiadasz na żądania zmiany specyfikacji i dodatkowego rozwoju, może to prowadzić do ryzyka “spalenia” projektu. W tym sensie, kluczem do sukcesu w rozwoju systemów za pomocą modelu Agile jest to, jak zarządzać zmianami. Szczegółowe wyjaśnienie zarządzania zmianami można znaleźć w poniższym artykule.

https://monolith.law/corporate/howto-manage-change-in-system-development[ja]

Model Waterfall jest mniej podatny na zastoje w trakcie

Z drugiej strony, pod względem szybkości i efektywności, ważne jest również rozważenie długoterminowej perspektywy czasowej. Jeśli weźmiemy pod uwagę ryzyko, że projekt “spali się” w połowie drogi i nie będzie postępować, model Waterfall wydaje się być lepszym wyborem. Największym ryzykiem powodującym zastój projektu jest brak komunikacji między użytkownikiem a dostawcą. Model Waterfall, który ułatwia jasne określenie ról obu stron, ma tutaj przewagę.

Agile jest łatwiejszy do prowadzenia na etapie akceptacji

Jednakże, pod względem łatwości prowadzenia rozmów na etapie akceptacji, model Agile ma nieco przewagę. Dlatego, że zakłada on, że użytkownik i dostawca będą dzielić się informacjami na bieżąco, nawet w trakcie rozwoju systemu. Można oczekiwać, że zminimalizuje to ryzyko, że różnice w percepcji obu stron ujawnią się na raz, gdy zobaczą ostateczny produkt. Szczegółowe omówienie etapu akceptacji rozwoju systemów i związanych z nim problemów prawnych można znaleźć w poniższym artykule.

https://monolith.law/corporate/estimated-inspection-of-system-development[ja]

Podsumowanie

Porównując w ten sposób, ogólnie rzecz biorąc, model Waterfall jest bardziej odpowiedni dla dogłębnego zarządzania, podczas gdy model Agile jest preferowany, gdy priorytetem jest szybkość od rozpoczęcia do realizacji. Dodatkowo, szczegółowe omówienie problemów prawnych związanych z rozwojem systemu opartego na modelu Agile można znaleźć w poniższym artykule.

https://monolith.law/corporate/legal-and-contract-issues-of-agile-development[ja]

Wybór modelu rozwoju powinien być dokonany na podstawie kompleksowej oceny, uwzględniającej nie tylko aspekty prawne, ale także skalę projektu, budżet i cele.

Managing Attorney: Toki Kawase

The Editor in Chief: Managing Attorney: Toki Kawase

An expert in IT-related legal affairs in Japan who established MONOLITH LAW OFFICE and serves as its managing attorney. Formerly an IT engineer, he has been involved in the management of IT companies. Served as legal counsel to more than 100 companies, ranging from top-tier organizations to seed-stage Startups.

Category: IT

Tag:

Wróć do góry