너희는 지금 전혀 '애자일'하고 있지 않아
이전 글 어느 날, 회사에서 서비스 개발을 멈추기로 했다.에서는 회사에서 2개월 간 서비스 개발을 멈추고, 개발 프로세스 개선하는 TF에 참여하면서 느낀 점을 정리했습니다.
애자일 프로세스를 적용한 지 6개월이 지났습니다
6개월의 시간 동안, 1번의 마이너 업데이트와 2번의 핫픽스를 진행했습니다. 이번 글에서는 조직에서 애자일 프로세스를 적용한 방법, 겪었던 시행착오, 개선된 점 등을 기록 해보려고 합니다.
애자일 하다는 착각
애자일이 뭐야...
회사 채용페이지의 개발 문화 페이지는 제가 작성했는데요. 작성할 때만해도 저는 저희 조직이 애자일하게 개발하고 있다고 생각했습니다. 그런데 기획을 수정하는 게 왜 이렇게 힘든 걸까요? 왜 개발자들이 릴리즈 날에 밤새면서 버그를 고치는 걸까요? 애자일한 조직은 이러지 않아야 하는 것 아닐까요? 애자일은 무엇일까요?
AS-IS
예를 들어 메이저 업데이트를 6개월 간 개발한다고 가정해 보겠습니다. 기존에는 스프린트 1개의 기간을 1개월로 잡아서 총 6개의 스프린트를 진행했습니다. 개발 스프린트 5개와 QA 스프린트 1개로 구성되어 있었어요.
프로젝트 초기(스프린트 1~2)
초반 1~2개월은 버전에 들어갈 메인 피쳐를 선정하는 데 소비합니다. 우선순위와 대략적인 마감 날짜를 정하기 위해 VoC, 피쳐 목록들을 쭉 보면서 기획이 없는 항목에 대해서도 주 단위로 공수를 산정해야 했습니다. 기획이 없다보니 각 팀이 생각하는 기능이 동상이몽입니다.
그리고 이 기간동안에는 당장 진행할 수 있는 피쳐가 없으니 기획/디자인이 완성되길 기다리면서 리팩토링도 하고, 기술 탐색도 해보고, 비교적 여유 있는 시간을 보냅니다.
- 기획자도 모르는 피쳐에 대한 공수 산정
- 기획이 없어서 프로젝트 초반의 시간을 허비
프로젝트 중기(스프린트 3~4)
이때쯤에는 메인 피쳐에 대한 기획이 어느정도 진행되어 있습니다. 하지만 피쳐의 크기가 워낙 커서 스프린트 4가 끝날 때까지도 디자인이 완성되지 않았거나, 기술적인 한계 때문에 기획이 변경되는 경우가 많습니다. 개발을 진행하면서 기획이 빈번하게 변경되면서 하나의 피쳐를 2~3개월에 걸쳐 개발하기도 합니다. 스프린트를 끝내고 PM이 진행도를 체크하려고 보면 '메이져 업데이트에서 우선순위가 높은 기능들을 열심히 개발중'이라고 밖에 말할 수 없습니다.
- 피쳐의 크기가 너무 커서 놓치는 기획도 많고, 변경이 빈번함
- PM이 프로젝트의 진행도를 체크하기 어려움
프로젝트 말기(스프린트 5, QA 스프린트)
스프린트 5에서는 큰 피쳐는 어느정도 끝내고, 작은 피쳐들을 개발하기 시작합니다. 그런데 작은 피쳐라고 생각했던 것들도 한달 안에 끝내기에는 쉽지 않아 보이는 것들이 많습니다.
한편, 큰 피쳐들에 대한 QA가 진행되면서 버그가 계속 쌓입니다. 프로젝트 중기에 미뤄둔 작은 피쳐 개발을 진행하느라 버그 픽스는 QA 스프린트로 미뤄둡니다. 최악의 상황에는 피쳐 개발을 끝내지 못해서 QA 스프린트에서도 피쳐 개발을 진행합니다.
- 남은 피쳐의 크기도 작지 않음
- 버그 픽스할 시간이 없음
- QA 스프린트에서도 개발 진행
- a.k.a 지옥의 행군
애자일 하기 위해 도입한 2가지
진짜 '애자일'한 프로세스를 위해 크게 2가지를 도입했습니다.