함께 자라기 - 애자일로 가는 길
은 개발자 블로그나 커뮤니티 내에서 좋은 평을 많이 봐서, 언젠간 읽어 봐야지 라고 벼르고 있었는데, 드디어 읽었다.
작년부터인가 개인적으로 너무 정체 되어 있던 것 같아서 ‘성장’에 대해서 고민을 하지 않을 수 없었는데, 이 책은 그에 대한 고민에 대한 해답과 동기부여에 아주 적합한 책이었다. 여러 사례들과 저자의 인사이트를 모은 에세이 형태이다 보니 사실 목차 순서대로 읽지 않아도 되지만, 저자의 의도를 고스란히 느끼고자 원래 책을 순서대로 읽는 편이다 보니, 왜 앞서서 이러한 예시를 먼저 들었는지 알만한 부분들이 많았다. 개인적인 느낌으로는 유시민 작가님의 어떻게 살 것인가
와 상당히 유사하였는데, 커리어 빌딩과 관련해서 어떻게 살아야 전문가가 될 수 있는지 서술된 책으로 읽혔기 때문인 것 같다. 끝 부분에서는 애자일이란 무엇이고, 애자일의 도입을 위해서는 어떻게 해야하는지에 대한 해답이 서술되어 있지만, 책의 앞부분 부터 중후반까지는 ‘전문가란 누구인가?’ 전문가의 역량과 특징, ‘어떻게 하면 전문가가 될 수 있는가’ 이런 질문들에 대한 전문성 사례 연구 소개가 많기 때문에 조직 문화 연구나 팀빌딩에 관심이나 책임이 있는 사람, 전문가로 성장하고자하는 기로에 놓인 주니어를 대상으로 참 좋은 책이 아닐까 한다. 다만, 예시로 드는 사례들이 소프트웨어 개발과 관련이 많기 때문에 해당 직군 종사자들에게 좀 더 와닿을 수 있을 것 같다. 참고한 서적과 연구 논문들이 많다. 어떻게 살 것인가 읽고 나서 주석만 쫓아서 위시리스트에 몇십권의 책을 추가해 놓은 기억이 있는데, 이번에도 비슷하지 않을까 한다.
뼈 때리는 문장들이 많아서 자기 반성을 겸하면서 읽었다. 키워드로 꼽자면 경력, 회고 (피드백), 인지 (mindfulness), 협력으로 나눌 수 있을 것 같다. 개인적으로 임팩트가 있었던 순으로 꼽자면 인지 > 협력 > 회고 > 경력 순이었다. 키워드 별로 가장 울림이 컸던 문장들을 꼽아봤다. 주기적으로 책갈피 해두듯 반복 해서 봐야겠다.
인지
지속적으로 자신의 감정 상태를 살피면서 지금 지루한지 불안한지를 알아채고 만약 지루함이나 불안함을 느낀다면 앞의 네가지 전략을 적절히 사용해야 한다는 겁니다. (중략) 자기가 지금 어떤 상태인지 살피는 알아차림(mindfulness)이 꼭 필요합니다.
mindfulness 라는 단어에 대한 너무 적절한 번역이 아니지 않나 라는 생각이 들었다.
어렸을 때만해도 ‘너 자신을 알라’는 말이 왜 명언인지 이해되지 않을 만큼, 나는 나를 너무 잘 알고 있다고 생각했는데, 어느 순간 부터는 나를 잘 아는 것이 제일 어렵고 힘든 일이 되었다. 메타 인지 능력은 모든 도메인에 걸쳐서 가장 필요하고 중요한 능력 중 하나인데, 그 중요성을 잘 보여주는 연구 결과도 책에 많이 수록 되어 있었다. 가장 인상적이었던 대목은 아래와 같다.
피겨 스케이팅 선수들에 대한 연구인데요. 지역 대회 수준의 선수와 세계 대회 수준의 선수 두 그룹을 서로 비교해 봤습니다. 우선 하루 연습을 끝낸 후 간단한 설문을 통해 여러 가지를 물었습니다. 그 중 하나가 오늘 연습 중 트리플 악셀을 몇 번 정도 했다고 기억하는가 하는 질문입니다. 두 그룹의 응답에는 큰 차이는 없었습니다. 하지만 두 그룹의 실제 연습 장면을 몰래 녹화해서 국제 심판들에게 분석하게 한 결과는 차이가 있었습니다. 세계 대회 수준의 선수는 지역 대회 수준의 선수에 비해 몇 배 더 많은 트리플 악셀을 연습했습니다. 지역 대회 수준의 선수는 자신들이 이미 익숙하고 자신 있는 ‘예술적 표현’ 등의 연습에 시간을 더 썼습니다. 그러고는 트리플 악셀을 많이 연습했다고 착각했습니다. (중략) 이 연구가 보여주듯 (중략) 자신이 어떤 연습을 얼마나 하는지에 대해 정확하게 인식하지 못하는 경우들이 있습니다. (중략) 안전지대 안에 머무르고, 지루함 속에서 자기 실력에 대해 안심하고, 그 상태에 익숙해진 것이지요.
위 연구가 본인의 능력 개발을 위한 자기 자신에 대한 인지에 대해서 말한다면, 상대방이 어떻게 받아들일지에 관한 메타 인지
에 관한 내용도 좋았다. 인수인계나 가이드 문서 작성부터 주니어나 신입 개발자들을 교육하거나 리드하는 역할을 맡게 되었을 때 유념하면 많은 도움이될 것 같다.
의료계의 연구를 보면 전문가가 특정 수술법을 학생에게 가르칠 때, 의료적 지식, 무엇을 어떻게 해야 할지에 대한 행동 단계, 의사결정 단계 등 자신이 해당 과제를 수행할 때 사용하는 지식 중 70%는 가르치지 않는다는 분석이 거듭해 나왔습니다. 가르치는 능력을 인정받고 한 번 이상의 ‘탁월한 교사상’을 받은 사람임에도 그랬고, 되도록 단계나 지식을 빠짐없이 가르쳐 주라는 특별한 주문을 받았음에도 그러했습니다. 심지어는 수업이 끝나고 “혹시 빠트린 것이 있습니까” 하고 물은 후 그걸 추가해도 여전히 70% 정도는 빠트렸습니다. 그 기술을 성공적으로 해내기 위한 필요한 것의 30%만 가르쳐 놓고 자신은 다 가르쳤다고 생각하는 겁니다.
의료계 연구 관련해서 작가님의 설명으로부터 새롭게 알게된 흥미로운 사실이 있었는데, 바로 의료계에서 비 경력자가 수련을 거듭해서 성장해나가는 환경과 방식이 개발자들이 겪는 환경과 비슷하다는 것이었다. 전문가 연구 및 사례에서 흔히 쓰인다고 한다.
메타인지를 높이는 방법 또한 간단하다. ’think things through’, 그대로 직시하고 분석하는 것.
선생 입장에서는 자신에 대한 메타인지를 높이는 노력을 할 수 있습니다. “내가 이 문제를 해결할 때 어떤 과정을 거치는가"를 생각하며 자신의 머릿속을 관찰하고 질문을 던지고 분석하는 것이죠. 그리고 학생들이 이걸 배우면서 어떤 생각을 하는가를 직접 관찰하고 질문을 던지고 분석할 수 있을 겁니다. 메타분석에 따르면 선생이 인지적 작업 분석에 능숙한가 하는 것이 학생들의 학업성취도에 미치는 영향의 효과 크기가 자그마치 1.29나 됩니다. 이런 분석 능력이 뛰어난 선생이 잘 가르치는 사람이라는 이야기입니다.
협력
사람들은 협력이 중요하다고 합니다. 그래서 프로젝트를 할 때 협력적으로 하자고 합니다. 그러나 실제 모습을 들여다보면 초반에 일을 세밀하게 나누고 선을 긋습니다. 그리고 안녕이죠. 각자 진행하고 나중에 만나서 서로 합쳐봅니다. 그 속을 들여다보면 협력은 거의 없습니다.
프로젝트를 처음 시작할 때, 역할 분담하며 진행시켜 나갈 때 유념하면 좋을 것 같은 문장이다. 분담을 하더라도 주기적인 스크럼과 wip pr에 대한 점진적인 코드리뷰 등을 통해서 피드백의 주기가 빠르다면 그만큼 협력도 쉬워질 것이라는 생각이 들었다.
협력에 관해서도 특히 흥미로웠던 연구들이 많았다.
한 연구에서는 경력이 있는 개발자들에게 특정 문제를 해결할 때 초보 개발자에게 해 줄 조언을 적어보라고 했습니다. 평균 7년 경력의 개발자들이었는데 뛰어난 개발자들은 약 70%가 동료와의 협력을 언급하는 반면, 실력이 그저 그런 개발자들은 20%도 안 되는 사람들만이 동료와의 협력을 언급했습니다.
협력과 실력을 이어주는 연결고리는 바로 oop를 배울 때 수 없이 들어봤을 법한 추상화에 있다.
둘이서 협력하면서 작업하면 서로 시각이 다르기 때문에 두 사람의 다른 시각을 연결해 줄 다리가 필요하고, 그 다리에는 필연적으로 추상화의 요소가 있게 됩니다. 서로 다른 것들을 하나로 묶어야 하기 때문입니다. 반면 혼자서 작업할 경우에는 이런 추상화의 필요가 덜합니다.
협력의 과정에 있어서 추상화
를 거친다고 미처 인지하지 못했는데… 너무 맞는 말이다. 사실 어떤 문제가 있을 때 그 문제에 대해서 다른사람에게 설명하는 것 만으로, 혹은 설명하기 위해 과정을 그냥 적어보는 것 만으로 해결 방법이 보일 때도 있다. 그것이 바로 추상화의 힘!..
그리고 또 인상적이었던 마지막 연구 결과는 공유 방법에 관한 실용적인 팁이다.
하나 공유나 최고 공유가 아마 우리가 흔히하는 공유 방식일 겁니다. 그런데 이 방식은 하고 나면 신뢰가 더 떨어집니다. (중략) 왜 이런 일이 생겼을까요? 하나 공유나 최고 고유의 경우 우리는 공유 자리에 기대감보다 불안감을 갖고 갈 겁니다. (중략) 반대로 복수 공유는 그런 불안감이 상대적으로 덜합니다. 또 부정적 피드백을 수용하려는 마음도 더 많죠. 여러 개를 준비했으니 그중 하나를 두고 뭐라고 해도 나에 대한 공격은 아닌 겁니다.
어떻게 보면 당연한 결과지만, 공유 할때는 한 개 보다는 2~3개의 솔루션을 준비해서 가자!
회고
저는 뭔가 일이 끝나면 항상 회고라는 활동을 합니다. 연말에는 한해를 되돌아보고 반성하는 일 년 회고를 합니다. 내가 올해에 어떤 것을 했고, 어떤 것을 느꼈고, 어떤 교훈을 배웠는지 짚어봅니다. (중략) 자기계발이 왜 중요하다고 생각하냐면, 현재 나에게 무엇을 투자했느냐가 1년, 혹은 2년 후의 나를 결정한다고 느끼기 때문입니다. 예를 들어 올해 업무도 잘한 것 같고 사람들에게 인정을 받은 것 같다면 1~2년 전을 잘 되돌아봅니다. 아마 그때 열심히 자기투자를 했을 겁니다. 반대로 올해 읽은 책도 몇 권 없고 새로 얻은 통찰도 없다면 지금 당장은 별 문제없는 것 같지만 내년이나 내후년에는 분명 추락을 경험할 것입니다. (중략) 무서운 사실은 이게 축적이 되면 엄청난 차이를 만들 거라는 점이지요. 자기가 습득한 지식이나 능력은 복리로 이자가 붙기 때문입니다.
회고는 인지의 밑바탕이 된다. 제 3자의 눈으로 보듯 자기 자신을 있는 그대로 인지할 수 있다면 좋겠지만 대게 그건 어려운 일이기 마련이다. 편견에 사로잡혀 있을 수도 있고, 지나친 자신감이나 떨어진 자존감에 의해서 본인을 제대로 직시하고 있지 못하기 쉽다. 물론 때로는 묻고 따지지 지도 않고 일단 가는 전진이 필요한 상황도 있지만, 언젠가는 멈춰서서 자신의 선택을 돌이켜보는 시간이 오기 마련이다. 이때 적절한 피드백을 하고, 복기할 수 있다면 다음 성장을 위한 발판이 될 것이다. 서로 피드백을 하고 같이 복기할 수 있는 상대가 있다면 그건 엄청난 행운이겠지!…
꾸준한 반복으로 달인이 되려면 적어도 실력을 개선하려는 동기가 있어야 하고, 구체적인 피드백을 적절한 시기에 받아야 한다고 말할 수 있겠습니다. 단순히 반복만 한다고 해서 달인이 될 수 없습니다. 특정 영역에서 자신의 실력을 향상시키고 싶은 사람이라면 혹시 그 일을 내가 양치질하듯이 수 십년을 단순히 반복해 온 것은 아닌지 반문해 보고, 내 일에서 매 양치질 직후 구강 거울이나 치면착색제의 역할을 하고 있는 것은 무엇인지, 없다면 어떻게 만들어낼지 고민해 보길 바랍니다.
비슷한 맥락의 문장인데, 빠른 피드백 사이클이 agile의 최대의 장점으로 제품 고도화나 revenue 증가에 가장 크게 영향을 미치지 않나한다. 물론 피드백이 부족한 환경에 놓여져 있다면, 스스로라도 자기 자신에 대해 인지하여 피드백 할 수 있길
수십 년 동안 한 가지 일을 하면서 전문가가 안 되는 비결이 있다면 타당성과 피드백이 부족한 환경에서 일하는 겁니다. 예컨대 복잡한 상황에서 뒤죽박죽으로 일하거나 오늘 실수한 것을 몇 달 뒤에 알거나 혹은 영영 모르거나 하는 환경이겠죠. 따라서 이 두 가지가 전문성의 요체라고 할 수 있겠습니다.
경력
경력 연차는 직무 성과와 얼마나 많은 상관성을 갖고 있었을까요? 또 학력과의 상관성은 얼마나 됐을까요? 경력 연차의 상관성은 0.18, 학력의 상관성은 0.10 입니다. 상관성이 0.20 이하면 사회 과학에서도 꽤나 약한 상관성이라고 말합니다. 관심사조차도 직무 성과와 상관성이 0.10이 되는 수준입니다.
‘잘하기 위해서 좋아하는 일을 하는 것이 필수조건이 아닌 것인가?’, ‘직무의 목적은 성과를 내기 위해서일 뿐인가’, ‘자아 실현을 위한 직업을 갖는 다면 그 성과를 어떻게 측정할 수 있을까’, ‘직무 성과와 가장 큰 상관관계를 갖는 항목은 무엇인가’ 다소 충격적이면서도 위와 같이 이런 저런 정리 되지 않는 생각을 하게 만든 연구 결과였다.