소프트웨어 개발 방법론은 소프트웨어를 생산하는 데에 필요한 프로그래밍 개발 과정들을 정리하고 표준화하여 프로그래머들이 프로그래밍 개발과정에서 각개인이 개발과정에서의 일관성을 유지하고 프로그래머들간의 효과적인 협업이 이루어질수 있도록 돕기 위한 방법론이다.
폭포수 모델(waterfall model)은 순차적인 소프트웨어 개발 프로세스(소프트웨어를 만들기 위한 프로세스)로, 개발의 흐름이 마치 폭포수처럼 지속적으로 아래로 향하는 것처럼 보이는 데서 이름이 붙여졌다. 이 폭포수 모델의 흐름은 소프트웨어 요구사항 분석 단계에서 시작하여, 소프트웨어 설계, 소프트웨어 구현, 소프트웨어 시험, 소프트웨어 통합 단계 등을 거쳐, 소프트웨어 유지보수 단계에까지 이른다.
애자일 방법론은 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론이다. 즉, 문서를 통한 개발 방법이 아니라, code-oriented, 실질적인 코딩을 통한 방법론이다. 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며 그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는 adaptive style 이라고 할 수 있다. 애자일 개발 프로세스란 어느 특정 개발 방법론을 가리키는 말은 아니고 "애자일(Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이다.
에자일 개발 방법론 중 하나인 스크럼은 위 이미지와 같은 순서로 진행된다. 트렐로를 활용하여 약 2주간의 프로젝트 때 스크럼 방식을 활용한 적이 있다. 로드맵은 생략하고 백로그부터 스프린트, 데일리 스크럼을 활용하여 프로젝트 진행 상황을 점검하고, 그에 따른 수정 사항을 반영하기 쉬웠다. 그리고 데일리 스크럼을 통해 팀원들과 유연한 소통이 가능했다. 에자일의 장점을 경험할 수 있었다.
소프트웨어 개발 방법론 중 비교적 전통적인 워터폴 방법론과 애자일 방법론이 있다.
워터폴 방법론은 SI 업체에서 많이 사용하는 방법으로 요구사항을 초기에 정의하고 프리징한다. 그 요구사항을 분석, 설계를 하고, 구현하고 테스트하는 순으로 이루어진다.
애자일 방법론은 소프트웨어 개발에 있어서 무계획과 지나치게 계획이 많은 개발 방법론들의 타협점이다. 초기 설계 문서에 의존하지 않고 실직적인 코딩을 통한 방법론인데, 그 중 직접 사용해본 스크럼 방식은 백로그, 스프린트, 데일리 스크럼 등을 통해 태스크 중심으로 개발을 진행할 수 있으며, 수정 사항을 민첩하고 유연하게 반영할 수 있고, 빠르게 피드백을 할 수 있는 장점이 있다.
참고)
https://blog.metafor.kr/159
https://www.ciokorea.com/news/166830
https://ko.wikipedia.org/wiki
https://brunch.co.kr/@workingus/31
https://www.youtube.com/watch?v=pdZNjNTyr8Q