클린 애자일(Clean Agile - Back to Basics) - 6장 애자일해지기
애자일의 가치
켄트 벡(Kent Beck)은 애자일의 네 가지 가치를 선언했다. 바로 용기, 소통, 피드백, 단순함이다.
용기
합리적인 정도로 위험을 감수하는 것이다. 애자일팀의 구성원은 정치적으로 안전해지려고 품질을 타협하거나 기회를 흘려보내지 않는다. 길게 보면, 어느 정도 공격성을 띠는 것이 소프트웨어 프로젝트를 관리하는 최고의 방법이라는 것을 알고 있다.
용기와 무모함은 다르다. 확신할 수 없는 코드나 지속 불가능하게 설계된 코드를 배포하는 것은 무모한 짓이다. 품질을 희생하여 일정을 맞추는 것도 무모한 짓이다.
높은 품질과 수준 높은 규칙을 지켜야 속도가 빨라질 것이라는 믿음은 용기 있는 믿음이다.
소통
우리는 여러 경로를 통한 직접적이고 빈번한 소통에 가치를 둔다.
프로그래머, 고객, 테스터, 관리자 모두 서로 가까운 곳에 앉아서 자주 교류하기를 원한다. 회의를 하지 않을 때도 말이다.
빠르고, 혼란스럽고, 형식에 얽매이지 않는 잦은 상호작용의 폭풍속에서 생각이 번득이고, 통찰을 얻을 수 있다. 같이 앉아서 자주 소통하는 팀이 기적을 일구어 낼 수 있다.
피드백
사실상 모든 애자일 규칙은 중요한 결정을 내리는 사람에게 빠른 피드백을 제공하는 데 초점이 맞춰져 있다. 그러면 무언가 잘못되었을 때 조기에 파악하여 고칠 수 있다. 또한 이전의 결정으로부터 도출된 결과를 보고 많은 것을 배울 수 있다. 피드백은 팀이 효과적으로 일하도록 만들며, 프로젝트가 유용한 결과물을 내도록 만든다.
단순함
애자일의 가치는 단순함이다.
단순함은 직접성이다. 코드의 직접성, 소통과 행동의 직접성. 코드의 상호 의존성으로 인해 복잡도를 줄이기 위해 어느 정도의 간접성은 필요한다. 하지만 팀에서는 이러한 간접성이 훨씬 적게 필요하다. 수동적인 공격성은 간접적인 것이다. 문제를 확인하고도 조용히 다른 사람에게 넘어가게 놔두었다면, 당신은 간접적인 행동에 참여한 것이다. 결과가 끔찍할 것을 알면서도 관리자나 고객의 요구에 응할 때, 당신은 간접적인 접근을 한 것이다.
코드를 단순하게 유지하라. 팀은 더 단순하게 유지하라.
신기한 동물쇼
전체 생애 주기에 걸쳐 애자일 방법론을 도입하라. 애자일은 “개발자들만의 개발 방법론”이 아니라 “조직 전체의 일하는 방식”이다.
세상에 나와 있는 수많은 방법론 중 어떤 방법론을 택하든 상관없이, 결국에는 프로세스를 당신의 필요에 맞게 고치고 다듬게 될 것이다. 그러니 방법론 중 하나만 골라라. 아예 고르지 않아도 된다. 전체 생애 주기에 걸쳐 모든 규칙을 지키고 있는지 확인하라. 팀 전체의 동의를 구하라. 그리고 시작하라. 용기와 소통, 피드백, 단순함을 기억하고, 정기적으로 규칙과 행동을 조정하라. 허락을 구하지 말라. ‘올바르게 하는 것’ 때문에 고민하지 말라. 문제가 생기는 대로 헤쳐나가면서, 그저 계속해서 최선의 결과를 향하여 프로젝트를 추진하라.
전환
비 애자일에서 애자일로의 전환은 가치를 바꾸는 것이다.
대규모 애자일
애자일은 작은 팀부터 중간 크기의 팀을 위한 것이다. 애자일은 작은 소프트웨어팀의 문제를 푼다. 그리고 여러 작은 팀을 큰 팀으로 조직하는 문제는 이미 해결된 문제다. 따라서 대규모 애자일에 대한 나의 답은 단순히 개발자들을 작은 애자일팀으로 조직하라는 것이다.
대규모 애자일이라는 것은 없다. 애자일은 작은 소프트웨어팀을 조직하려는 데 필요한 혁신이었다. 하지만 그 후에는 이 팀들을 수천 년 동안 큰 조직이 사용해 온 구조에 맞추면 된다.
애자일 도구
자동화 압력
일단 도구가 생기면 실제로 필요한 방식이 아니라 도구가 동작하는 방식에 맞추어 일하게 되기 일쑤다.
일하는 사람이 도구를 사용하고 조종해야지, 도구가 사람을 조종하고 사용하면 안 된다.
어떤 작업을 하든지 자동화하기 전에 먼저 자신의 작업 방식을 완전히 파악해야 한다.
결론
“너무 쉬운데? 몇 가지 단순한 규칙과 실천 방법만 지키면 되잖아. 아무 것도 아니네.”