개발과 워터폴 개발의 포인트 비교 8개 | 장점 등도 소개

민첩한 개발은 시스템과 소프트웨어 개발 기술 중 하나입니다.요구사항 정의, 설계, 코딩, 테스트, 릴리스를 짧은 기간에 반복해 나가는 기법이 됩니다.

 

한 번에 모든 요구 사항을 달성할 수 있는 것은 아니므로 정기적으로 고객과 논의하고 다음 개발 기간에 무엇을 할지 결정해야 합니다.

 

 

 

 

Table of Contents

워터폴 개발이란?

폭포 개발은 민첩한 개발과 마찬가지로 시스템 및 소프트웨어 개발 기술 중 하나입니다.

 

요구사항 정의, 설계, 코딩, 테스트, 릴리스를 물이 위에서 흘러내리도록 되돌아가지 않고 깨끗이 차례로 해내는 수법입니다. 간단한 구성으로 채택하고 있는 프로젝트가 매우 많습니다.

애자일 개발과 워터폴 개발 포인트 비교 8개

애자일 개발과 워터폴 개발은 각각 정반대의 위치에 있는 개발 방법입니다.대응할 수 있는 프로젝트도 정반대의 성격이 됩니다.

 

앞에서 설명한 대략적인 태스크의 돌리는 방법 이외에도 주목해야 할 포인트가 몇 가지도 있으므로, 각각 자세하게 소개합니다.

포인트 비교 1: 개발 계획

워터폴식은 기본적으로 이전 공정으로 돌아갈 수 없기 때문에 우선 면밀한 계획을 세웁니다. 이에 대해 애자일식은 정기적으로 고객과 요구사항을 논의하는 것, 작은 프로젝트를 여러 번 반복하는 수법이기 때문에 개요적인 계획이 됩니다.

 

개발 계획을 세우는 방법은 각각 완전히 다른 것이므로 프로젝트의 성질에 따라 각각 방향이 맞지 않습니다.

포인트 비교 2: 도중 사양 변경

도중 사양 변경을 하는 경우, 애자일식과 워터폴식에서는 비용에 큰 차이가 생기므로, 주의할 필요가 있습니다.

 

애자일식의 경우, 다음 반복에서 대응할 수 있으므로, 도중 사양 변경에도 유연하게 대응할 수 있습니다. 반대로 워터폴식의 경우, 송출로 돌아오므로, 시간과 비용의 손실이 심하고, 도중 사양 변경을 하는 경우는 신중한 판단이 요구됩니다.

포인트 비교 3: 서비스 제공

서비스 제공 시기는 민첩한 개발은 반복 당, 소각적인 기간에 제공 가능합니다. 이에 비해 워터폴 개발은 제품의 완성 후가 되어 프로젝트 발족으로부터 상당히 긴 기간을 거친 후가 된다.

 

따라서 애자일 개발은 모바일 관련 프로젝트 등 매일 조금씩 기술이 진화하고 서비스의 방향성을 조정해야 하는 프로젝트에 적합합니다.또한 사용자의 원시 목소리를 즉시 도입하고 수정하는 것도 애자일 개발에서는 가능합니다.

포인트 비교 4: 테스트 확인

테스트 확인의 경우, 워터폴은 최종 테스트에서의 확인이 되며, 기본적으로 횟수는 1회만입니다. 반면에 애자일 개발은 반복 단위마다 짧은 기간에 테스트를 반복해 나갈 것입니다.

 

언뜻 보면 애자일 개발 테스트 확인은 번거롭게 보이지만, 버그를 조기에 발견할 기회가 많아 장기적인 서비스 정지를 막는 장점이 있습니다.

포인트 비교 5: 문서

기본적으로 워터폴 개발은 스테이지마다 문서의 작성과 제출이 필요합니다만, 애자일 개발의 경우, 반드시 문서의 작성은 필요하지 않습니다.

 

워터폴 개발의 경우, 사전에 면밀하게 계획을 세우는 것, 기본적으로 이전의 공정으로 돌아오지 않는 것으로부터, 고객측으로서도 개발 팀의 진척을 면밀하게 확인하고 싶습니다. 그러므로, 각 공정마다 문서의 작성과 제출이 요구됩니다.

 

대조적으로, 애자일 개발은 반복을 반복하는 시스템 개발 기술이므로 일부 반복은 문서를 수정하거나 작성하지 않는 경우 개발 및 수정에 가득 차면 또한 허용됩니다.

