우리가 애자일을 통해 여러 해 동안 일해보고 그 결과를 목격하고 나면 애자일 방법론을 구현할 때 일반적으로 나타나는 큰 실수들을 (어두운 면) 발견하게 된다. 이제부터 왜 스크럼이 소프트웨어 프로젝트에서 실패하는지 몇 가지 이유를 살펴보도록 하자.
저자: 마우로 마트리척
애자일은 한동안 유행했던 단어로 많은 사람들이 자신의 프로젝트에서 이 방법론을 구현한다고 말 하는 것을 좋아했다. 사실은 애자일의 실제 구현과 그것이 가져다 주는 영감 사이에는 커다란 격차가 존재한다.
나는 애자일 방법론을 사용해 소프트웨어 개발 프로젝트에 십 년 이상 참여하고 난 뒤 그 결과를 목격했다. 이제 이 방법론으로 일해보지 않았던 팀에서 애자일을 구현할 때 일반적으로 나타나는 큰 실수들에 (어두운 면) 대해 이야기하고자 한다.
애자일이 필요한 이유는?
요즘 들어 모든 IT 회사는 자신들의 애플리케이션, 제품 또는 서비스를 가능한 한 빨리 출시해야 한다. 하나의 제품을 계획하고 6개월이나 1년 뒤에 시장에 출시하는 것은 불가능하다. 즉 우리는 몇 개월 만에 시장에 선보일 수 있는 최소 기능 제품에 (Minimum Viable Product) 도달할 때까지 최초의 아이디어를 기능으로 쪼갤 필요가 있다. 이를 통해 고객이나 최종 사용자가 주는 피드백에 근거해 제품을 계속 개발하고 개선할 수 있다.
진정한 애자일 개발 활동이 주는 3가지 장점을 몇 가지 단어로 표현하자면 다음과 같다.
애자일을 IT에 적용할 때 실패하는 이유
프로젝트 성공의 많은 부분이 우리가 사용하기로 한 방법론을 얼마나 잘 적용하는지에 달려 있다는 것은 새로운 내용이 아니다. 이것이 우리가 만들 제품의 프레임워크가 될 것이다. 그 프로세스에서 바뀌는 부분 어떤 것이라도 실패에 영향을 줄 수 있다.
이 점을 고려해 보면 애자일 방법론을 적용한 개발팀이 왜 기대한 결과를 얻지 못하는지에 대한 5가지 이유가 있다.
1. 애자일을 새로운 형태의 폭포수 개발 모델로 생각한다
많은 팀이 애자일 방법론을 구현하고 있다고 확신하지만, 여전히 폭포수 개발 방법론을 계속 사용하고 있다. 이 방법론을 따르는 프로젝트는 최종 제품이 어떤 형태여야 하는지 사전에 이미 알고 있을 뿐만 아니라 잘 구분된 순차 단계를 (요구사항 문서화, 디자인, 개발, 테스팅, 에러 수정 그리고 최종적인 조정) 가지는 것이 중요하다.
과거에 폭포수 개발 방법론으로 작업했던 스크럼 팀이 저지르는 일반적인 실수는 그냥 개발 단계를 2주 단위의 스프린트로 나누고 나머지 단계는 그대로 둔 채 애자일이 제공하는 모든 장점을 낭비하는 것이다. 그러므로 폭포수에서 애자일로 방법론을 개정하거나 이전할 때 단계에 관해서는 잊어버리고 애자일이 규정하는 활동에 집중하는 것이 필수적이다.
이것을 어떻게 피할 수 있나?
폭포수와 애자일 방법론 두 가지는 서로 다른 목표와 기능을 가지고 있다고 이해하는 것이 중요하다. 예를 들어 일반적인 애자일은 어떤 솔루션을 설계하고 개발하기 전에 그것이 어떤 형태일지 알 수 없다. 또한 애자일은 반복적으로 진행하는 것을 의미하므로 항상 빠르고 주기적으로 고객에게 솔루션을 전달하고 최종 제품을 개선하는데 필요한 피드백을 받아 가치를 더하는 것에 집중한다.
2. 고객의 참여가 적극적이지 않다
해당 솔루션의 고객이나 흥미를 보이는 그룹의 참여가 적은 것이 큰 문제 중 하나이다. 이것은 그들이 동시에 몇 가지 프로젝트에 참여하거나 무엇보다도 이런 방법론을 가지고 작업하지 않는 등의 몇 가지 이유로 발생한다.
실제로 개발팀에게 작업 명세만 주고 프로젝트의 상태와 진척에 관한 주간 보고서를 받는 회사를 만나는 것이 일반적이다.
이것을 어떻게 피할 수 있나?
성공적인 프로젝트를 위해서는 고객이 개발의 진척을 확인하고 각 스프린트를 마친 후 필요한 변경 사항이 적용되었는지 알기 위해 주요한 의식에 (리뷰나 계획 세우기) 참여하는 것이 핵심이다. 프로세스 내에 활동적인 고객이 있다면 최종 제품에 영향을 주는 재작업이나 시간 낭비를 피하게 된다.
3. 프로젝트의 초반에 각기 다른 영역이 참여하지 않는다
일반적으로 팀은 서로 다른 영역의 역량으로 (테스터, 디자이너, 기능 분석가, 개발자 등) 구성되며 그들 모두가 개발 프로세스에 기여한다. 하지만 다른 전문성의 관점은 내버려 둔 채로 각각의 스프린트에 개발자만 참여하는 팀이 존재한다. 이 또한 스크럼의 장점을 낭비하는 데 기여한다.
이것을 어떻게 피할 수 있나?
프로젝트 초반부터 함께 작업하는 다기능 애자일 팀을 유지하면 팀원들 각각이 지닌 경험, 지식, 기술을 지속적으로 공급받아 풍성한 결과로 이어지는 시너지를 만들 수 있다.
4. 몰두와 헌신의 부족
이전 주제와 연결되는 또 다른 중요한 점은 팀의 몰두에 관한 것이다.
단 하나의 프로젝트에만 전념하는 다기능 팀을 가지는 일은 특히 몇 가지 프로젝트가 진행 중이고 동시에 팀원들이 한 가지 이상의 프로젝트에 속해 작업해야 하는 소규모 조직일수록 어렵다.
이것을 어떻게 피할 수 있나?
애자일 팀원들은 전체 프로세스 내내 참여하고 헌신하는 것이 필수적이다. 만일 프로젝트 구성원이 각 이터레이션마다 완전히 참여하지 못한다면 개발팀과의 회의, 일상 업무, 계획 세우기, 리뷰 회의에 참여하는 것이 중요하다. 서로 소통하는 팀만이 프로젝트를 성공으로 이끌 수 있다.
5. 주기적인 루틴에서 벗어나기
애자일 방법론에서 사전에 정의된 루틴은 팀에 유용한 방법이다. 이게 팀에 유용하지 않다면 도입되지 않았을 것이고 이를 통해 팀이 스스로 관리하고 자율적으로 결정해야 한다. 실험과 배움이 핵심이다.
하지만 어떤 경우에는 루틴을 적용하는 것이 관료적인 절차의 출현으로 이어지거나 그 팀의 성장과 제품 개발에 가치를 더하지 못하는 시간 낭비일 경우가 있다.
이것을 어떻게 피할 수 있나?
팀을 성장시키는 배움을 만들어 내지 못하고 사용자에게 가치를 전달하지 않는 애자일 루틴은 시간 낭비이다. 모든 팀은 각각 다르기 때문에 팀원과 프로젝트에 최적인 루틴을 확인하고 적용하는 것이 중요하다.
결론
당신의 프로젝트에서 애자일이 왜 실패하는지 아직도 궁금한가? 애자일에서 최상의 결과를 얻기 위해서는 애자일이 단순히 2주 단위의 스프린트로 개발 프로세스를 쪼개는 새로운 버전의 폭포수 개발 방법론이라는 믿음을 포기해야 한다. 또한 프로젝트 초기부터 고객을 참여시키고 팀을 다기능 팀으로 만들고 도움이 되는 방법만 실천하는 것이 매우 중요하다. 애자일에서 얻을 수 있는 대부분의 것들은 올바르게 사용하지 않는다면 나타날 수 있는 어두운 면을 회피하는 데 도움을 줄 것이다.
저자 소개
마우로 마트리척은 Hexacta의 프로젝트 관리자이다. 이 기고는 https://www.hexacta.com/why-agile-fails-the-dark-side-and-how-to-avoid-it/ 에서 최초로 공개되었으며 Hexacta의 허가를 받아 다시 작성되었다.
댓글 영역