— Agile, Scrum, Sprint, Jira — 2 min read
내 조직은 지라(Jira)를 사용해 개발 프로젝트를 관리하고 진행한다. 지라 안에서도 스크럼(Scrum) 방식을 이용하고 있다. 이전 회사에서 지라를 사용해본 적은 없고, 스크럼 또한 이름만 아는 존재였다.
지라의 유저 인터페이스 안에서 나는 뭐가 뭔지 한참 들여다보아도 이해할 수 없는 것 투성이었다. 스프린트(Sprint), 백로그(Backlog), 스토리(Story) 등 이게 대체 뭘까 싶었다. 복잡하고 방대한 상태 아이콘의 바닷속에서 '업무가 잘 되는 걸까? 오히려 일이 늘어나기만 하는 것 아닐까?'라는 생각이 들었다.
지라에 대한 강의는 많았다. 지라가 무엇이고, 위의 용어들의 의미도 대충 알게 되었다.
하지만 왜 이렇게 일하는 걸까?
내가 좋든 싫든 현재 조직의 문화 아래에서 일을 해야 한다. 일을 '잘' 하려면 조직의 문화와 그것이 형성된 맥락을 이해해야 한다.
지라는 애자일(Agile) 프로세스에 기반한 프로젝트 관리 도구들을 제공한다. 그중 하나가 스크럼이다.
나는 현재 조직 문화의 가장 뿌리에 있다고 판단되는 애자일에 대해 이해하고자 한다.
왜 지라일까? 왜 스크럼일까? 왜 '애자일' 일까?
고전적인 소프트웨어 개발 방식은 폭포수 모델(waterfall model)처럼 사전 계획을 통해 점진적인 개발을 하는 방식이다. 만들어질 소프트웨어의 모습과 과정을 강박적으로 미리 정의한다.
관리자 입장에서는 편하다. 해야 할 일이 제품 출시 단계까지 명확하기 때문에 개발 인원과 시간, 비용을 수월하게 산정할 수 있다.
하지만 거기엔 큰 맹점이 있다.
위의 방식은 요구사항 분석 > 설계 > 개발 > 테스트 > 배포
의 형태로 점진적으로 진행된다. 만약 사용자가 완성된 소프트웨어가 맘에 들지 않는다면 어떻게 해야 할까?
그 때문에 설계를 다시 해야 한다면? 개발자의 체력과 감정은 한정되어 있다.
개발자들은 어떻게 하면 변화무쌍한 요구 사항에 민첩하게 대응하면서도 질 좋은 제품을 만들 수 있을지를 고민하기 시작했다.
이런 문제의식에 대한 해답으로 2001년 애자일 선언문을 통해 소프트웨어 개발에 대한 새로운 접근법이 등장한다.
애자일(Agile)은 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식입니다. - Red Hat
애자일 프로세스는 소프트웨어의 개발 특성을 이해하는 것에서부터 시작한다. 소프트웨어 개발은 유동적이고 개방적이다. 또한 요구사항의 변경에 따른 작업량을 예측하기 힘들다.
애자일은 뜻 그대로 개발 주기의 모든 시점에서 '민첩하고 신속하게' 변화를 수용한다.
과거의 방식과는 달리 완성된 제품을 미리 정하지 않고, 실제 동작하는 소프트웨어를 만들어 즉각적인 피드백을 반영한다. 그리고 이 과정을 끊임없이 반복하며 하나의 커다란 소프트웨어를 완성해나간다.
애자일 방법론, 애자일 기법이라는 용어로 불리기 때문에 착각할 수도 있지만 애자일은 특정한 방법을 가리키는 것이 아니다.
스크럼은 애자일 가치를 잘 반영하는 도구이지만, 스크럼이 애자일 그 자체는 아니다.
애자일은 '협업'과 '일하는 방식'을 바라보는 하나의 관점이다.
애자일 선언문의 첫 번째 문장이 애자일의 정체성을 잘 말해주고 있다.
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다.
애자일은 정형화된 무언가가 아니라 '함께 지속적으로 개선하는 것'을 추구하는 이상(理想) 그 자체라고 볼 수 있다.
'내 조직은 왜 이런 업무 도구를 사용할까?'에서 시작된 탐험이었다. 그들이 선택한 도구와 일하는 방식 기저에는 애자일 가치를 존중하겠다는 약속이 담겨 있음을 확인했다.
나와 조직을 둘러싼 환경은 끊임없이 변화한다. 우리가 쓰는 도구와 제품은 언젠가 유용하지 않게 될 것이다. 좋은 제품을 만들고 싶다는 마음은 누구나 똑같다. 다만 소프트웨어를 만드는 주체가 무엇인지 다시 한번 생각해봐야 한다. 돈이나 도구도 아니다. 결국 사람이다.
애자일하게 일한다는 것은 '함께 즐겁게 개발하는' 문화를 만들기 위해 '끊임없이 노력하겠다'는 의지의 표현이다.