포인트 비교 6: 개발자 대응

개발자의 대응으로서는, 워터폴 개발은 각각의 스테이지마다 전업의 담당자가 있습니다. 반대로 애자일 개발은 한 명의 담당자가 모든 스테이지를 담당합니다.

 

애자일 개발에 있어서는 팀 일환이 되어 1개의 프로젝트에 맞서기 때문에, 개발의 틀을 가리킬 때, 마치 럭비의 전술의 하나인 스크럼을 짜는 것 같은 것으로부터, 「스크럼」이라고 불리기도 합니다.

 

애자일 개발의 담당자가 되었을 때는 힘든 일도 많습니다만, 혼자서 모든 스테이지를 담당할 수 있으므로, 긴 눈으로 보면, 캐리어에 있어서 귀중한 경험을 할 수 있다고 하는 이점도 있습니다.

 

그에 비해 워터폴 개발에서는 담당하는 공정이 적은 것부터 기억해야 할 스킬이나 지식이 적게 끝나므로 IT 업계의 경험이 적은 인물이 팀원으로 참여하기 쉽습니다.

포인트 비교 7: 프로세스 개선

프로세스 개선에 있어서, 워터폴 개발은 기본적으로 이전 공정으로 돌아가지 않기 때문에, 개선점을 알 수 있는 것은 완성 후입니다만, 애자일 개발이면 반복마다 개선점을 알고, 반복의 수를 해낸다 마다 프로세스를 세련시킬 수 있습니다.

 

사람의 교체가 없으면, 민첩한 개발을 개발 방법에 채용하고 있는 조직은, 시간이 지날 때마다 높은 생산성을 자랑하게 됩니다.

 

워터폴 개발은, 도중의 프로세스 개선이 어렵습니다만, 사전에 면밀한 계획을 세우는 것으로부터, 원래 프로세스의 개선이 필요 없다고 하는 생각도 할 수 있습니다. 워터폴 개발은 사전에 프로세스의 세세한 부분까지 생각해 결론을 내야 합니다.

포인트 비교 8: 인재 육성

인재육성에 두고, 워터폴 개발은 그 스테이지에 대응한 스킬을 습득하면 대응 가능합니다만, 애자일 개발은 전 행정에서의 스킬의 취득이 요구됩니다.

 

워터폴 개발은 인재육성이 애자일 개발보다 간단하고 단기간에 할 수 있으므로, 도중에 새롭게 참가한 멤버를 전력으로 하기 쉽습니다.

 

애자일 개발에 대응하기 위해서는 폭넓은 지식과 경험이 필요하므로 대응할 수 있는 인재는 조직에 있어서 수요가 높고 시장가치가 높아지는 경향이 있습니다.

애자일 개발과 워터폴 개발의 이점에 대해

애자일과 워터폴은 각각 다른 장점과 단점이 있습니다.그러므로 프로젝트와 고객에 따라 적절한 것을 선택해야합니다.

 

적절한 방법을 선택할 수 있으면 스트레스 없이 효율적으로 양질의 제품이나 서비스를 제공할 수 있습니다. 프로젝트의 시작 단계에서 면밀한 정보 수집과 시뮬레이션이 필요합니다.

민첩한 개발의 경우

애자일 개발의 경우, 큰 특징으로서 빠른 속도로 서비스나 제품을 고객에게 전달되어 고객의 의견에 맞게 서비스나 제품의 질과 방향성을 조정할 수 있는 일이 있습니다.즉, 고객의 삶의 목소리를 들으면서 개발을 할 수 있다고 하는 것이 애자일 개발의 장점의 근본입니다.

 

이 근본의 장점을 살릴 수 있는 프로젝트인지 여부를 먼저 조사하는 것이 성공에 대한 첫걸음입니다.

개발 기간을 단축할 수 있다

민첩한 개발의 민첩성은 신속하고 민첩한 의미가 있습니다.애자일 개발의 개발 기간의 단축에 의해, 납기의 단축 외에, 조기 시점부터 고객측이 서비스나 제품을 조작할 수 있기 때문에, 고객측의 시스템 개발의 지식을 올리기 쉽다, 라고 하는 것이 있습니다.

 

