애자일 방법론 도입과 우아한남형제들 프로젝트의 변화

2024. 1. 21. 22:39Project 우아한남형제들/애자일 프로세스

728x90

애자일 도입 배경

사실 우아한 남형제들 프로젝트는 시작한 지 벌써 근 2달은 되어갑니다.

MSA 고민할바엔 일단 시작해보자라는 말과 함께 시작한 게 작년 12월이니깐요.

 

팀은 현재 백엔드 4명이고, 필자를 제외하곤 전원 취업후 바쁘게 살아가고 있고,

필자는 현재 취업을 위해 해축갤 이라는 프로젝트를 진행하고 있습니다.

 

다들 회사나 개인 프로젝트에 치중하느라 우아한 남형제들 프로젝트는 뭔가 진행이 되긴 하지만

사실상 잠정 중단 상태나 다름 없었습니다.

진전은 거의 없었고, 뭘 하긴 하더라도 서로 뭘 하는지 전혀 트래킹이 되지 않았기 때문에.

 

2023 연말에 주변 정리를 하다 이렇게 하다가는 서로의 시간만 버리겠다고 생각해

서로의 솔직한 프로젝트 회고 및 회의가 필요하다고 느껴 신년 기념 1월 1일에 모이자는 카톡을 보냈다.

만나서 간단한 점심 이후에 근처 카페에서 솔직하게 얘기를 꺼냈다.

 

“그간 각자의 일이 바빠 우아한남형제들 프로젝트에 신경 쓰지 못했다고 생각한다.
내가 제일 그랬던 거 같다는 생각도 있다.

그리고 여러번 프로젝트를 해봤다고 더 이상은 생각 없이 코드 안 짠다고 자신했는 데
이제는 팀 프로세스를 예전에 코드 막 짜던 시절처럼 막 굴려
우리가 잘 못하게 되었다고도 생각한다.

이 부분에 있어서 우리가 서로 신뢰하는 사이이긴 하지만
아무리 우리 사이여도 ’Rule’ 이라고 부르는 강제성이 조금은 필요하다고 생각한다.”

 

 

고맙게도 팀원들도 나의 의견에 동의하며 솔직한 의견에 감사하다고 말해줬다.

그러자 한 팀원(괴인)이 요새 팀에서 애자일 프로세스를 도입하고 있는데

우리 팀도 적용해보면 좋을 거 같다는 세일즈맨급 설명(?)으로 이번에 애자일 프로세스를 도입하게 되었다.

애자일이란?

우아한남형제들팀이 어떻게 애자일을 도입했는지 설명하기에 앞서, 간단히 설명부터 드리도록 하겠습니다.

다만 제 설명보다 아래 유튜브 링크를 먼저 보시고 제 글을 읽으시는 걸 추천드려요!

https://www.youtube.com/watch?v=2ukuT00ubuk

(귀찮으시면 밑에 조금만 내리시면 간단 설명만 보고 가셔도 됩니다!)

애자일(Agile)이란 무엇인가?

애자일  프로세스

애자일 방법론은 신속하고 유연한 반응을 통해 지속적으로 가치를 제공하는 소프트웨어 개발의 접근 방식입니다.

 

이는 계획과 문서 작성을 강조하는 전통적인 방법들과는 대조적으로, 작업의 신속한 반복과 고객 피드백에 중점을 둡니다.

이 과정에서 '데일리 스크럼'과 '스프린트'가 중요한 역할을 합니다.

데일리 스크럼

데일리 스크럼:

데일리 스크럼은 매일 진행되는 짧은 회의로, 팀원들이 각자의 진행 상황을 공유하고 앞으로의 계획을 설정합니다.

이는 팀 간의 의사소통을 촉진하고, 문제를 신속하게 해결할 수 있도록 돕습니다.

스프린트

스프린트는 애자일 프로젝트 관리에서 사용되는 일정 기간(보통 2-4주) 동안의 작업 단위입니다.

각 스프린트는 명확한 목표를 가지고 시작되며, 이 기간 동안 팀은 계획된 기능들을 개발하고 테스트하여 최종 제품에 포함시킬 준비를 합니다.

애자일의 기원과 역사:

Henry Ford

애자일 작업 방식은 Henry Ford의 1913년 생산 라인의 제조 방법에서 파생되어
나중에 소프트웨어 개발에 적용된 워터폴 방법의 한계를 해결하기 위해 고안되었습니다.

애자일 개발은 2001년에 기반을 다진 이래 다양한 방식이 있긴 하지만
소프트웨어 산업과 프로젝트 관리 부문에서 널리 활용되었습니다.

