Agile
개념
등장 배경
- 계획 중심의 소프트웨어 개발
- 소프트웨어 사용 대상이 일반 대중으로 넘어가고 비즈니스 수명이 짧고 개발 불확실성 증가
새로운 개발 방법 등장
- 개발의 불확실성이 높아져 기존 계획 중심 개발보다 규칙을 적게 만들고 쉽게 대응 가능하도록 개발
- 개발을 시작하고 수정해 나가는 방식으로 개발
Agile 등장
- 협력과 피드백을 중심으로 개발
협력
- 협력을 통해 잘 개발된 코드를 공유하여 모두가 빠르게 개발
- 잘못된 코드를 협력을 통해 빠르게 발견
피드백
- 내부적으로 내가 작성한 코드를 확인하고 외부적으로 고객이나 사용자가 사용한 결과를 통해 학습
불확실성
- 개발의 불확실성은 개발 과정에서 의도한 결과와 다른 상황을 의미
- 전통적인 개발 방식은 개발의 불확실성에 대해 요구 분석 단계에서 모든 요구 사항을 정확히 전달하는 것이 원칙
- 전통적인 개발 방식의 한계를 극복하기 위해 애자일 방식은 개발 과정에서 변경 사항을 유연하게 대응
Agile 특징과 진행 방법
특징
- 개발자와 고객 사이의 지속적인 커뮤니케이션으로 변화하는 요구사항을 수용
- 고객의 가치를 우선하고 개발자 개인보다 팀의 목표 우선
- 주기적인 미팅을 통해 프로젝트 점검
- 주기적으로 고객으로부터 피드백
- 품질 향상과 간단한 내부 구조로 비용 절감
스크럼
- 애자일을 통해 가장 많이 사용하는 개발 방법론
- 애자일을 수행하기 위한 규칙과 팀 역할을 정의하는 실행 가능한 프레임워크
- 1-4주 정도의 스프린트 단위로 작업을 진행
진행 방법
- 제품 기능 목록 작성
- 우선순위를 가진 사용자 요구 사항 정의서
- 개발 중 수정 가능하지만 주기가 끝날 때까지 수정하지 않는 것이 원칙
- 스프린트 backlog
- 각각의 목표에 도달하기 위한 작업 목록
- 구현 내용, 작업자, 예상 작업 시간
- 스프린트
- 작은 단위의 개발 업무를 단기간에 개발
- 보통 2주-4주 정도의 주기가 결정되고 목표와 내용이 팀원들 동의 없이 수정되지 않는 것이 원칙
- 일일 스크럼회의
- 모든 팀원이 참석하고 짧게 진행 상황을 점검
- 완료된 세부 작업 목록을 스프린트 현황판에 업데이트
- 제품 완성 및 스프린트 검토 회의
- 모든 스프린트 주기가 끝나면 최종 제품을 고객에게 시연하기 위한 스프린트 검토
- 개선점과 품질 검토
- 스프린트 회고
- 스프린트에서 수행한 활동과 개발한 내용을 살펴 개선점 검토
스크럼 장단점
장점
- 스프린트마다 생산되는 제품을 통해 사용자의 피드백을 받을 수 있다.
- 회의를 통해 신속한 협력과 조율 가능
- 개인의 일정을 발표하면서 업무 집중
- 프로젝트 진행 현황을 통해 목표와 결과 추정이 빠르게 가능하고 변화 시도가 용이
단점
- 추가 작업이 필요(스프린트마다 테스트 제품 생산)
- 15분이라는 회의 시간을 지키기 어려움
- 스크럼은 프로젝트 관리에 중심을 두기 때문에 품질 평가는 약하다.
Reference
https://gyoogle.dev/blog/computer-science/software-engineering/Agile.html
'Software Engineering' 카테고리의 다른 글
CSR & SSR (0) | 2023.04.20 |
---|---|
Logging level (0) | 2023.04.19 |
3rd Party (0) | 2023.04.16 |
MSA (0) | 2023.04.15 |
DevOps (0) | 2023.04.14 |