또한 개발기간이 짧은 것으로 비용에 작은 돈을 쓸 수 있어 인원이나 설비 확보 계약에 유연성을 갖게 한다는 장점도 있습니다. 예를 들면, 다음 번의 반복이 힘들 것 같기 때문에, 1개월만 사람을 고용하는 등의 대응도 가능하게 됩니다.

 

개발 기간의 단축은 언뜻 보면 납기에 항상 쫓기는, 같은 마이너스의 이미지가 있습니다만, 잘 사용하면 큰 이점을 개발 팀과 고객에게 가져올 수 있습니다.

가변적이고 양방향적

민첩한 개발의 이점은 가변적이고 양방향적이라는 점입니다.애자일 개발은 서비스의 제공과 개발이 평행하기 때문에, 서비스의 피드백이나 의견 교환을 고객과 개발 팀측에서 많이 할 수 있습니다.

 

정기적으로 프로젝트에 관여하는 인간과 전체와 커뮤니케이션을 취하고, 인식의 어긋남이나 그로 인한 반환 및 수정의 기간을 최소한으로 억제할 수 있으므로, 낭비적인 돈과 시간의 손실을 줄일 수 있습니다 .

 

이 메리트를 살리기 위해서도, 고객측에 은폐를 하지 않고 정직하게 상황을 말할 수 있는 도흉과, 조어 없이 일을 전할 수 있는 커뮤니케이션 능력을 가진 인간이 팀의 리더나 매니저에게 적합합니다.

각 반복마다 사양 변경 가능

민첩한 개발은 반환이 발생해도 거기까지 공수를 낭비하지 않으므로, 반복마다 사양의 변경이 가능하게 됩니다.

 

귀환이 발생해도 시스템 전체의 개발이나 테스트를 다시 할 필요는 없기 때문에, 고객측의 요구에 유연하게 대응할 수가 있습니다.

 

고객 측으로도, 거기까지 시간과 비용의 손실을 하는 걱정이 없기 때문에, 유저빌리티를 높게 하는 요망이나 변경을 내기 쉬워집니다.

프로토 타입을 신속하게 만들 수 있습니다.

민첩한 개발은 개발 기간의 단기부터 시제품을 신속하게 작성하여 고객에게 볼 수 있습니다.

 

시제품처럼 눈이 보이는 것이 있으면 고객의 이해도나 고객으로부터의 신뢰를 비약적으로 높일 수 있게 되어 뒤에 불필요한 고생을 하지 않고 끝납니다.

 

시제품을 빨리 만들 수 있으면, 팀 멤버에게 프로젝트 내용을 빨리 이해시키는 것에 효과가 있고, 개수시에도 개수하는 부분의 목표도 붙이기 쉬워집니다.

개발 도중 데모 확인 가능

애자일 개발은 개발 도중에 데모 확인이 가능합니다.이를 통해 고객 측과 개발 팀 측의 인식 함몰을 초기 단계에서 해소할 수 있습니다. 또 그것뿐만 아니라, 빨리 데모 확인을 하는 것으로 개선점이나 문제점이 빠른 단계에서 판명된다, 라고 하는 메리트도 있습니다.

 

데모에서 사용한 것은 중간에 새롭게 프로젝트에 참여하는 회원이 프로젝트와 업무를 이해하는 데 도움이됩니다.

개발 도중에도 사용자 요구를 반영할 수 있다

애자일 개발은 개발 도중에도 사용자 요구를 반영하는 것이 가능합니다.원래 계획 단계에서 면밀히 계획을 세우지 않고 변경의 여지를 남기고 있기 때문입니다.

 

애자일 개발은 제품이나 서비스의 릴리스와 제품 개발이 병행해 행해지므로, 유저의 원시의 목소리를 반영하는 것으로, 보다 유저빌리티가 높은 것을 만들 수가 있습니다.

워터폴 개발의 경우

워터폴 개발의 주요 특징 중 하나는 계획의 구성을 이해하기 쉽다는 점입니다.

 

또, 사전에 면밀한 계획을 세운다, 라고 하는 것도 언뜻 보면 융통이 유리하지 않게 될 것 같습니다만, 워터폴의 메리트에 연결해 갑니다.

간결하고 이해하기 쉬운

간결하고 알기 쉬운 점은 스케줄이나 팀의 진척 상태의 관리의 용이함에 연결됩니다.그 시점에서 임하고 있는 스테이지가 팀 멤버는 모두 공통이므로, 일에 융통도 익히기 쉬워집니다.

 

