1. 스크럼 기법
1) 구성 : 스크럼마스터, 개발팀, 제품 책임자
- 제품 책임자 : 비즈니스 부분에 중점을 두고 프로젝트의 POI를 담당합니다. 요구사항이 담긴 백로그를 작성하고 백로그에 대한 우선순위를 지정합니다.
- 스크럼마스터: 방법론의 규칙과 프로세스를 준수하도록 팀을 이끄는 사람입니다. 스크럼 마스터는 프로젝트의 장애요소를 관리하며 필요한 경우 팀 코칭, 멘토링 및 교육 등을 제공하는 역할을 합니다.
- 개발팀: 개발자 이외에도 디자이너, 테스터 등 제품 개발을 위해 참여하는 모든 사람입니다.
2) 스크럼 개발 프로세스
- 제품 백로그 : 제품 개발에 필요한 모든 요구사항을 우선순위에 따라 나열한 목록입니다. 새롭게 도출되는 요구사항으로 인해 지속적으로 업데이트 되고, 이 백로그에 작성된 사용자 스토리를 기반으로 전체 일정 계획인 릴리즈 계획을 수립하게 됩니다.
- 스프린트 계획 회의: 제품 백로그 중 이번 스프린트에서 수행할 작업을 대상으로 단기 일정을 수립합니다.
- 스프린트: 실제 개발 작업을 진행하는 과정으로 보통 2~4주 정도의 기간 내에서 진행합니다. 백로그의 테스크를 대상으로 처리 속도를 추정한 뒤 담당자에게 할당합니다.
- 일일 스크럼 회의: 매일 15분 정도의 짧은 시간 동안 진행 상황을 점검합니다. 이 과정에서 스크럼마스터는 장애요소를 해결할 수 있도록 도와줍니다.
- 스프린트 검토 회의: 제품이 요구사항에 잘 부합되는지 사용자가 포함된 참석자 앞에서 테스팅을 수행합니다. PO는 개선 사항에 대한 피드백을 정리하고 다음 스프린트에 반영할 수 있도록 제품 백로그를 업데이트 합니다.
- 스프린트 회고: 주기를 돌아보며 규칙을 잘 준수했는지, 개선할 점은 없는지 등을 확인하고 기록합니다.
2. XP(eXtreme Programming) 기법
XP는 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법입니다. XP의 5가지 핵심 가치로는 의사소통, 단순성, 용기, 존중, 피드백이 있습니다.
1) 개발 프로세스
- 사용자 스토리: 고객의 요구사항을 시나리오로 표현, 내용은 기능 단위로 구성합니다.
- 릴리즈 계획 수립
- 스파이크: 요구사항의 신뢰성을 높이고 기술 문제에 대한 위험을 감소시키기 위해 별도로 만드는 간단한 프로그램입니다.
- 이터레이션: 하나의 릴리즈를 더 세분화 한 단위를 이터레이션이라고 합니다. 일반적으로 1~3주 정도의 기간으로 진행되며, 이 기간 중에는 새로운 스토리가 작성될 수 있고 작성된 스토리는 진행중인 이터레이션에 포함되거나 다음 이터레이션에 포함될 수 있습니다.
- 승인 검사(인수테스트): 사용자 스토리 작성 시 함께 기재한 테스트 사항에 대해 고객이 직접 수행합니다. 테스트 이후 새로운 요구사항이 작성될 수 있고, 발견한 오류 사항은 다음 이터레이션에 포함됩니다.
- 소규모 릴리즈
- XP의 주요 실천방법에는 Pair Programming, Collective Ownership, Test-Driven Development, Whole Team, Continuous Integration, Design Improvement(Refactoring), Small Releases가 있습니다.
2) 장단점
- 장점 : 소프트웨어 개발 비용와 일정을 단축할 수 있습니다. 모든 절차가 투명하고 책임감 있게 진행됩니다. 지속적인 피드백이 이뤄지며, 개발 전반에 걸쳐 진행되는 지속적인 테스트로 소프트웨어 생산 속도를 높이는 데 도움이 됩니다. 구성원들의 사기와 행복 증진에 도움이 됩니다.
- 단점: 이 기법은 디자인보다 코드에 더 중점을 둔다는 점이 단점으로 지적됩니다. 좋은 디자인이 소프트웨어 프로그램에 얼마나 중요한지는 생각한다면 이 기법은 단점이 될 수 있습니다. 코드 퀄리티를 보장하기 어렵다는 단점이 있고, 프로그래머들이 지리적으로 분산되어 있는 경우 이 기법은 좋은 선택이 아닐 수 있습니다.
'CS' 카테고리의 다른 글
객체지향 분석 및 설계 (0) | 2024.02.05 |
---|---|
객체지향 (0) | 2024.02.02 |
아키텍처 패턴 (0) | 2024.02.02 |
소프트웨어 아키텍처 (0) | 2024.02.02 |
소프트웨어 생명 주기 (0) | 2024.02.02 |