확~ 찍어눌러 Waterfall을 버리고, 우리는 왜 Agile을 선택했는가?

DevSeoRex·2024년 1월 24일
7
post-thumbnail

😁 천장에서 설계한 프로젝트

한창 MSA에 대한 관심이 무르익고, 혼자 공부를 하고 있었는데 자려고 집에 누웠는데 천장에 MSA 구조를 가진 컨테이너들이 떠다니는 환상(?)을 보았습니다.

MSA 아키텍처에 대해서 공부를 하고 실습도 했지만, 실제 서비스에서 어떻게 적용할 수 있을지 너무 궁금해서 잠을 이루지 못할 지경이였죠.

회사에서는 MSA 아키텍처를 적극 도입하고 있지 않았기에, 결국 동료를 모아 사이드 프로젝트에서 그 꿈을 이루기로 결정하게 되었습니다.

천장에서 설계된 아키텍처를 현실로 옮기는 낭만있는 사이드 프로젝트, 우아한 남형제들은 그렇게 시작되었습니다.

팀 레포지토리의 마스코트만 봐도 어떤 프로젝트인지 감이 오실거라고 생각합니다 😊

😃 요즘 뭐하고 계세요?

우아한 남형제들 팀은 매주 토요일에 오프라인 미팅을 하고 있었습니다.
서로 안부도 묻고, 간단한 사담도 나누다가 항상 같은 말을 하고 있었어요.

"요즘 뭐하고 계세요?"

이렇게 물어보는 것이 문제가 되는 것은 아니라고 생각했고, 서로 어떤 업무를 하는지 토요일마다 만나서 공유하고 다음 계획을 잡고 집에 돌아가곤 했습니다.

프로젝트를 진행하면서 노션을 사용했었는데, 칸반일정 관리를 하고 있었음에도 프로젝트 진행에 병목이 발생하고 있다는 것을 느끼게 되었습니다.

그렇게 2024년 1월 1일 프로젝트를 같이 진행하는 형제님들을 만나서 어떻게 이 문제를 해결할지 같이 논의해보는 자리를 가졌는데요.

그 결과 Agile 문화를 우리 팀에 도입하고, 이슈 트래킹이 잘 되도록 회고 문화도 함께 갖춰가기로 결정하게 되었습니다.

🙃 Agile 주입하기

먼저 Agile 방법론이 무엇인지 아주 간단하게 설명하고 넘어가겠습니다.

  • 소프트웨어 개발 방법론 중 하나로 반복적이고 점진적인 개발 방법을 통해 개발을 진행하는 것을 특징으로 합니다.
  • 각각의 단계를 작은 단위의 사이클로 분리하고 사이클이 종료되면 다음 사이클을 반복적으로 수행합니다.
  • 애자일 방법론의 종류는 대표적으로 칸반, 스크럼, 익스트림 프로그래밍이 존재한다.

애자일 방법론의 종류도 여러가지로 나뉘는데, 간단하게 설명드리면 아래와 같습니다.

  • 칸반 : 화이트보드에 포스트잇 등의 도구를 이용해 프로젝트 진행 상황을 한 눈에 볼 수 있도록 하는 목적에서 사용하는 방법론입니다.

물리적인 칸반 보드보다는 Jira와 같은 디지털 보드를 많이 사용하는 추세입니다.

  • 스크럼 : 프로젝트를 진행하는데 있어서 유연성적응성을 강조하는 방법론입니다.

스크럼에서 사용하는 방법들 중 데일리 스크럼, 스프린트, 스프린트 회고 미팅이 가장 많이 실무에 적용되고 있습니다.

  • 익스트림 프로그래밍 : 페어 프로그래밍, 테스트 주도 개발(TDD), 지속적인 통합, 단순한 설계, 적극적인 리팩토링을 통해서 높은 소프트웨어 품질을 만들어가는 개발자 중심의 방법론입니다.

페어 프로그래밍 하면 재밌는 짤들이 많이 나오는데, 좋은 예시보다 절대 이렇게 하면 안된다! 싶은 짤을 하나 가져와봤습니다.

절대 누가 누구를 감시하거나 질책하기 위한 방법이 아니라는 점!
꼭 기억해두시길 바랄게요!

😉 팀에 Agile을 도입해보자!

2024년 1월 1일 우아한 남형제들 신년 미팅에서 제가 적극적으로 Jira & Confluence 도입이 필요하다고 형제님들을 설득했고, 형제님들은 기쁜 마음으로 동의해주셨습니다.

제가 대표로 Jira를 셋팅하고 1주일 동안 JiraConfluence를 익히는 스프린트를 진행했습니다.

한 주동안 JiraConfluence를 사용해보면서 사용법을 익히고 팀에서 어떻게 스프린트를 운영할지 회의를 통해 정했습니다.

우아한 남형제들의 스프린트 운영 표준은 아래와 같습니다.

  • 스프린트는 월 ~ 금 5일로 설정한다.
  • 스프린트 회고는 매주 토요일에 오프라인으로 진행한다.
  • Daily Scrum을 매일 페이지에 작성하고, 주 1회 주간 업무 공유 페이지를 작성한다.
  • 백로그를 정의하고, 스프린트 회고때 다음 스프린트에 포함시킬 업무를 정하고 업무의 크기는 Planning Pocker로 정한다.

진행할 업무를 이슈로 등록하고, SubTask를 이용해 업무의 단위를 작게 나눠서 운영하고 있습니다.

Daily Scrum을 매일 작성함으로써, 팀원들이 현재 하는 업무와 어떤 이슈가 있는지 대략적으로 확인할 수 있다는 점이 좋았습니다.


Daily Scrum이 작은 단위였다면, 주간 업무 공유를 통해 한 주의 계획을 팀원들과 공유함으로서 협업해야 하는 일이 있다면 일정을 잡는데 많은 도움이 됬습니다.

😇 아직 가야할 길이 멀지만..!

아직 스프린트를 운영하고, 팀원들과 우리 팀의 운영 방식을 정해나가는 중이라 갈 길이 먼건 사실입니다.

스프린트를 운영하면서 좋았던 점과, 개선해야 할 점에 대해서 팀원들과 가감없이 의견을 나누면서 더 좋은 팀 문화를 구축할 수 있게되어 팀원들의 만족도가 높았습니다.

아직도 Agile Process 도입을 망설이고 계시다면.. 과감하게 도전하세요!
서툴고 실수가 많을 지라도, 언젠간 Agile Master가 되리라 믿습니다.

오늘도 읽어주셔서 감사합니다.

🙇

Agile에 대한 내용을 정리해둔 노션 페이지를 공유 해두었으니, 관심이 있으신 분은 더 찾아보시면 좋겠습니다:)

8개의 댓글

comment-user-thumbnail
2024년 1월 24일

괴인데렉서

1개의 답글
comment-user-thumbnail
2024년 1월 24일

좋은 글 잘 읽었습니다~!

1개의 답글
comment-user-thumbnail
2024년 1월 24일

Agile을 팀 프로젝트에 도입하려고 생각 중이었는데 잘 읽었습니다 :)

1개의 답글
comment-user-thumbnail
2024년 1월 28일

데렉서님께서 생각하시기에 애자일을 한마디로 정의하자면 무엇인지 궁금합니다..!

1개의 답글