고객 측에 있어서도, 서비스가 예정대로의 일정으로 릴리스 할 수 있을까를 알기 쉽기 때문에, 쓸데없는 설명의 수고가 없어집니다. 개발팀은 시스템의 개발, 고객측은 서비스의 질과 매출의 향상이라고 말한 본래의 목적에 집중할 수 있습니다.

고품질을 확보하기 쉽다

워터폴 개발은 고품질을 확보하기 쉽습니다.사전에 목표뿐만 아니라 목표로 진행하기 위한 길과 진행방법까지 면밀히 계획을 세우므로, 프로젝트에 참가한지 얼마 안된 인간이라도 업무나 프로젝트에 대한 이해가 용이해집니다.

 

업무나 프로젝트에 익숙해지는 것도 빠르기 때문에, 질 좋은 일을 단시간에 실시할 수 있는 멤버가 늘어나기 쉽습니다.

넓은 적용성

워터폴 개발은 적용 사례가 과거에 많이 있습니다.그로부터 넓은 적용성이 있어 다양한 상황에 응용할 수 있습니다.

 

개발 계획의 입안 경험이 부족해도, 자신들과 비슷한 프로젝트를 찾기 쉬운 일로부터, 과거의 계획을 재구성해 수정을 하면 좋은 일도 많습니다. 프로젝트 발족 단계에서의 노동력을 대폭 줄일 수 있으며 프로젝트 자체의 성공 확률도 올라갑니다.

 

 

 

 

애자일 개발과 워터폴 개발의 단점에 대해서

워터폴과 애자일에는 각각 장점뿐만 아니라 단점도 존재하고 있습니다.완벽한 계획은 존재하지 않기 때문에 어느 계획을 채택할 것인지는 단점을 포함하여 잘 생각해야합니다.

민첩한 개발의 경우

민첩한 개발은 개발 기간의 단점에서 오는 계획과 사양 변경에 유연하게 대응할 수 있다는 점이 장점이었습니다.그러나 이 장점이 때로는 단점으로 바뀌어 프로젝트 진행에 지장을 주는 경우도 있습니다.

빈번한 사양 변경으로 인해 품질 확인이 뒤따를 수 있음

애자일 개발의 단점으로서, 빈번한 사양 변경에 의해, 품질의 확인이 후손으로 돌아 버린다는 점이 있습니다.각 반복에 대해 반복적으로 개발할 수 있으므로 장기적인 개발을 시작하고 전체 시스템의 품질을 간과할 수 있습니다.

 

프로젝트의 시작 단계에서 개발시의 방향성이나 컨셉을 고객 측과 확실히 토론하고 서로의 인식을 마주하지 않으면 이러한 상황에 빠질 가능성이 높습니다.

너무 큰 개발 규모에서는 제약을 할 수 있는 경우가 있다

민첩한 개발은 개발 팀과 고객간에 활발하게 의견을 교환할 수 있습니다. 그러나 너무 큰 개발 규모에서는 그것에 비례하여 프로젝트에 관련된 인간도 많아집니다.

 

너무 큰 개발 규모의 프로젝트로, 너무 많은 인간과 활발하게 의견 교환이 되면, 중요한 결정을 좀처럼 할 수 없고, 프로젝트의 진행의 발판이 되는 경우도 있습니다.

사양 변경·개선이 지속적으로 계속될 가능성이 있다

애자일 개발의 경우, 목표나 목적이 흔들리기 쉽기 때문에, 연장 사양 변경이나 개선이 계속될 가능성도 있습니다.처음에 대략적인 프로젝트나 팀의 방향성을 결정해 두지 않으면 이러한 상황이 될 가능성이 있어, 비용이나 시간을 낭비하게 낭비하는 사태가 되어 버립니다.

워터폴 개발의 경우

워터폴 개발에도 단점이 존재합니다.이전의 스테이지로 돌아오지 않는, 현 단계의 스테이지가 완료하지 않으면 다음의 스테이지에 가지 않는, 등의 간단한 구조가 때로는 원이 될 가능성이 있습니다.

개발에 시간이 걸린다.

워터폴 개발은 제품이나 서비스의 릴리스까지 시간이 너무 걸린다는 점이 단점에 들 수 있습니다.출시까지 몇 년이 걸리는 시스템도 있습니다.

 

