애자일이란?
애자일은 ‘날렵한’, ‘기민한’이라는 뜻으로 소프트웨어 개발 방법론 중 하나이다. 작업 계획을 짧은 단위로 세우고 제품을 만들고 고쳐 나가는 사이클을 반복함으로써 고객의 요구 변화에 유연하고도 신속하게 대응하는 개발 방법론이다. 애자일을 더 알아보기 위해 폭포수 모델 방법론과 비교하여 알아보자.
폭포수 모델 방법론(Waterfall Methodology)
위의 사진과 같이 폭포수 모델은 요구사항 분석- 설계 - 구현 - 테스트 - 유지보수
의 단계를 거쳐 개발하는 방식이다. 이 방식의 문제점은 각 단계가 종료된 후에만 다음 단계로 넘어갈 수 있다는 것이다. 소프트웨어 개발에 있어 고객의 모든 요구사항이 완벽하게 수집된다면 문제가 되진 않지만 이 가정은 매우 비현실적이다.
이러한 문제점으로 애자일 방법론이 대두 되었다.
애자일 방법론(Agile Methodology)
애자일 방법론은 하나의 사이클안에 분석 - 설계 - 테스트 - 구현
을 두어 주기를 돌게 한 후 여러번 반복하는 방식이다. 이러한 반복적이고 점진적인 개발 방식을 통해 사이클마다 피드백을 받고 요구사항들을 쉽게 수용할 수 있는 유연한 개발방법이다. 이 개발방법을 이용해 많은 종류의 방법론이 나오게 되고 그 중 대표적인 스크럼에 대해 알아보자.
스크럼(Scrum)
스크럼은 애자일 방법론 중 하나이며 비즈니스 요구를 충족시키는데 초점을 맞추기 위해, 작은 목표를 짧은 주기로 점진적이며 경험적으로 제품을 지속적으로 개발하는것에 목표를 가지고 있다.
위의 사진은 스크럼 프로세스를 나타내고 스크럼 프로세스 동안 계획회의, 일일 스크럼 등 여러 단계를 수행하며 주요 용어는 아래와 같다.
- 제품 백로그(Product Backlog) : 개발할 제품의 요구사항인 사용자 스토리 집합이며, 우선순위로 관리.
- 스프린트(Sprint) : 계획,개발,리뷰 작업 등 최소 단위의 Cycle이다.
- 스프린트 계획 회의(Sprint Planning Meeting) : 스프린트 목표와 스프린트 백로그를 계획하는 회의.
- 스프린트 백로그(Sprint Backlog) : 각각의 스프린트 목표에 도달하기 위해 필요한 작업 목록.
- 일일 스크럼(Daily Scrum) : 매일 어제 한일, 오늘 할일, 해결해야 할 장애/문제 요소를 공유하는 회의(매일 15분 정도 수행)
- 스프린트 리뷰(Sprint Review) : 스프린트 마지막날 개발자가 개발한 내용을 Stakeholder, 고객, 제품 책임자에게 시연하고 검토.
- 스프린트 회고(Sprint Retrospective) : 스프린트 마지막날 좋았던 점, 개선할 점을 도출하고 더 나은 방향으로 개선.
이러한 유연하고 효율적인 개발을 할 수 있도록 만드는 애자일 방법론은 고객의 요구사항을 한 주기마다 파악할 수 있고, 피드백을 받을 수 있다는 점에서 소프트웨어의 품질을 지속적으로 개선할 수 있게 된다.