Table of Contents

정말 오랜 만에 애자일 관련 서적을 읽었다.

한때, 애자일에 심취하여 '애자일' 이란 용어가 들어간 책들은 모두 찾아 읽었던 적이 있었다. 지금 생각해보면 그 때가 나름 열정을 가지고 업무에 대해 효과적으로 성과를 내기위한 여러가지 시도를 했던 것 같다.
하지만, 소위 소프트웨어 공학 관련 책들은 자기 개발서와 같아서 읽으면 읽을 수록 공허감이 켜져만 갔다.
책에서 말하는 개발방식을 실제 업무에서 적용하기란 “이 책을 읽는 당신부터 실천해 보세요!” 란 말로는 충분한 동기부여가 되지 않았다.

회사(사회)생활을 해오면서, 드는 생각은 한 회사의 분위기, 개발방식을 바꾼다는 것은 사장이 바뀌어야 할 만큼의 어려운 일이라는 것이다. 이러한 생각이 확신으로 바뀌면서 더 이상 이러한 부류의 책을 읽는 다는 것이 큰 의미가 없다는 느낌이 들었다.
그럼에도 불구하고 이 책을 읽게된 이유는 크게 두 가지다.

  1. 150 페이지가 넘지 않아서
  2. 최근 회사에서 새로운 소프트웨어 개발 솔루션을 도입했는데, 칸반과 스크럼이라는 개념을 포함하고 있어서, 간략하게나마 개념이라도 알아두는 게 좋을 것 같아서

책의 내용을 3가지로 요약하자면,

  1. 세상에 어떤 툴(tool)이든 완벽한 것은 없으며, 한 가지 툴에 자신을 맞추려 하지말고, 여러가지 툴을 자신에 맞게 결합하여 사용하면 된다.
  2. 제약이 적은 방법 일수록 성공확율이 높다. 책에서는 애자일 방법 중 칸반이 가장 제약이 적다고 했다.
  3. WIP(Work In Progress : 진행 중인 작업의 개수)를 제한한다.

마지막 부분이 가장 기억에 남았다. 지금껏 알고 있던 여타 다른 방식들과는 달리, 각 단계별로 동시에 처리할 수 있는 작업의 갯수를 제한하여, 이를 수행하는 팀이 현재 작업에 몰두할 수 있도록 도와주고, 오버헤드가 걸리지 않도록 해주는 개념이다.

물론 WIP 의 제한을 정하는 과정과 이후 제한 이상의 요구가 들어왔을 때, 이를 어떻게 할 것인가에 대한 여부가 훨씬 중요하긴 하지만 말이다. 모든 개발 방식의 목표가 결국에는 사람답게 일하자는 것이 아니겠는가.

어쨋든 다른 여타 책들에 비해 적은 분량에도 불구하고 저자들이 말하고자 하는 바를 쉽게 이해할 수 있어서 좋았다.

스크럼과 칸반의 비교 요약

비슷한 점

  1. 둘 다 린하고 애자일하다.
  2. 둘 다 당김 스케줄링을 사용한다.
  3. 둘 다 WIP 리밋을 둔다.
  4. 둘 다 투명하게 공정 개선을 이끌어낸다.
  5. 둘 다 출시 가능한 소프트웨어를 자주, 일찍 출하하는 데 집중한다.
  6. 둘 다 자기 조직화된 팀을 기반으로 한다.
  7. 둘 다 일을 작은 단위로 쪼갤 필요가 있다.
  8. 둘 다 출시 계획은 경험적인 자료(속도, 리드 타임)에 기반을 두고 지속적으로 최적화한다.

다른 점

스크럼 칸반
기간이 고정된 이터레이션을 규정한다 기간이 고정된 이터레이션은 선택 사항이다. 계획하기와 출시, 공정 개선을 위한 리듬(주기)을 개별적으로 가질 수 있다. 고정된 기간이 아닌 이벤트 중심으로 운영할 수 있다
팀이 이번 이터레이션에서 할 일의 양을 결정, 약속(commitment)한다 약속은 선택 사항이다
계획하기와 공정 개선에 속도를 기본 지표로 사용한다 계획하기와 공정 개선에 리드 타임을 기본 지표로 사용한다
교차 기능 팀을 규정한다 교차 기능 팀은 선택 사항이다. 전문가 팀도 허용한다
아이템들을 한 스프린트 안에 완료될 수 있을 정도의 크기로 잘게 쪼개야만 한다 아이템 크기를 특별히 규정하지 않는다
번다운 차트를 규정한다 특별히 차트 사용을 규정하지 않는다
WIP 리밋을 간접적으로 한다(스프린트 마다) WIP 리밋을 직접적으로 한다(작업 흐름 단계마다)
추정을 하도록 규정한다 추정은 선택사항이다
이터레이션이 진행 중일 때는 아이템을 추가할 수 없다 수용 능력이 허용한다면 새로운 아이템을 추가할 수 있다
스프린트 백로그는 특정 팀이 소유한다 칸반 보드는 다수의 팀이나 개인들 간에 공유하기도 한다
세 가지 역할을 규정한다(제품 책임자, 스크럼 마스터, 팀) 어떠한 역할도 규정하지 않는다
이터레이션마다 스크럼 보드를 초기화한다 칸반 보드는 계속 유지한다
제품 백로그에 우선순위를 매길 것을 규정한다 우선순위 매기기는 선택 사항이다