Agile
Agile이란 무엇인지 알아보자.
애자일(Agile)이란 단어는 소프트웨어 개발 방식의 하나를 말하는 용어이다.
애자일을 설명하기 위해서는 워터폴(Waterfall)이라는 개발 방법을 알 필요가 있다.
애자일은 워터폴 방식에 반대되는 개념을 가진 개발 방식이기 때문이다.
워터폴 Waterfall
어떠한 물건을 만들기 위해 폭포가 떨어지는 것처럼 쉴세 없이 달려 나간다.
짜 놓은 계획대로 움직여야 하며, 처음부터 끝까지의 모든 걸 생각하며 개발을 진행한다.
이러한 방식은 많은 고민을 불러일으킨다.
지금이 점심을 먹을 시간이라고 생각해보자.
당장 점심에 먹을 메뉴만 생각하면 되는데 저녁에 먹을 것, 내일 아침에 먹을 것을 고려하면서까지
지금 먹을 메뉴를 생각하는 건 많은 고민과 시간을 낭비한다.
저녁과 내일 먹을 아침까지 고려해서 지금 먹을 점심메뉴까지 고려했다 치더라도 중간에 친구와의 저녁 식사가 잡히면 내가 생각했던 저녁 메뉴는 무용지물이 되어버린다.
이처럼 한 번에 모든 걸 몰아서 실행하면서 개발하는 방식을 워터폴이라고 한다. 기존에 소프트웨어 개발 방식이다.
이에 반대되는 개념 애자일을 살펴보자.
애자일 Agile
애자일은 워터풀과는 반대로 작업 계획을 짧은 단위로 세운다.
프로토타입을 만들어 나가는 사이클을 반복하여 고객의 반응과 요구에 유연하게 대응할 수 있다.
이는 곧 지금 먹을 점심 메뉴만 생각하면 된다는 뜻이다.
저녁 메뉴을 정해 놓지 않았기 때문에 중간에 친구와의 저녁 약속이 생겨도 유연하게 대처할 수 있다.
유연하게 대처하고 짧은 주기로 계획을 세운다는 점에서 좋아 보인다.
우리는 이렇게 애자일 방식의 이점을 알 수 있게 되었다.
이제는 애자일 방식의 하나인 스크럼 Scrum 에 대해서 알아보자.
스크럼 Scrum
스크럼은 소규모의 팀이 제품 개발을 완성하기 위해 Sprint(스프린트)라는 업무 주기를 반복한다.
위의 요구분석 - 설계 - 개발 - 테스트 - 출시 의 한 그룹이 스프린트에 해당한다.
스프린트의 주기를 정하고 애자일한 방식으로 개발을 진행한다. (주로 1주에서 4주 주기로 설정한다.)
스크럼 실행 방식은 아래와 같다.
- 스프린트의 목표를 결정하고 목표를 어떻게 할지 설정한다.
- 스프린트가 시작되면 매일 간단한 회의(지난회의 이후에 한 작업, 다음 회의 전까지 할 작업, 블락커)를 진행한다.
- 블락커에 대한 요소를 해결한다.
- 스프린트가 끝나면 스프린트에 대한 회고를 한다.
- 회고에 대한 의견과 성과를 배경으로 다음 스프린트에 대한 목표를 재설정한다.
위와 같은 스크럼 방식을 따르면 팀원의 블락커와 현재의 상황, 우선순위에 대한 목표의식이 확실해진다.
애자일의 스크럼 방식을 직접 실행하면서 느꼈던 점은 업무의 주인의식이 강하게 들었다. 내가 맡은 업무를 나 보다 더 잘 알고 있는 사람은 없다. 그 만큼 책임감이 많이 들었고, 업무에 대한 애정이 들었다. 회의를 통하여 서로 자신의 업무에 대한 애정이 크다 보니 서로의 의견이 무시 당하지 않고 존중하는 분위기가 형성되었다. 아직 오랫동안 스프린트를 해보지 않아 모르겠지만 경험했던 바로는 애자일한 방식으로 협업하는 방식은 지치지 않고 더 끈기 있게 업무에 집중할 수 있는 방식 같았다.