Agile 방법론
- 특징
고객과 개발자의 지속적인 소통 → 요구사항을 신속하게 반영
팀의 목적과 고객의 의견을 가장 높은 가치로 둠
주기적인 회의와 제품 시연
고객으로부터 즉각적인 피드백을 통한 수정, 보완 가능
- 애자일 개발론의 등장 배경
폭포수(워터폴) 개발론 → 작업 절차가 한 단계씩 차례로 진행되는 가장 오래된 SW 개발론
속도가 느리고 유연하지 못하다.
요구 사항이 바뀌거나 수정하려면 다시 맨 처음부터 수정해야 하는 불편함이 있다.
- 워터폴 VS 애자일
워터폴 방법론
⇒ 문서화 많음. 대응 느림. 요구사항이 디테일하고 유동성이 적은 큰 규모의 제품 프로젝트에 적합
애자일 방법론
⇒ 지속적으로 요구사항을 반영. 고객, 시장의 변화에 빠르게 대응해야 할 때, 요구사항이 변경되거나 문제 발생이 잦은 프로젝트에 적합
- 애자일의 장단점
장점 ⇒
계획에 걸리는 시간을 최소화
반복적인 테스트로 버그를 쉽고 빠르게 개선 가능
빠르게 제품을 출시 가능
단점 ⇒
반복적인 유지 보수 작업이 많음
번아웃 현상이 쉽게 올 수 있음
개발 진행에 대한 정확한 이해 부족이 발생할 수 있음
- 최소 기능 제품 (MVP)
고객이 원하는 제품의 최소한의 기능을 정의
최소 비용으로 빠르게 만드는 핵심 기능만을 담은 제품
수익성 판단을 위한 시간과 비용 절감 측면에서 효율적
사업 리스크 최소화
- 스프린트
팀이 일정량의 작업을 완료하기 위해 정해진 짧은 기간 (주기)
기업에서는 보통 2주 정도의 기간으로 시작
스프린트 계획 회의에서 기간 동안 해야할 일들을 정리하고 달성하기 위한 방법을 회의함
스프린트 업무들 ⇒
제품 백로그 작성 : 의견 취합 후 업무의 우선순위를 매기는 작업
스프린트 백로그 작성 : 스프린트 내 팀원들이 해야 할 업무 리스트를 만드는 작업
데일리 스크럼 미팅 : 매일 진행한 업무를 보고하고 공유하는 작업
개발 및 테스트
스프린트 리뷰 및 회고 : 결과물을 통해 장단점을 분석하고 더 나은 방향으로 개선하는 작업
- 테스트 주도적 개발 = TDD
모든 것을 만들고 예측하기에는 시간이 부족함
실제 필요한 기능만 만들고 그 기능이 제대로 동작하는 지 코드 기반으로 테스트
잘 동작하는 것만 확인되면 코드 리팩토링 및 모듈화
- 데브옵스 = Dev + Ops
개발 + 운영의 합성어
새로운 SW 기능 개선, 버그 수정 시 바로 배포함으로써 빠른 피드백 가능
지속적 통합 및 연속 배포 (CI / CD) 구축