안녕하세요. 저는 우아한형제들 FC플랫폼개발팀에서 서버개발을 하고 있는 이경원입니다. 오늘은 글로 배운 애자일 방법론을 도입하고 진행했던 경험담을 기록하고자 합니다. 사실 저는 애자일 방법론에 대해서 잘 알지 못하고, 제가 도입을 시도한 것도 아닙니다. 단지 스크럼 이라는 책만 한번 봤을 뿐입니다. 글로 배운 것이죠.

읽기 전 자세

  • 단순히 애자일 방법론 경험을 공유하는 글입니다.
  • 애자일 방법론이 무엇인지에 대한 설명은 없습니다.
  • 이 글도 애자일스럽게 공유하고 싶습니다. 나름 스스로의 피드백 아닐까요?

애자일 도입? (참고)

한때 애자일 방법론에 대한 환상이 있었는데, 직접 경험해보지 못했기 때문에 애자일이 무엇인지 감이 잘 오지 않았습니다. 하지만 이번 프로젝트에 애자일 방법론을 경험하며 느낀 점은 애자일 방법론을 도입한다고 해서 거창하게 생각할 필요는 없다는 것입니다. 복잡한 도메인이 어떻게 변할지 정확히 예상할 수 없듯이, 방법론도 마찬가지라고 생각합니다.

하지만 여전히 애자일이 무엇인지는…

데일리 미팅!

아마 데일리 미팅은 대부분 경험해봤거나, 하고 있다고 생각합니다. 데일리 미팅은 간단합니다. 팀원들이 정해진 시간에 모여 어제는 무엇을 했고, 오늘은 무엇을 할 것이며, 어떤 문제(이슈)가 있는지 공유하고 잡담 자리입니다.

주의할 점은 시간이 너무 길어지지 않게 하는 것인데요. 시간이 너무 길어진다면…

plank

데일리 미팅에서 길어질 것 같은 주제는 따로 미팅을 잡는 게 좋다는 생각입니다.

하지만 이렇게 간단하고 귀찮은 미팅을 왜 매일매일 하는 걸까요? 단순히 자기 일정을 공유하는 자리를 만들기보단 문서나 메신저로 공유하면 안 될까요?

데일리 미팅을 시작한 후 마침 김창준 님의 애자일 키워드라는 팟방을 듣게 됐는데요. 데일리 미팅을 하는 가장 큰 이유는 일정 공유보다는 팀원 개개인의 감정을 학습하는 것이라고 합니다. 얼굴을 맞대고 데일리 미팅을 하며 팀원들 서로의 감정을 읽고 학습하는 시간인 것이죠. 쉽게 말하면 팀워크를 다지기 위함이 아닐까요?

데일리 미팅뿐 아니라 플래닝 포커, 회고 등을 통해서 가장 좋았던 점은 팀원과 자주 소통하고 다양한 의견을 들어보는 것이였는데요. 그래서 그런지 팀원 간 사이도 더 가까워지는 기분이에요!

플래닝 포커! (참고)

저는 사실 애자일 방법론에서 가장 해보고 싶었던 것 중 하나가 플래닝 포커였습니다. 플래닝 포커는 일정을 세우기 위한 전략인데, 이 전략은 요구사항을 분석해서 문서를 만들며 정확한 일정을 도출하기보단, 재밌는 방식으로 일정을 세우는 전략입니다. 물론 스토리라고 말하는 어느 정도 정해진 요구사항은 있습니다.

저희는 플래닝 포커를 하기 위해 Scrum Time 앱을 이용했습니다.

정확한 일정이 나올까?

플래닝 포커를 하면 정확한 일정이 나올까요? 저는 처음부터 당연히 나오지 않을 거라고 생각했습니다. 스토리 포인트가 정해지더라도 그 스토리를 해결하는 과정에도 요구사항은 변하고 일정도 변한다고 생각했습니다. 그렇다면 플래닝 포커를 왜 할까요?

여기서 스토리는 요구사항 또는 하나의 기능이라고 생각하셔도 됩니다.

  1. 무엇을 해야 하는지 모두가 이해한다.
    • 플래닝 포커를 하다 보면 팀원 모두 같은 스토리를 다르게 생각하는 경우가 많다.
  2. 할 일 목록을 만든다.
    • 스프린트에 내가 해야 할 일이 무엇인지 정확히 이해한다.
  3. 이 또한 팀원들 서로의 감정을 학습하는 시간 아닐까요?
  4. 하지만 스프린트(2주) 동안 해야 할 일을 모두 끝낸다.
    • 신기하게도 맞지 않을 것 같았던 일정은 대부분 스프린트 안에 끝냈습니다.

쪼개기

플래닝 포커를 통해 스토리를 작은 단위로 나누게 됩니다. 저희는 1/2(일), 1(일), 3(일), 5(일)를 기준으로 스토리 포인트를 정했는데요. 5포인트 이상의 스토리가 나오게 되면 2개 이상의 스토리로 쪼개는 것이죠. 한 스토리를 최대한 단순하게 만들어 되도록 스프린트 내에 일정을 맞출 수 있게 하는 것입니다.

planing_porker_1

맞아요. 우리 쪼개는 중이에요.

planing_porker_2

진지합니다!!!

회고!

저는 스스로도 회고를 많이 하는 편입니다. 회고하며 기록하는 것은 많은 장점이 있습니다.

  • 기록은 기억보다 더 자세한 내용을 담을 수 있습니다.
  • 다른 사람에게 도움을 줄 수 있습니다.
    • 경험을 기억으로만 공유하기보단, 자세한 내용을 담은 기록으로 공유하면 비슷한 경험을 시작하는 다른 사람에게 더 큰 도움을 줄 수 있습니다.
  • 스스로 칭찬하고 반성합니다.

저희도 회고를 통해 위와 같은 장점을 얻었습니다. 무엇보다 스프린트 기간 동안 무엇을 잘했고, 무엇이 문제였는지 확인하고 문제를 해결하는 방법은 무엇일까 고민하는 자리입니다. 무겁게 이야기 하기보단 커피도 한 잔씩 마시며 즐겁게 서로의 감정이 상하지 않도록 이야기하는 자리입니다. 물론 모든 내용은 기록합니다.

retrospective_2

용서와 칭찬의 시간

retrospective_4

저기 환하게 웃고 있는 사람이 저입니다. 칭찬을 받았나 봐요. (아니네요. 플래닝 포커 중이네요.)

이 글의 회고

쓰고 보니 이 글도 회고라는 생각이 들었습니다. 사실 애자일 방법론을 경험한 지 한 달 조금 넘었기 때문에 애자일이란 무엇이고 이렇게 해야 돼!라고 말하지는 못합니다. 그리고 앞으로도 못할 거라고 생각합니다. 그 이유는 애자일이기 때문입니다. 애자일 방법론은 정해진 규칙과 방법은 있지만, 정확한 프로세스가 주어지진 않습니다. 우리 상황과 이해관계에 맞게 변화하고 학습하며 적응하면서 우리만의 애자일 방법론을 만들어가는 게 애자일이지 않을까 생각합니다.

P.S

retrospective_4

명주 님은 생각보다 재밌다. 그걸 알게 돼서 좋았다.

회고 중 나온 내용인데요. 이 사진을 찍으신 분이 바로 명주 님입니다. 제가 회고 시간에 재밌다고 했더니, 페북에 이렇게 올리셨어요.

ps

이 글에도 올려달라고 하셨어요. 좋으셨나 봐요. 올려달라고 말씀하시는 것도 재밌네요. ㅋㅋㅋ

code_review

코드 리뷰도 합니다.

끗.