애자일은 많은 소프트웨어 개발자가 워터폴의 프로덕션 주기와 협업 방법이
원하는 결과를 내지 못한다는 점에 주목하기 시작했을 때 시작되었습니다.
이 문제는 조직의 비즈니스 요구 사항 검증에서 작동 가능한 애플리케이션 제공에 이르기까지 수년간 지체되는 일이 일반적이었던 1990년대 초까지 만연했습니다.

그동안 비즈니스 요구 사항과 시장 상황은 소프트웨어 프로젝트의 상당 부분이 구현되기도 전에 취소될 정도로 변하곤 했습니다. 이처럼 시간과 자원이 낭비되자 많은 소프트웨어 개발자가 대안을 모색하기 시작했습니다.

[출처] : https://www.redhat.com/ko/topics/devops/what-is-agile-methodology

요약

설명 참 추상적이고 복잡하고, 할 것도 뭐 많아보이죠? (저도동감)

애자일은 특정 목표(골)를 설정하고, 짧은 기간(스프린트) 동안 집중적으로 작업하여
그 목표를 달성하는 소프트웨어 개발 방식입니다.

매일 진행되는 데일리 스크럼 미팅을 통해 팀은 진행 상황을 공유하고,
필요한 조정을 하면서 빠르게 변화하는 요구사항에 대응합니다.
이때 중요한 점은 꼭 모든 프로세스를 그대로 할 필요는 없고 팀 상황에 맞춰 조정해야 하는 것입니다.

우아한남형제들의 애자일은?

저희는 크게 목표 2가지를 잡았습니다.

1. 최소한의 퀄리티(test code, jacoco, ci/cd…etc)를 갖춘, 일단 굴러가는 MSA 구축
2. 각각의 Micro Service 의 퀄리티 증진 → Hexagonal, DDD 등등

 

그러고 나서 다음과 같은 룰을 잡았습니다.

Confluence 에 작성한 규칙들

💡 정해진 애자일 프로세스 규칙들
표준화된 작업 프로세스: CI/CD, 아키텍처, 코드 리뷰
문서 이관 및 관리: Notion에서 Confluence로 이관
스크럼 및 스프린트: 매일 업데이트, 주간 회고
팀 커뮤니케이션: Jira, Confluence, Slack 활용
기술 세미나: 지속적인 지식 공유
백로그 관리: 마일스톤 설정 및 우선순위 분류
코드 품질: Jacoco, SonarCloud 사용
회고 및 개선: 프로세스 지속적 검토

그리고 위와 같은 규칙들을 만들 때 다음과 같은 규칙을 전제하며 만들었습니다.


일을 위한 규칙, 애자일 프로세스이다. 애자일 하기 위한 일이 아니다!

그래서 너무 강제성이나 규칙에 얽매이지 않도록 했습니다.

첫  스프린트 결과 및 회고

첫 스프린트 회고 페이지

가시적으로 한 주간 팀적인 성과를 확인할 수 있는게 좋았다.

좋았던 점, 개선할 점

또한 팀원간 이번 스프린트에 대해 가지고 있는 솔직한 리뷰를 통한 개인 성찰 및 앞으로의 팀적인 방향성을 알 수 있었습니다.

 

가끔 커피챗을 할 때 만나시는 분들에게 회사에서 애자일을 하는지,

본인은 애자일을 어떻게 생각하시는 지 여쭤보곤 하는 데 대부분 긍정적이지 못합니다.

 

이유를 들어보면 괜히 일만 만든다, 굳이 옆에 동료가 있는데 뭐 하러 이렇게 하냐 등의 이유이다.

이번 스프린트를 하며 이에 대한 원인 분석을 해보자면 다음과 같습니다.

1. 회사에서는 모두가 일에 대한 진심의 정도가 다르다. 최악의 경우 어떻게든 안하려는 사람도 존재
2. 스크럼 마스터(a.k.a. 애자일 프로세스 관리자, 팀장)가 팀에 맞게 방법을 맞추지 못해서.

 

2번의 경우 개선해야 할 점이 보인다마는, 1번의 경우는 머리가 아플거 같다는 생각이 들었다는 거…?

마무리

글에서는 뚝딱뚝딱했어요!라고 나오지만,

사실 Jira, Confluence에 템플릿 등등을 만들어야 하는 게 상당히 일입니다,,, 🥲

그래도 이 허들만 넘기면 진짜 할만하니까 해보시는 거 추천드립니다!

728x90