3. 애자일

계획주도 방식에서는 초반에 계획을 정교하고 꼼꼼하게 만들려고 엄청난 노력을 한다. 그러면 실행단계는 간단해지고 예측 가능해진다고 생각하기 때문이다. 하지만 애자일은, 불확실성이 높은 일에 대해서는 애초에 이것이 불가능하다고 본다. 불확실성이 크기 때문에 미리 분석하고 설계하는데 한계가 있다는 것이다.

애자일은 불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물이다. 따라서 애자일은 불확실성이 높은 프로젝트에 더 적합하다. 애자일이 불확실성을 다루는 방식은, 좀 더 짧은 주기로 더 일찍부터 피드백을 받고, 더 다양한 사람으로부터 더 자주 그리고 더 일찍 피드백을 받는 것으로 정리할 수 있다.

광의의 애자일을 얘기해보자. 애자일을 소프트웨어 뿐 아니라 모든 종류의 업무, 혹은 삶에 내재하는 방식으로 확장해 보는 것이다. 지금까지 이 책에서 이야기했던 학습과 협력이 애자일이 불확실성을 다루는 핵심적인 구동원리이다. 다시 말해 학습과 협력을 증진해서 우리 삶에 애자일을 적용하고, 또 이를 통해 불확실성과 친구가 될 수 있다.

학습에 대해 이야기해보자. 불확실하다는 것은 우리가 이동을 할 때 목표점의 위치가 자주 바뀌거나 우리 위치가 자주 바뀌거나 하는 상황으로 비유해 볼 수 있다. 그런 경우일수록 우리는 가다가 멈춰서서 주위를 둘러보고 목표점과 우리 위치를 확인하는 것 같은 피드백을 통해 방향을 재조정하는 일을 자주 해야 할 것이다. 초기 계획대로 가면 완전히 동떨어진 곳으로 갈 수 있다. 다시 말해 이동하면서 계속 배워나가야 한다는 뜻이다. 불확실성이 높을수록 학습을 잘 해야 하는 것이다. 새로운 상황에 대해서 계속 배우고 내가 맞춰 나가야 한다. 따라서 우리의 학습 능력을 향상시킬 수 있다면 우리는 불확실성에 대해 더 잘 대응할 수 있을 것이다.

협력의 경우는? 불확실한 상황일수록 리스크가 높은 것이고, 고로 안 좋은 일이 벌어질 확률이 높을 것이다. 일반적으로 안 좋은 일이 벌어질 확률은 '또는'조건으로 연결되어 있을 때 더 높아진다. 앞서도 얘기했지만, '또는' 조건은 하나라도 문제가 생기면 전체에 문제가 생기는 황상이다. 한 사람이라도 실수하면 전체 조직에 구멍이 뚫리는 것이다. 반대로 '그리고' 조건은 모든 변수에 문제가 생겨야 전체에 문제가 되는 상황이고, 이 경우 전체에 문제가 생길 확률은 기하급수적으로 낮아진다. 모든 사람이 실수해야만 구멍이 뚫리는 경우이다. 결과적으로 애자일은 서로의 업무를 공유하고 상호 검토하는 협력을 통해 불행한 일을 '또는' 조건에서 '그리고' 조건으로 바꾸게 한다.

반대로 불확실한 상황에서는 예상치 못한 일이 생길 확률도 있다. 그런 경우 이 좋은 일을 확장해야 한다. 애자일은 좋은 일의 상황에 대해서는 그리고' 조건을 '또는' 조건으로 바꾸게 한다. 모든 사람이 통찰을 얻어야 업무를 개선할 수 있는 게 아니라 한 사람이라도 통찰을 얻으면 그걸 공유해서 전체가 개선되는 것이다.

애자일의 씨앗

애자일의 씨앗, 생성성(generativity)를 가진 어떤 그것이 무엇일까? 한 문장으로 고객에게 매일 가치를 전하라로 압축해봤다.

이 문장의 단어들은 각기 모두 중요하다. 각 단어에 대해 다음과 같이 여러 가지 질문을 해볼 수 있다.

고객에게

매일

가치를

전하라

학습적 측면에서 보면, '매일' 하는 것은 학습의 빈도를 말한다. 불확실성이 높을수록 빈도가 자주 있어야 한다. 예컨대 눈을 감고 목적지로 가는데, 만약 목적지가 움직이는 정도가 크다면 그럴수록 잠깐씩 현재 위치와 목적지의 위치를 확인하는 빈도가 잦아야 한다.

그리고 좋은 학습은 질 높은 피드백에서 오게 된다. 만약 그것이 가짜 피드백이라면 잘못된 학습이 될 수도 있다. 진짜 가치를 전달할 때 우리는 진정한 피드백을 받을 수 있다. "이런저런 기능이 있다면 어떻겠어요? 구입하겠어요?"에 대한 대답은 그리 믿을 만하지 않다.

그리고 다시 '매일'로 돌아가서, 프로젝트의 말미에만 하는 게 아니라 시작하는 날부터 '매일'이 되기 때문에 학습이 처음부터 발생하게 된다. 즉, '매일'에는 빈도와 동시에 이른 시점부터 시작한다는 의미가 있다. 이러면 학습의 복리 효과를 얻을 수 있다.

협력이라는 면에서는 '고객에게'라는 부분이 그 중요성을 말하고 있다. 소프트웨어 개발이건 뭐건 혼자서 결과물이 나오는 경우는 드물다. 협력을 통해서 결과물이 나온다. 여기에서 고객은 넓은 의미의 이해관계자라고 생각하자. 우리에게 돈을 주고 일을 맡긴 사람뿐만 아니라 우리의 이해관계자는 모두 고객으로 여겨야 한다. 이렇게 되면 의외로 협력의 대상이 넓어진다. 간혹 애자일을 한다고 해놓고는 실상 고객을 완전히 잊어버리고 자기들끼리 북치고 장구치고 하는 모습을 보곤 하는데, 이건 애자일의 핵심을 높치고 있는 것이다.

그리고 협력을 할 때 '가치를 전하면' 협력이 쉽다. 우선, 신뢰가 쌓이게 된다. 신뢰가 있을 경우 협력의 비용이 낮아지고 원활해진다는 연구가 많다. 그리고 이는 앞의 학습과도 연결되는데 가치를 전달하게 되면 의사소통이 명확하고 구체적이 된다.

애자일 도입 성공 요인 분석

애자일 도입 성공 요인 분석 발표에 대한 요약 내용이다.

애자일 도입 설문

대체적으로 애자일 성숙도가 높은 조직은 애자일이 프로젝트 성공에 도움이 많이 된다고 느끼는 것으로 나왔다. 흥미로운 점은 성숙도를 낮게 평가한 조직이 성공도도 무조건 낮은 것은 아니다. 성숙도를 낮게 평가한 조직들은 성공도가 낮은 조직부터 높은 조직까지 골고루 분포해 있었다. 하지만 성숙도가 높은데 성공도가 낮은 조직은 없었다.

여기서 우리는, 조직이 애자일을 성숙하게 실천하고 있지 못하다고 해도 프로젝트 성공에 도움이 되게 할 수 있다는 희망적인 메세지를 찾을 수 있다.

"애자일 실천법 중에서 도입해서 성과에 도움을 준 것들을 모두 고르세요"라는 질문에 대해 상관도를 구해보면 아래와 같다.

애자일 도입에 대한 무서운 사실

당신의 조직에 새 방법론이 먹히지 않는 이유

애자일을 애자일스럽게 도입하기