애자일(Agile) 이란?

Ready for Toss #2 — 토스팀에 합류하기 위한 여정

토스팀에 합류하기 위한 여정 — 첫 번째 이야기(2)에서 토스팀이 Agile/Scrum 관련 경험자를 원했고, 난 해당 용어를 저때 처음 접했다. 제대로 공부하고 나서 Ready for Toss 2편으로 애자일에 대해 공부한 내용을 기록하는걸로 결정했다.

우선 애자일이 뭘까? 한 문장으로 정리해보면 다음과 같다.

애자일은 프로젝트를 더 작은 반복 주기로 나누는 개발 프로세스다.

반복 주기. 반복 주기? 반복 주기가 뭐지? 프로젝트를 반복해..?? 이게 무슨 말인지 진짜 도저히 이해가 안 됐다. 내가 실무 경험이 아예 없는 20살(성빈은 02년생이다)이라 그런건가? 그래서 이 부분은 안드로이드 개발자분들이 계시는 오픈채팅방에 여쭤봐서 해결할 수 있었다.

반복 주기에 대해 알기 위해 우선 반복이라는 단어를 알아야 한다. 애자일에서 말하는 반복은 기획 > 개발 > 테스트 > 배포까지의 과정을 하나의 사이클로 보고 이 사이클을 계속 반복하는 걸 뜻한다. 그럼 반복 주기란 뭘까? 말 그대로 앞에서 말한 사이클을 여러번 반복하는 주기를 뜻 한다.

즉, 애자일이란 더 작은 반복 주기로 개발을 촉진하고, 계획이나 문서화 작업보다 프로그래밍 과점에 초점을 두는 개발 프로세스라고 볼 수 있겠다.

그럼 애자일을 실천함으로써 얻는 이점이 뭐가 있을까? 내가 앞에도 말했듯이 20살이라 실무 경험이 없어, 이 부분은 dell_mond님의 말을 빌려봤다. 애자일이 없었더라면, 그냥 1차원적인 기획 > 개발 > 테스트 > 배포 단계를 거쳤을 것이고, 그랬다면 아래와 같은 상황이 발생했을 것이다.

“분석 단계에서 우리에게 알려줄 수는 없었습니까? 프로젝트 규모를 산정하고 일정을 맞출 수 있는지 가늠하는 건 분석 단계에서 해야 할 일 아닙니까? 설계 단계에서는요? 요구사항을 모듈별로 나눈 후, 그 모듈을 팀별로 할당하고, 인력 수요를 계산하는 일이 설계 단계에서 해야 할 일 아닙니까? 왜 이제 와서 문제가 생겼다고 말하는 거죠?”

… 아직 실무 경험이 없는 나지만, 저런 말을 들을 여러번 생각을 하니 벌써 있지도 않은 회사를 퇴사하고 싶어진다.

“프로젝트가 망해도, 얼마나 망했는지 최대한 빨리 알아차린 다음 망한 상황 속에서 최선의 결과를 얻기 위해 발등에 불난 듯 뛰어서 해결책을 마련하는 업무 프로세스. 이게 바로 애자일이다.”

이렇게 애자일이 뭔지 간단히 알아보았다. 애자일에 대해 더 깊은 정보는 앞에 말했던 dell_mond님의 정리 글을 보면 좋을거 같다. 애자일을 공부하는데 진짜 많은 도움이 됐다. 다음엔 스크럼에 대해 알아보겠다.

iOS 개발자를 꿈꾸는 토스팀 안드로이드 취준생 / github.com/jisungbin

iOS 개발자를 꿈꾸는 토스팀 안드로이드 취준생 / github.com/jisungbin