프로젝트 수행에 있어서 개발환경, 비용, 기간, 규모, 숙련도, Risk 등 다양한 요인을 고려해서
최적의 개발 모델을 선택해야 합니다.
<프로젝트 수행 큰 흐름>
: 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
※ SW 요구사항: Software가 제공해야하는 서비스/ 품질 등과 관련된 제약
※ 유지보수: 오류 발견 및 수정, 인프라 변경에 대한 대응, 기능/성능 개선 등
폭포수 모델(Waterfall Model)
- 각 단계 종료 후 다음 단계로 진행하는 방식입니다.
(순차적으로 이어지는 흐름이 마치 폭포수처럼 보인다해서 명명되었습니다.)
- 정해진 단계별로 업무가 분장되기 때문에 프로세스 상의 마일스톤을 정하는데 있어서 용이합니다.
(각 단계마다 기간 할당하며, 단계별 공식 산출물도 존재합니다.)
- 단계별 경계 구분이나 고객의 요구사항 변경시 이전단계로 돌아가서 대응하기 쉽지 않음
(이전단계로 돌아가는 경우 일정 및 비용에서 애로사항이 발생합니다.)
ex) 폭포수 모델의 경우 『구현』 단계에 이르러서야 서비스의 Proto Type이 나올 수 있기에
고객과의 소통에 있어서도 쉽지 않을 수 있습니다.
(화면 설계 문서, 요구사항 정의서만으로는 어려움 존재)
애자일(Agile)
- 폭포수 모델의 단점을 해결을 위한 대안으로 등장 → 고객 요구사항 변경에 대한 빠른 대응
(반복적 / 점진적 개발 방법론의 한 유형)
- 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어 내며 필요할 때마다
요구사항을 반영하여 개발해 나가는 방식 (고객과의 의사소통 중시)
(잦은 배포를 통한 Risk 감소)
- 문서보다는 실질적인 코드 중시 (Less Document-Oriented)
- 애자일에는 반복되는 개발 주기를 뜻하는 "스프린트(Sprint)"가 존재하는데,
1~2주, 3~4주 짧은 단위부터 30일 단위까지 다양하게 스프린트를 쪼개며 진행합니다.
- 특정 기간 동안 목표와 필요 작업을 명시하고, 백로그(Backlog)로 진행방식을 남겨
각 스프린트가 끝나는 시점에 리뷰하고 피드백을 주고받는 형태
폭포수 vs 애자일
- 폭포수(Waterfall) 방법론은 요구사항을 완벽하게 취합하여 계획대로 진행하는 방법론
- 애자일(Agile)은 요구사항을 초기에 완벽하게 취합하는 것이 불가능하기 때문에
개발 주기를 반복하고 고객과 소통하면서 소프트웨어의 품질을 발전시키는 방법론
* 서두에도 말씀드린 바와 같이 두 가지 방벙론 특징을 바탕으로 개발 조직에게 적합한 방법론을 적용해야 합니다.
▶ 초기단계에서 정의된 요구사항 vs 각 단계마다 변경되는 요구사항 반영
▶ 빅뱅 (Big Bang) 릴리즈 vs 빠른 릴리즈
▶ 고객과의 비교적 적은 의사소통(문서 위주) vs 고객과의 지속적인 의사소통(코드 위주)
▶ 단계별 중간물 전달 vs 진행하고 있는 작업본을 지속적으로 전달
▶ 마지막 단계에 통합 및 테스트 vs. 애자일 : 초기와 이후 잦은 통합 및 테스트
'까망 동네 > 까망' 카테고리의 다른 글
알고리즘 공부 필요성 (0) | 2021.02.21 |
---|---|
삼성 SW 코딩 테스트 준비(A형) (0) | 2021.02.21 |
SI / SM / Solution 회사 특징 (0) | 2021.02.17 |
기술 블로그 플랫폼(Platform) 선정 시 고려사항 (0) | 2021.02.17 |
네이밍 컨벤션 (Naming Convention) (0) | 2021.02.17 |
댓글