개발에 시간을 필요로 하는 것으로부터, 마지막 마지막으로 고객이 생각하고 있던 것과 다른 것이 생겼다, 라고 하는 일도 있을 수 있습니다.

시간에 비례하여 비용이 많이 든다

워터폴 개발은 개발에 상당한 시간을 필요로 하기 때문에, 비용이 그만큼 부피, 회사의 경영을 그만큼 압박합니다.

 

개발에 수년이 걸리면 비용이 부담될 뿐만 아니라 투자를 회수하기까지의 기간도 길어지므로 회사의 수익력에도 영향을 미칩니다.

도중의 사양 변경은 손실이 크다.

워터폴 개발에서는 기본적으로 이전 스테이지로 돌아가지는 않습니다.그래서 만약 성과물을 만든 후에 사양 변경 등이 발생하면 이전 스테이지를 모두 다시 하게 되어 매우 큰 손실을 안고 버립니다.

방대한 문서 작성 필요

워터폴 개발은 각 공정에서 아티팩트가 필요하지만 소스 파일뿐만 아니라 요구사항 정의서나 설계서, 테스트의 근거 등 매우 다양합니다.

 

각 공정에서의 성과물은 고객 측이 개발 팀의 진척을 파악하는 몇 안되는 자료이므로 손잡이는 허용되지 않지만, 그만큼 본래의 목적과는 다른 방향으로 나눌 수 있는 노력도 커집니다.

개발 도중의 사용자 요청은 반영할 수 없다.

워터폴 개발에서는 기본적으로 이전 스테이지로 돌아가는 것을 상정하고 있지 않습니다.따라서 개발 도중에 사용자의 요구를 반영 할 수 없습니다.

 

만약 사양 변경을 하는 경우, 제품이나 서비스의 릴리스까지의 일수가 증가하는 것은 물론, 비용도 증대하므로, 고객측은 매우 터프한 결정을 강요받습니다.

애자일 개발에서 채용되는 3가지 방법을 소개

애자일 개발 중에도 다양한 종류가 있습니다.다양한 상황에 대응하기 위해 애자일 개발의 각각의 특징과 이점을 강조하는 몇 가지 개발 방법이 고안되어 왔습니다.

민첩한 개발 방법 1: 스크럼

애자일 개발의 수법 중에서도 메이저인 부류에 들어가는 것이 스크럼이라고 불리는 수법입니다.스크럼 마스터라고 불리는 역할의 인물을 바탕으로 계획을 팀 멤버로 면밀히 토론하면서 프로젝트를 진행해 나갑니다.

 

강한 리더십과 경영력을 가진 사람이 스크럼 마스터가 될 수 있는지 여부는 프로젝트 성공의 열쇠입니다.

민첩한 개발 방법 2: 익스트림 프로그래밍(XP)

익스트림 프로그래밍이란 도중의 사양 변경에도 유연하게 대응할 수 있는 것을 특히 중시한 개발 수법입니다.유연한 대응력이 요구되기 때문에 높은 프로그래밍 솜씨를 가지고 있는지가 매우 중요합니다.

민첩한 개발 방법 3: 사용자 기능 구동 개발(FDD)

사용자 기능 구동 개발(FDD)은 고객 시선에서의 기능 개발을 중시하는 기법입니다.사용자 측이 무엇을 필요로 하는가 하는 근본적인 요망을 중시하는 것으로부터, 애자일 개발의 약점의 하나인, 품질을 담보할 수 있는 개발 수법이 됩니다.

 

 

 

 

개발에 맞추어 애자일 개발이나 워터폴 개발을 선택하는 것이 중요!

워터폴과 애자일의 차이에는 여러가지 점을 들 수 있으므로, 각각 구분이 필요하게 됩니다. 목표나 목표가 명확하다면 워터폴 개발을 채용해야 하고 목표나 목표가 정해지기 어렵고 변경이 생기기 쉽다면 애자일 개발이 좋을 것입니다.

 

워터폴과 애자일 개발을 병용하는, 하이브리드 개발이라는 수법도 있습니다만, 어쨌든, 프로젝트 개시 전에 잘 생각하고 나서 채용해야 합니다.

 

각 프로젝트의 성격에 맞는 개발 기법을 선택하면 최소한의 비용으로 효율적이고 양질의 서비스와 제품을 제공할 수 있습니다.