애자일에 대해서 많은 관심을 가지고 있었으나 사실 다른 대부분의 다른 책들의 내용이 겉핧기에 그치거나 너무 추상적인 내용만으로 되어 있어 답답하던 차에 읽은 책. 너무 좋았고 회사에서 한권 구매해서 팀원들에게 권하고 싶다.
“먼저 더글러스 엥겔바트(Douglas Engelbart)라는 사람이 했던 작업 구분에 대한 이야기를 하겠습니다. 더글러스는 작업을 세 가지 수준으로 구분합니다. A,B,C 작업입니다.
A작업은 원래 그 조직이 하기로 되어 있는 일을 하는 걸 말합니다. 자동차 공장이라면 자동차를 만드는 것이 A 작업이 되겠죠.
B작업은 A작업을 개선하는 걸 말합니다. 제품을 만드는 사이클에서 시간과 품질을 개선하는 것이죠. 제품을 만드는 시스템을 잘 설계하는 것도 포함되겠죠.
C작업은 B작업을 개선하는 것입니다. 개선 사이클 자체의 시간과 품질을 개선하는 것입니다. 예컨대 개선하는 인프라를 설계하는 것이 포함될 것입니다. 한마디로 개선하는 능력을 개선하는 걸 말합니다.”
우리 팀을 생각해보면 A작업도 아직 좀 더 숙련이 필요하고 B작업도 이제 걸음마 수준… C작업은 생각만… 뭐 3가지를 따로 떼어놓고 생각하기 힘든 부분도 있다.
“완벽한 도구와 환경을 갖추는 데에 집착해선 안 된다. 그런 식으로는 무엇도 영원히 얻을 수 없다. ‘방이 조용해지고 배도 안 고프고 온도도 적절해지기만 하면 공부 시작해야지’라고 생각하는 사람들 중에 1등은 없다. 또한 실제로 그런 환경이 되어도 몸에 배어든 습관 때문에 결국은 공부하지 못할 것이다.”
아무래도 도구와 환경은 핑계로 삼기도 쉽고 뭔가 개선하기에도 명확하고 측정이 쉽기 때문에 먼저 관심을 가지게 된다.
“결과적으로는 더 뛰어난 스케이터가 엉덩방아를 더 자주 찟을 수 있다는 것이죠. 뛰어난 선수는 어려운 걸 연습하지만 그렇지 못한 선수는 이미 잘하는 걸 더 연습한다는 두 그룹의 차이를 보여준 연구입니다.”
자기자신을 속이기는 얼마나 쉽고 무의식적으로 일어나는 일인가?
지루함을 느끼는 경우 : a1 실력 낮추기 : 편한 보조도구를 일부러 안쓰거나 테스트를 일부러 주기를 늘려서 해보거나 하는 식으로 기존보다 좀 더 집중하면서 수련이 될 수 있는 방법을 찾아본다.
지루함을 느끼는 경우 : a2 난이도 높이기 : 계획된 시간보다 좀 더 짧은 시간으로 목표를 잡는다거나 리팩터링, 자동화 테스트를 달거나 새로운 언어를 사용해본다거나 하는 식으로 업무를 자신의 의지로 추가하는 식.
불안함을 느끼는 경우 : b2 실력 높이기 : 장기적으로 실력을 높이는 방법과 더불어 좀 더 전문가에게 도움을 얻는 방법, 도구를 좀 더 활용하는 등의 활동.
불안함을 느끼는 경우 : b1 난이도 낮추기 : 자신의 업무에 대한 가장 간단하면서 핵심적인 결과물을 만들어서 자신감과 자기효용감등을 높이는 방법. 테트리스를 만들어야 한다면 가운데에 네모난 사각형을 그리는 일부터 시작.
이렇게 보면 참 지루할 틈이 없는 일이다.
“관리, 시스템, 사람, 도구 순서였습니다. 이 실험뿐 아니라 통상적으로도 그러합니다. 실제로 프로젝트가 아주 성공하거나 실패하거나 하는 이유는 첫 번째가 관리라는 변수 때문이었습니다. 하지만 각 분류별로 실제로 개선 시도가 얼마나 있었는지 확인해 보니 가장 많은 개선 노력이 있었던 분류는 바로 ‘도구’였습니다.”
프로젝트의 성공과 실패에 영향을 미친 요소들을 실험해봤더니 위와 같단다. 말했듯이 도구가 일단 개선을 시도하기에 제일 만만해 보이니…
품질 전문가 제럴드 와인버그는 품질을 다음과 같이 정의합니다.
‘품질이란 누군가에게 가치가 되는 것이다.’
멋진 말이다. 단순히 추상적이기만 한 것도 아니고 바로 우리의 협업에 기준으로 삼을만하다. ‘누구’와 ‘가치’에 대한 기준을 명확하게 하기는 쉽지 않겠지만…
흔히들 말하는 개발의 5단계도 비슷합니다. 분석, 설계, 구현, 테스트, 전개를 1년이라는 프로젝트 기간에 얼마씩 배치할까로 고민하지 말고, 어떻게 해야 첫 달부터, 아니 첫 주부터 분석, 설계, 구현, 테스트, 전개를 모두 왔다갔다할 수 있을까를 고민해야 할 것입니다. 그리고 이렇게 일하기 위해 우리 조직은 어떤 종류의 협력을 해야할지를 생각해 봐야 할 것 입니다.
현재 내가 하고 있는 제품의 특성, 우리 회사와 팀의 특성 등을 고려해서 가장 효율적인 방법을 생각해봐야 한다. 머리속이 복잡하기만 하고…
“팀원이 불편한 문제를 제기하거나, 어리석어 보이는 질문을 하거나, 부족한 의견을 얘기하거나, 어처구니없는 실수를 저지를 때 여러분은 어떤 마이크로 인터랙션을 보여주고 계신가요?”
내가 가장 부족한 부분이 아닌가 싶다. 마이크로 인터랙션을 통해 신뢰가 쌓이지 않는다면 어떤 토론이나 프로세스도 큰 의미가 없다는 얘기.
“사람들에게 가장 그럴싸한 추청(best guess)을 부탁했을 때와 자신이 기대하는 최선의 상황(best case scenario)을 상상해서 추정해보라고 부탁했을 때 그 추정치는 큰 차이가 없었습니다.”
7명의 프로젝트 인원이 모두 90%의 확률로 일정을 맞출 수 있다고 얘기하면 그 프로젝트의 일정을 맞출 확률은 0.9를 7번 곱해서 나온 48%정도란다. 물론 다른 영향을 주는 내용이 많겠지만 추청과 평균에 대한 잘못된 무의식을 주의해야 할 일이다. 책에서 얘기하는 ‘그리고’의 확률과 ‘또는’의 확률을 늘 생각 해야겠다.
“애자일을 반애자일적으로 진행하는 것이다. 예컨대 애자일은 불확실한 상황에 대한 접근법인데, 애자일을 도입할 때 확실성 위에서 진행하려고 한다면 문제가 된다.”
이책에서 하고 싶은 얘기가 결국 이것 아닐까? 결국 기존 사고방식안에서 새로운 사고방식을 가지려는 한계와 열려 있지 못한 마음으로 시작하는 새로운 시도는 한계를 가지는 법. 어쩌면 팀장을 하고 있는 현재 나에게 가장 중요한 첫 번째 화두가 아닐까 한다.