시스템 개발의 개발 모델별 법적 이점과 단점은 무엇인가?
![시스템 개발의 개발 모델별 법적 이점과 단점은 무엇인가?](https://monolith.law/ko/wp-content/uploads/sites/10/2023/11/shutterstock_1160782252-scaled.webp)
시스템 개발 프로젝트를 진행하는 방법에는 일정한 방법론이 있습니다. 일반적으로 시스템 개발과 관련된 법률 문제에 대해 책 등을 통해 학습을 진행할 때, 가장 고전적인 방법인 워터폴 모델을 전제로 하는 경우가 많습니다. 그러나, 시스템 개발을 진행하기 위한 방법론이나 모델은 워터폴 모델만이 아닙니다. 예를 들어 최근에는 애자일 개발 모델이라는 방법이 선택되는 경우가 많아지고 있습니다.
본 글에서는 워터폴 모델과 애자일 개발 모델 두 가지를 법적 리스크와 분쟁 예방 등의 관점에서 비교하면서 설명해 나갈 것입니다.
개발 모델이란?
워터폴 모델이란?
![](https://monolith.law/wp-content/uploads/2019/10/shutterstock_66782644-1024x750.jpg)
시스템 개발의 진행 방식 중 가장 일반적이고 고전적인 방식은 다음과 같습니다.
- 요구사항 정의: 이제부터 만들 시스템이 가져야 할 기능, 필요한 사양에 대한 정리
- 기본 설계: 화면 설계, 화면 전환 등, 주로 시스템을 조작하는 위탁자 측면에서 본 시스템의 전체 이미지 설계
- 상세 설계: 프로그램 파일 간의 연결 등, 주로 시스템을 개발하는 벤더 측면에서 본 시스템의 전체 이미지 설계
- 프로그래밍 구현: 설계서에 따른 프로그램 코딩
- 테스트: 사양에 맞는 것이 만들어졌는지 검증하고, 위탁자에게도 확인 요청
이처럼, 상류에서 하류로 향하는 강처럼, 가능한 한 절차의 전후나 되돌림이 일어나지 않도록 진행하는 개발 방법을 ‘워터폴 모델’이라고 합니다. 이런 흐름 자체는, 작동하는 시스템을 만드는 데 필수적인 것은 아닙니다. 그러나, 많은 인력과 장기간을 투입하여 진행하는 프로젝트가 되기 쉬운 시스템 개발에서는, 계획성이 중요해집니다. 따라서, 각 과정의 분할, 역할 정리, 각 담당자의 책임 범위의 명확화 등의 사항도 중요시하는 경향이 있습니다.
애자일 개발 모델이란?
한편, 개발 업무의 진행 방식은 항상 ‘상류→하류’로 일관되게 진행하는 방식이 적합한 것은 아닙니다. 분명 업무의 성격상, 계획성이나 예측 기술이 중요한 점은 물론입니다. 그러나, 원래 새로운 물건 제작·작품 제작에 관련된 일이기 때문에, 완벽한 의미에서의 계획 수립 등은 처음부터 불가능한 경우가 많습니다. 이런 점을 중요시한다면, 한 번 세운 계획에 따라 업무를 진행하는 것뿐만 아니라, 사후 수정·사양 변경에 유연하게 대응하기 쉽게 하거나, 시행착오의 반복 횟수를 늘리는 것 등을 중요시하는 방법도 있어야 합니다. 이런 생각을 반영한 개발 방법을 ‘애자일 개발 모델’이라고 합니다. 애자일 개발 모델에서는, 상세한 계획이나 설계서 등을 준비하는 데는 가능한 한 시간을 들이지 않고, 아주 작은 프로그램을 구현하면서 테스트를 반복하고, 점차 큰 프로그램·시스템으로 만들어 가는 흐름이 일반적입니다.
법률 문제 학습에 용이한 워터폴 모델
먼저, 각 개발 모델에 따른 법률 문제에 대해, 정보 수집의 용이성과 법률 학습의 진행 용이성에 대해 언급하겠습니다.
대부분의 참고서는 워터폴 모델을 기반으로 작성되어 있습니다
시스템 개발과 관련된 법률 문제나 법률 지식을 공부하려 할 때, 정보 수집의 용이성에서는 워터폴 모델이 우세합니다. 시스템 개발에 대해 논의한 법률 서적은 대부분 워터폴 모델을 전제로 작성되어 있습니다. 고전적이고 일반적인 시스템 개발은 워터폴 모델에 따라 진행되는 것이기 때문에, 여기서 애자일 개발은 보충적인 위치에 있으며, 간단한 소개에 그치는 경우가 많습니다. 따라서, 시스템 개발과 관련된 법률 문제에 대해, 서적에서 정보를 얻으려 할 경우에는, 워터폴 모델이 학습을 진행하기 쉽습니다.
판례의 축적이 많은 것도 워터폴 모델
또한, 워터폴 모델이 고전적이고 일반적인 시스템 개발 방법이기 때문에, 과거에 실제로 발생한 분쟁 사례의 축적도 풍부하다고 할 수 있습니다. 법률의 논의에서는, 조문 뿐만 아니라, 과거의 판례 지식도 중요한 의미를 가집니다. 조문의 문장을 해석하는 것만으로는 ‘백’이라고도 ‘흑’이라고도 말할 수 없는 사건에 대해서도, 과거의 판례에서 지식을 얻음으로써, 조문의 내용을 보완할 수 있는 경우가 있습니다.
또한, 명시적으로 표현된 법률이 아니더라도, 법원이 보여준 판단의 축적은 마치 조문과 같이 판단 기준으로 확립되는 경우가 있습니다. 이러한 것들은 ‘판례 법리’라고 불립니다. 시스템 개발 등의 이야기를 떠나 판례 법리의 축적이 이미 있는 영역이라면, 알려지지 않은 분쟁이라 할지라도, 최종적인 분쟁의 행방을 예상하는 것이 상대적으로 쉬워질 수 있습니다. 이러한 점에서 많은 이점이 기대되는 것이, 워터폴 모델에 기반한 시스템 개발입니다.
각 개발 방법론의 장점
![](https://monolith.law/wp-content/uploads/2019/10/shutterstock_86885698-1024x756.jpg)
위 내용을 바탕으로, 아래에서는 각 방법론을 비교하면서 장단점을 정리해 보겠습니다. 앞부분은 워터폴 모델의 장점을 중심으로 정리되어 있으며, 아래로 갈수록 애자일 개발의 장점이 더욱 명확해집니다.
계획성 및 전망 설정의 용이성 비교
계획성이나 전망 설정의 용이성 등에서는 워터폴 모델이 우세하다고 할 수 있습니다. 어떤 시스템을 만들든, 그것은 ‘상류→하류’로 내려가는 각 단계에 반드시 세분화됩니다. 각 단계마다 마감일을 설정하면, 그 진행 상황은 상대적으로 계획적으로 관리하기 쉬워집니다.
반면 애자일 개발은 사전 계획 수립이나 전체 구상에 많은 비용이나 노력을 들이지 않는 방법론이므로, 때때로 임기응변적인 접근법이 될 수 있습니다.
개별 역할 및 책임 범위의 명확화 용이성 비교
또한 워터폴 모델에서는 각 단계가 세분화되므로, 개별 프로젝트 멤버의 역할을 명확하게 할 수 있다는 장점이 있습니다.
반면 애자일 개발에서는, 단계의 구분이 모호해지는 경향이 있어, 예기치 않은 문제 등에 대해 누가 책임을 지는지에 대한 부분도 모호해지기 쉽습니다.
대규모 개발의 용이성 비교
계획성과 역할 정리에서 우수한 워터폴 모델은 대규모 개발일수록 장점이 커집니다. 많은 인원을 조직하면서도, 단계를 세분화하여 분업을 촉진하면, 인간 관계 조정에 드는 비용을 줄일 수 있습니다.
반면 애자일 개발 모델은 대규모 개발에는 적합하지 않다고 여겨집니다. 계획성이나 역할 정리보다는, 착수까지의 속도감을 중시하는 접근법이기 때문에, 최종적인 납기일의 지연 등이 우려되는 상황에는 적용하기 어렵습니다.
속도감 및 효율성 비교
애자일 개발이 착수가 빠름
위탁자 측이 어떤 기능을 요구하고, 그것이 실제로 구현되기까지의 속도감에서는 애자일 개발 모델이 우세합니다. 왜냐하면, 워터폴 모델에서는 상류 단계와 하류 단계에서 담당자가 명확하게 분리되는 것이 일반적이며, 벤더 내부의 커뮤니케이션에 많은 시간이 소요되기 때문입니다. 이러한 커뮤니케이션에 많은 시간이 소요되는 점은, 사후의 사양 변경 요청에 약해지기 쉬운 점과도 연결되어 있습니다.
반면 애자일 개발 모델은 중개자를 두지 않고 속도감을 가지고 착수하고 실행에 옮길 수 있습니다. 이것은 사후의 사양 변경에 대한 대응이 용이하다는, 애자일 개발 모델의 가장 큰 장점과도 밀접하게 관련되어 있습니다. 그러나, 애자일 개발 모델이라 할지라도, 사양 변경·추가 개발 요청에 대해 무계획적으로 계속 응답하면, 그것은 프로젝트를 ‘화재’로 만들 수 있는 위험이 됩니다. 이런 의미에서, 애자일 개발 모델에 의한 시스템 개발은 ‘변경 관리’를 어떻게 수행하는가가 성공의 열쇠가 됩니다. 변경 관리에 대한 자세한 설명은 아래의 기사에서 진행하고 있습니다.
https://monolith.law/corporate/howto-manage-change-in-system-development[ja]
워터폴 모델이 중간에 중단하기 어려움
반면, 속도감과 효율성이라는 관점에서의 비교에서, 장기적인 시간 축에서 검토하는 것도 중요할 것입니다. 프로젝트가 중간에 화재를 일으키고, 중간부터 진행이 없어지는 등의 위험을 고려할 경우, 워터폴 모델이 우세합니다. 프로젝트가 중간에 중단되는 상황을 초래하는 가장 큰 위험은 위탁자와 벤더의 커뮤니케이션 부재입니다. 양측의 역할 분담을 명확하게 할 수 있는 워터폴 모델은 이 점에서 장점이 있습니다.
인수 단계에서 원활하게 진행하기 쉬운 것은 애자일 개발
그러나, 인수 단계에서의 이야기 진행의 용이성이라는 관점에서는 약간 애자일 개발 모델이 우세하다고 할 수 있습니다. 왜냐하면, 위탁자와 벤더 사이에서, 시스템 개발의 중간 과정에서도 세밀한 정보 공유를 하는 것이 전제되기 때문입니다. 최종적으로 완성된 결과물을 보고, 양측의 인식의 차이가 한꺼번에 드러나는 위험을 줄일 수 있습니다. 또한, 시스템 개발의 인수라는 단계에 대한 설명과, 그에 따르는 법적 문제는 아래의 기사에서 자세히 다루고 있습니다.
https://monolith.law/corporate/estimated-inspection-of-system-development[ja]
결론
이렇게 비교해 보면, 전반적으로 관리의 철저함을 중요시하는 것은 워터폴 모델이며, 착수나 실행에 이르는 속도감을 중요시하는 것은 애자일 개발 모델이라고 정리할 수 있습니다. 또한, 애자일 개발 모델에 기반한 시스템 개발에 수반하는 법률 문제에 대해서는 아래의 기사에서 자세히 다루고 있습니다.
https://monolith.law/corporate/legal-and-contract-issues-of-agile-development[ja]
어떤 개발 모델이 적합한지는 법률적인 관점 뿐만 아니라, 프로젝트의 규모, 예산, 목적 등을 고려하여 종합적으로 판단해야 할 것으로 생각됩니다.
Category: IT
Tag: ITSystem Development