함께 자라기

 

 

김창준 지음 | 인사이트 | 2018년 11월

직관의 배신

다음 문장들을 보고 거짓이라고 생각하는 게 있으면 골라보세요.

1. 일반적으로 경력이 많으면 전문성도 높다.
2. 수십 년간 같은 수련을 날마다 반복하면 실력이 는다.
3. 실수는 최대한 예방하는 것이 좋고 그것이 가능하다.
4. 업무 중 공유를 하면 신뢰가 쌓인다.
5. 전문가들은 문제를 풀 때 하향식 접근(문제 이해, 분석, 설계, 구현 등의 순서)을 한다.
6. 전문가들로 팀을 만들면 성공률이 높아진다.
7. 독립적으로 일하는 팀원들이 각자 높은 확률로 일을 마칠 수 있다고 말하면 우리 팀이 일을 제대로 마칠 확률도 높다.
8. 애자일로 성공하고 싶으면 작은 실천부터 시도하는 것이 좋다.
9. 더 좋은 방법론을 도입하면 우리의 성공률이 올라갈 것이다.

몇 개나 거짓으로 고르셨나요?

사실 위의 진술들은 모두 거짓입니다. 대부분 우리의 직관과는 반대입니다.

 

함께 자라기

《함께 자라기》머리말

 

무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없는 것 같습니다. 함께 해야 합니다. 내 주변 사람들과 함께. 내가 매일 부대끼는 동료들과 함께. 하지만 안타깝게도 우리는 함께 보다 각자 하는 것에 익숙하고, 또 그렇게 강요받아 왔습니다. 세상은 함께 해야 뭔가 이룰 수 있는데 왜 우리는 혼자 하는 것만 배울까요.

이번에 잘하냐 못 하냐 하는 것은 그렇게 중요하지 않습니다. 앞으로 기회가 수백, 수천 번 더 있다면 말입니다. 그런 경우 더 중요한 것은 지금 잘하냐가 아니라 지금 자라냐는 것입니다. 실제 바깥세상에서는 한 번의 판가름으로 나의 미래가, 우리의 미래가 갈리는 경우보다는 수백, 수천 번의 누적 위에 서서히 정해지는 경우가 더 많습니다. 하지만 우리는 왜 자라는 것을 훈련할 기회가 별로 없을까요.

그리고 무엇보다 이런 ‘함께’, 그리고 ‘자라기’를 매일매일 해야 한다는 생각을 별로 하지 못하는 것 같습니다. 한다고 해도 ‘계속 혼자서 해왔는데 가끔은 한번쯤 함께 해보자’, ‘지금은 바쁘니까 자라기는 나중으로 미루자’ 같은 인식 수준에만 머무르는 경우가 많습니다. 하지만 우리가 날마다 함께 자라기를 할 수 있다면 어떨까요?

저는 이 책을 통해 독자들이 “내가 정말 잘할 수 있을까?”라는 질문을 다음과 같은 질문들로 발전시켜 볼 수 있기를 기대합니다.

  • 내가 정말 자랄 수 있을까?
  • 우리가 정말 함께 자랄 수 있을까?
  • 우리가 정말 매일매일 함께 자랄 수 있을까?

마지막 질문에서 ‘우리’와 ‘함께’는 협력을 말하고, ‘자라다’는 학습을 말합니다. 그리고 ‘매일매일’은 그 접근 방법을 말합니다. 이 책에서는 이 단어들을 깊이 있게 살펴보려고 합니다.

저는 우리가 이 단어들에 대해 고민하고 노력한다면 나, 그리고 더 나아가 남을 변화시키는 것에 대해 조금 더 역량이 생기고 작은 성공들을 만들어 나갈 수 있다고 생각합니다. 그래서 스스로 변하고 싶지만 계속 실패하는 사람, 혹은 조직을 개선하기 위한 시도를 하다가 오히려 데어본 사람, 하루하루가 답답한 사람 들을 위해 이 책을 썼습니다.

사실 이 책에서 말하는 함께 자라기는 제 생각에 ‘애자일’이라고 하는 일하는 방법의 핵심이라고 생각합니다. 하지만 안타깝게도 많은 분들이 이런 핵심에 대해 생각하기보다 애자일의 지엽적인 실천법과 도구 들에만 집중하는 것 같습니다. 그래서 애자일을 사용하거나 도입, 확산하려고 했으나 좌절했던 분들에게도 이 책이 중요한 통찰들을 주지 않을까 기대합니다.

여러분의 함께 자라기 여정에 이 책이 도움이 되기를 바랍니다.

2018년 11월 8일 김창준

 

책 속으로

골프 퍼팅 연습을 하는데, 공이 어디로 가는지 전혀 보지 않고 1,000개의 공을 친다고 생각해 보죠. 이건 도대체 뭘 연습하고 있는 걸까요? 뭔가 연습이 되긴 하겠죠. 하지만 정확하게 퍼팅하는 부분은 연습이 되질 않을 겁니다. 내가 잘했나 못 했나 알지 못하면 행동을 조정할 수가 없죠. 그래서 학습에서는 피드백이 중요합니다. —p.28-29

 

가용시간을 늘리고, 쓸데없이 낭비되는 시간을 줄이고, 잠자는 시간을 줄이는 것이 더하기적 사고라면, 집단의 지능을 높이는 것은 곱하기적 사고입니다. 집단의 지능을 높이면 모든 지적 활동의 효율이 좋아지기 때문에 전반적인 개선(B 작업)이 일어나고, 특히나 개선 작업을 더 잘하게(C 작업) 되겠지요. 지금보다 속도가 더 날 수 있다는 겁니다. —p.38

 

우리의 일자리가 인공지능으로 대체되지 않으려면, 학습하기 힘든 환경에서 학습하기 힘든 주제들을 골라야 하는 상황이 된 것입니다. —p.47

 

자신이 업무 시간 중에 불안함이나 지루함을 느끼는 때가 대부분이라면, 실력이 도무지 늘지 않는 환경에 있는 겁니다. 더 무서운 건 점차 이런 환경에 익숙해지고 행동이 습관화된다는 점이죠. 그때는 자기 인식도 잘 되지 않습니다. —p.64

 

전문가도 1시간에 평균 3~5개의 실수를 저지른다고 합니다. 그런데, 왜 우리 세상은 그렇게 엉망이 아닐까요? 그것은 전문가들이 실수를 조기에 발견하고 빠른 조치를 취할 수 있기 때문입니다. 이렇게 “실수는 어떻게든 할 수밖에 없다. 대신 그 실수가 나쁜 결과로 되기 전에 일찍 발견하고 빨리 고치면 된다”는 겁니다. 이 태도를 실수 관리라고 합니다. —p.91

 

결국 결정하는 것은 사람입니다. 그 사람 마음에 드냐 안 드냐, 이겁니다. 안 들면 어떤 이유를 들어서든 반대하게 됩니다. 도대체‘누구’의 객관이냐 이거죠. 가만히 보면 우리는 그동안 우리의 객관만 신경을 쓰는 실수를 저질러 왔습니다. —p.139

 

두 개의 팀을 상상해 봅시다. 한 팀은 서로 잘 물어보지 않고, 물어봐도 “이것도 모르세요?”의 수준으로 대답해 줍니다. 반대로 다른 팀은 서로 코칭을 해주면서 함께 동기와 의지를 북돋워주고 같이 고민해줍니다. 어느 팀의 사람들이 성장할까요? —p.152

 

“일정 안에 가능한가요?” 모두 가능하다고 합니다. 7명이 각기 90% 확률의 확신을 갖고 있다고 답했다고 칩시다. …<중략>… 이 경우 확률을 계산하려면 0.9를 일곱 번 곱해야 합니다. 그러면 0.48이 나옵니다. 즉, 모든 개발자가 90%의 확률로 안심을 하고 있지만 전체 프로젝트 입장에서는 마감일에 맞출 확률이 동전 던지기에서 앞면이 나올 확률보다 안 나오는 것입니다. —p.181-184

 

 

《함께 자라기》는 다음 서점에서 구입하실 수 있습니다.

Yes24 | 교보문고 | 알라딘 | 인터파크

 

정오표

 

저자 김창준 님이 개발자들이 의도적 수련을 늘릴 수 있는 방법에 대해서 쓴 글은 <월간 마이크로소프트웨어> 2005년 4월호와 6월호에 연재되었고, 전문은 아래의 링크에서 확인할 수 있습니다. (월간 마소의 링크가 소실되어, 저자의 허가하에 아래 싣습니다.)

의도적 수련 1 – 고수, 무술과 프로그래밍에 대한 소고
의도적 수련 2 – 프로그래머에게 적합한 의도적 수련

 

의도적 수련 1 – 고수, 무술과 프로그래밍에 대한 소고

<월간 마이크로소프트웨어> 2005년 4월호와 6월호에 실린 《함께 자라기》 김창준 저자님의 글입니다. 개발자들이 의도적 수련을 늘릴 수 있는 방법을 엿볼 수 있습니다.

‘의도적 수련 2 – 프로그래머에게 적합한 의도적 수련’ 보러 가기

——————————————————————————————————-

이 글은 최근 있었던 제6회 자바 개발자 컨퍼런스에서 필자가 발표했던 ‘테스트 주도 개발 수련법’의 내용 중 몇 가지에 대해 상술하고 추가한 것이다. 총 2회에 걸쳐 연재될 예정인데, 첫 번째의 무게 중심이 무술 쪽에 가깝다면 두 번째는 프로그래밍 쪽에 가깝다고 할 수 있다. 그리고 무술과 프로그래밍의 관계를 설명함에 있어 필자가 수련하는 기천이라는 무술에 대한 언급이 몇 번 있는데, 이는 특정 무술을 선전하거나 혹은 그 무술이 다른 무술에 비해 월등하다는 주장을 하거나 신비화하려는 의도는 전혀 없음을 미리 밝혀둔다. 특정 무술에 대한 언급이 약간 눈에 거슬리더라도 마소는 무술 잡지가 아니라 프로그래밍 잡지라는 맥락을 상기하고 가볍게 읽어 주길 바란다.

 

 

고수, 무술과 프로그래밍에 대한 소고

필자는 무술을 수련해 오고 있다. 처음 무술의 ‘武’자를 몸으로 접한 것은 초등학교 입학 전후로 기억하는데, 당시 대한민국 남아의 필수 교양 스쿨이었던 태권도 도장을 통해서였다. 고등학교는 태권도 수업 시간이 있는 좀 독특한 학교였는데, 그 때 단증과 함께 명예의 검은 띠를 얻었다. 대학에 들어와서는 손이 그리는 태극 모양에 매료되어 기천이라는 전통무예를 배우기 시작했다. 군대에서는 고참의 눈을 피해 날마다 저녁 자유시간에 창고에서 몰래 수련을 하기도 했다. 현재까지 계속하고 있는 이 기천이라는 무술은 시작한지 벌써 10년이 넘었다.

프로그래머로서 무술을 한다는 것이 무슨 상관이 있냐고 혹자는 반문할지도 모르겠지만, 경험에 의하면 무술은 음으로 양으로 프로그래밍에 도움을 주고 있다. 먼저 간접적으로 얻는 깨달음에 대해 이야기해보자.

 

무술에서 얻는 영감

무술에서 얻는 부차적인 이득이 하나 있다. 필자는 마소 2003년 1월호에서 개발자에게『훈민정음 해례본』을 추천한 바 있다. 당시 기사의 일부분을 인용해본다.

한글은 하나의 시스템이다. 기능과 모양새가 한 박자에 맞춰간다. 다양한 상징과 은유가 일관된 체계를 구축하며 들어 있다. 필자는 이제까지 한글처럼 완벽한 시스템을 본 적이 없다. 디자인을 하는 사람이나 어떤 시스템을 만들려는 사람에게 이 책이 큰 계발이 되리라 생각한다. 무형의 것을 어떻게 자연스럽게 유형화해서 표현할 것인가, 추상적인 개념들을 어떻게 규칙적으로 체계화할 것인가 하는 데에 큰 공부가 된다.

당시 담당 기자로부터 몇 번 확인을 받아야 했다. 정말 이 책을 추천하는 게 맞느냐. 다른 책으로 바꿔줄 수는 없겠냐. 하지만 필자는 무술을 하면서 훈민정음 해례본에서 느꼈던 치밀함을 다시 맛볼 수 있었다. 다음은 공부론에 대해 도올고신에 연재를 했던, 필자의선배 윤종권 씨의 글이다. 윤종권 씨는 무술과 음악에 대해 퍽이나 깊은 수준을 갖고 있다.

여기서 우리가 의외로 명확하게 인식하지 못하는 인체의 상식 하나를 소개하고자 한다. 그것은 우리가 사지를 몸통에서 멀리 뻗을 때(伸)는 숨을 내쉬고(呼息), 몸 쪽으로 당기거나 굽히는(屈) 동작을 수행할 때에는 숨을 들이쉰다(吸息)는 사실이다. 이는 다음과 같은 단순한 실험을 해보면 단번에 이해될 것이다. 두 사람이 서로 악수한 상태에서 손을 서로 잡아당길 때, 한쪽이 숨을 내쉬면 그는 곧 상대방 쪽으로 끌려가고 만다. 팔을 접으면서 잡아끄는 행위는 屈의 움직임이며, 이 때는 들숨이 필요하기 때문이다. 반대로 서로 손을 맞잡고 밀어내는 경우, 한쪽이 숨을 들이키면 그는 뒤로 밀리게 된다. 팔을 앞으로 내미는 신장(伸張) 동작은 날숨과 연동되어 있기 때문이다. 참고로 숨과 신근(伸筋)의 연동은, 권투에든 야구에든 첼로 연주자의 활 긋는 동작에든 모두 동일하게 적용된다.

조던은 결국 다음과 같은 이유에서 혀를 내미는 것이다: 그는 돌파시에 혀를 내밀고 달림으로 인해서 “날숨”의 상태(정확하게는 숨을 내쉰 직후의 호흡정지 상태)를 인위적으로 지속시켜서, 伸筋(등 부분, 다리의 앞면, 팔의 뒷면 등의 근육)의 퍼포먼스를 최대한으로 높인다. 이 시점에서 주력(走力)이 향상된다. 점프할 때 혀를 빼무는 것은, 전신의 脫力(불필요한 屈筋의)을 촉진하고 몸통 내부에 일정한 상태를 조성하여 — 이 부분은 구체적으로 기술할 수 없으나, 소위“浮身”이라고 불리우는 무술의 한 테크닉과 거의 일치한다 — 더 높고 멀리 점프할 수 있도록 도와준다.

윤종권, 마이클 조던이 혀를 내민 까닭은?, 도올고신 27신

윤종권 씨는 이 글에서 조던이 혀를 내미는 이유를 운동역학적인 면에서 분석하면서, 몸의 특성과 그것을 운용하는 방식 등을 하나의 디렉트 시스템으로 통합하여 보고 있다. 그런데 본인은 기천 운동을 하면서 기천의 수들이 이런 체계적이고 치밀한 시스템 원리를 따르고 있다는 것을 점점 더 절감하고 있다. 기천의 수는 일종의 부트스트랩핑과 비슷하다. 부트스트랩(bootstrap)은 신발 뒷축의 가죽 끈을 말하는데, 부트스트 랩핑은 스스로 자기의 신발끈을 당겨서 자신을 공중에 띄워야 하는 것과 같은 모순적 상황을 일컫는다.

기천은, 나아가서 모든 무술은 어떻게 하면 조직이 스스로를 개선할 수 있을까 하는 질문과 마찬가지로 어떻게 하면 자신의 몸으로 더 많은 힘을 낼까 하는 부트스트래핑적인 고민을 담고 있다. 기천의 수는 땅을 박차는 반작용의 힘을 많이 이용한다. 동시에 자신의 몸을 여러 개의 부분들이 연결된 것처럼 다루면서 회전력과 비트는 힘을 이용해서 힘을 배가시킨다. 마치 수영선수가 출발할 때 속도를 얻기 위해 벽면을 박찰 때에 벽면이라는 외부요소를 이용하듯이, 기천에서는 자신의 팔이나 다리, 허리 등을 일시적으로 마치 외부요소인 것처럼 이용해서 자신의 힘을 불리는 것이다. 그 치밀함은 정말 놀라울 정도이다. 그래서 기천 수를 연습하면서 많은 계발과 영감을 얻고 있다. 그런 영감의 몇 가지를 소개한다.

무술과 프로그래밍은 모두 시간의 예술이다. 무술에서 고정된 동작이란 그 자체로 의미가 없다. 주먹은 앞으로 나가야 타격을 할 수 있는 것이다. 프로그램 역시 시간의 흐름 속에서만 의미가 있다. 프로그램 실행이란 공간적 배치를 시간적 배치로 바꾸는 것이다.

한 동작을 거듭 수련하면 할수록 더 복잡해지는 것이 아니라 더 소박하고 단순해진다. 필요없는 잔 동작이 없어지고 핵심만 남는다. 전설의 검객 미야모토 무사시는 자신의 오륜서에서 “필요없는 것을 하지 마라”고 했다. 프로그램도 계속 다듬으면 오히려 단순해지는 것 같다.

무술은 허실, 음양의 양태의 조합과 반복이다. 주먹을 뻗으면 실을 만들면서 나의 허리 쪽에는 허가 생긴다. 오른손이 올라가면 왼손이 내려간다. 왼손이 올라가면 왼발은 뒤로 간다. 왼발이 뒤로 가면 오른발은 앞으로 간다. 컴퓨터 시스템에도 이런 허실과 음양의 관계 양상이 존재한다. 전체 시스템에서 특정 컴포넌트가 실하다면 나머지 부분 중 허한 부분이 생기게 되고 그 부분을 보충해줘야 한다. 공수가 어울려야 한다.

범사(기천에서는 사범 대신 범사라고 호칭한다)가 시범을 보이면 그걸 따라한다. 하지만 뭔가 다르다. 양념이 빠진 느낌이랄까, 2% 부족한 느낌이다. 그러다가 문득 깨달은 것이 있다. 범사의 동작에는 흥과 리듬감이 있었다. 기천의 동작(특히 동공)은 ‘흥’이 나야 한다. 이것을 알고 나서 하는 동작은 훨씬 더 자연스럽고 쉬우면서도 힘이 난다. 흥이 나려면 리듬을 타야 한다. 흥을 내다보면 탈춤을 하는 느낌이 들기도 한다. 생명의 느낌에는 리듬이 있다. 이처럼 뛰어난 프로그래머를 관찰하면 흥이 난다. 리듬감이 있다. 옆에서“얼쑤!”라고 추임새를 해주고 싶을 때도 있다. 필자도 프로그래밍이 잘 될 때에는 박자가 잘 맞고 흥이 난다. 하지만 그렇지 않을 때에는 박자가 어긋나고 흥이 없고 살아 있는 느낌이 나질 않는다.

 

프로그래머의 스트레스

이번에는 무술에서 얻는 직접적인 효과에 대해 이야기해보자. 지식 노동자들은 스트레스가 많다. 특히 프로그래머라는 직업은 나날이 늘어가는 신기술의 홍수 속에서 가만히 있으면 뒤쳐지는 붉은 여왕의 스트레스(루이스 캐럴의『이상한 나라의 앨리스』에 등장하는 붉은 여왕에서 유래. 그 나라에서는 있는 힘을 다해 달려야만 제 자리에 머물 수 있다)가 이만저만이 아니다. 어디에선가 프로그래머는 5년에 한 번씩 자기가 아는 지식의 절반을 완전히 갈아엎어야 한다는 이야기를 본 것 같다. 그래서 이런 스트레스를 해소하는 방법은 꼭 필요하다.

필자는 몸으로 하는 무언가가 좋은 처방이라고 생각한다. 본인은 그 중에서도 특히 무술을 통해 스트레스를 해소하고 있다. 운동을 한 날은 마치 정신의 샤워를 한 느낌이 든다. 가장 좋은 아이디어는 샤워를 할 때 떠오른다는 유명 프로그래머들이 꽤 있는데, 정신의 샤워 역시 비슷한, 혹은 더 높은 효과가 있다.

세상에는 인과관계가 역으로도 성립하는 듯 보이는 경우가 종종 있다. 우리는 기분이 좋으면 웃는다. 상식적 견지에서 보면, ‘기분이 좋다’가 원인이면 ‘웃는다’가 결과가 될 것이다. 하지만 최근의 연구에 따르면 웃는 표정을 지으면 기분도 좋아진다고 말한다. 우리는 기분이 좋으면 육체적 활동을 한다. 하지만 반대로 육체적 활동을 하면 기분이 좋아지기도 한다. 우울증 치료의 가장 효과적 처방 중 하나가 바로 운동이다. 매일 계속하는 운동은 우울증 예방과 치료에 큰 도움이 된다.

스트레스 해소라는 정신적 측면뿐만 아니라 육체적인 측면에서도 큰 도움이 된다. 하루 종일 의자에 앉아서 일해야 하는 직업의 특성상 허리, 눈, 다리, 팔, 손목 등에 병이 걸리기 쉽다. 꾸준히 하는 운동이 있으면 그런 병 걱정이 없다. 또 몸이 조금 피곤해도 쉽게 풀린다.

 

알파파와 집중력

며칠 전 필자를 지도해 주는 범사님과 함께 집중력 검사를 받았다. 필자의 지우 중에 지상은 박사라고 계신데, 한의사 출신으로 다양한 공부를 하신 분으로 지금은 서울 근방에서 학습 클리닉을 운영하고 있다. 일전에 지 박사와 함께 기천 수련과 관련해 심박 측정을 했었는데 이번에는 뇌파 측정을 해보기로 했다.

머리에 전극을 연결하고 뇌파를 측정해서 집중력을 검사(혹은 트레이닝)하는 것인데(소위 바이오피드백이라고 알려져 있다) 스트리트파이터 류의 게임을 머리로 했다. 상대는 컴퓨터가 조종한다. 좌뇌, 우뇌 활성화 여부(알파파와 베타, 쎄타파의 비율)에 따라 캐릭터가 움직이고 공격을 한다. 뇌에서 어떤 패턴으로 알파파가 얼마나 강하게 나오느냐에 따라 공격의 종류가 달라진다. 복잡한 공격 기술일수록 만들어 내기가 어렵다. 꽤나 힘들긴 했지만 컴퓨터 상대를 이길 수 있었다. 꼭 영화 ‘매트릭스’의 한 장면 같았다.

이 게임이 어려운 이유는 자연스러움을 거스르기 때문이다. 일반적으로 이러한 종류의 대전 격투 게임을 할 때에는 뇌에서 알파파가 나오는 차분하고 평정한 상태를 잃기 쉽다고 한다. 하지만 그런 흥분되는, 혹은 몽환적 상황에서도 차분하게 집중을 하고 있는(보통 알파파 상태를 영어로 calm and focused attention이라고 한다) 상태를 유지해야 하기 때문에 어떻게 보면 모순이다. 필자의 생각으로는 무술의 고수는 실제 겨루기를 할 때에도 알파파가 나오지 않을까 한다.

이 알파파라고 하는 것은 우리가 보통 공부를 할 때 필요한 집중력과 직접적 관련이 있다고 한다. 학습장애 클리닉에 집중력 장애를 가진 학생이 부모와 함께 왔을 경우, 부모는 대부분 부인한다. “우리 애가 집중력이 부족하다고요? 말도 안돼요. 게임할 때 보면 누가 업어가도 모를 정도로 얼마나 집중을 잘하는데요.”그래서 국내의 연구자가 프로 게이머 대상으로 실험을 했다. 게임을 할 때 어떤 뇌파가 많이 나오는가. 쎄타파였다. 쎄타파 상태는 깨어 있는 것과 잠든 것의 중간 상태와 비슷하다. 그런데 이 쎄타파는 공부할 때 필요한 알파파와는 전혀 차원이 다르기 때문에 아무 도움도 되지 않는다는 것이 그 연구자의 말이다.

지 박사는 이런 몇 가지 실험 후, 필자와 범사님 두 사람 모두 상당한 집중 능력을 보여줬다고 말했다. 이는 기천 수련의 영향이라고 생각한다. 집중력이 높다는 것은 원하는 시점에, 심지어 주변에 방해요소(앞선 실험에서는 화면에서 번쩍이는 현란한 그래픽과 폭력성)가 있어도 알파파를 내도록 스스로 조절할 수 있다는 이야기이다. 프로그래밍에 몰입한 때에도 알파파가 나온다고 생각하는데, 그렇다면 당연히 이런 능력이 프로그래밍을 비롯한 대다수의 지적 활동에 많은 도움이 될 것이다.

 

건강과 프로그래밍

정신 건강이나 육체 건강이 프로그래밍과 얼마나 관련이 있을까? 필자는 그 관계가 무척 깊다고 생각한다. 예컨대 동일한 사람을 극심한 스트레스 아래에 놓고 일을 시킬 때와 그렇지 않을 때를 비교하면 그 사람의 퍼포먼스는 많은 차이가 난다. 본인이 주변을 관찰한 바로는 몸 상태에 따라 한 프로그래머의 성과가 서너 배 이상 차이가 났다. 주지해야 할 것은, 이런 효과가 개인이 아니고 조직에 영향을 끼치게 되면 파급효과는 제곱수가 된다는 것이다. 짜증이 극도에 이른 개발자나 몸살로 헤롱거리는 개발자와 함께 일해 본 경험이 있는 사람이라면 쉽게 고개를 끄덕일 수 있을 것이다.

궁금한 독자는 다음 실험을 해보시라. 주변 동료에게 간단한 프로그래밍 문제를 풀게 한다. 같은 시간을 주되, 한 번은 일요일 오후 편안한 시간에 풀게 하고 다른 한 번은 업무를 마치고 스트레스가 높고 피곤한 상태에서 풀도록 한다. 양자의 결과는 놀라우리만큼 차이가 크다. 후자의 경우, 프로그래머는 실수를 자주 하게 되며 그 실수가 되먹임되어 더 큰 실수가 생기고, 더군다나 아주 어처구니없는 실수를 잡아내지 못해 고생을 하고, 그래서 시간은 부족하고 스트레스는 더 늘어나며 그로 인해 다시 실수를 하는 악순환에 빠지게 된다. 세미콜론 하나를 빠트려서 두 시간 삽질해 본 경험을 한번쯤은 해보지 않는가. 길을 걷다가 발을 헛디디는 순간 우리는 숨을 들어 마시게 되고 몸의 균형이 깨어진다. 이 때 누군가가 그 사람을 타격하면 이건 정말 치명타가 될 수 있다. 기의 균형이 깨어진 상태, 정말 무방비의 시점이다. 한 번 발을 헛디뎌 헉하는 순간 주먹을 맞으면 그냥 KO당하는 수가 있다. 그렇게 센 주먹일 필요도 없다. 정신 활동도 이와 비슷하다.

 

고수가 되는 것이란

앞서 살펴본 바와 같이 무술을 꾸준히 하면 육체와 정신에 여러모로 긍정적인 영향을 준다. 그렇다면 이런 무술의 고수는 어떤 사람들일까? 질문을 조금 일반화해 보자. 고수는 어떤 사람들일까? 현대 한국어에서 고수는 한 방면에 매우 뛰어난 사람을 일컫는 비유적 표현으로 많이 쓰이고 있다. 간단히 말하자면 전문가인 셈이다.

필자가 만든 말 중에 ‘메리 분석하기(AnalyzeMary)’라는 게 있다(메리에겐 뭔가 특별한 것이 있다라는 영화에서 따온 말이다). 우리 주변에는 메리처럼 뭔가 특별한 사람들이 있다. 남들과 비슷하게 일을 하는 듯하면서 늘 더 나은 성과를 보이는 사람들이다. 그런 사람을 볼 때 대다수의 사람들은 그 사람은 특별하다는 감탄사를 외치고 나는 왜 그들처럼 될 수 없을까 한탄하고, 곧 까맣게 잊는다. 다음은 필자가 노스모크에 썼던 글이다.

그들을 주의 깊게 관찰하고, 분석하라. 그리고 무엇이 그들을 그렇게 ‘특별하게’ 하는지 알아내고 그걸 배워라. 또 그들이 어떻게 그렇게 특별해질 수 있었는지 배워라. 조만간 당신도 그들이 하는 것을 할 수 있을 것이다.

……

나는 지하철에서 물건을 파는 사람들을 매일 본다. 그러나 부산에서 봤던 구두솔(구두약이 나오는) 파는 아저씨를 도무지 잊을 수가 없다.

그 아저씨는 내가 타고 있던 칸에서만 50개를 넘게 팔았다. 아주 경이로운 장면이었다(영화의 한 장면 같았다). 도대체 어떻게 하길래 저 사람은 물건을 이렇게 잘 파는 것일까. 내게는 그 사람이 세일즈의 달인으로 보였다. 나는 세일즈를 하는 사람이 아니다. 하지만 세일즈의 기본은 설득과 유혹이다. 설득과 유혹은 내가 나날이 사용하는 기본적인 삶의 도구들이다. 그래서 그 사람을 ‘Analyze Mary’해보았고 거기서 많은 통찰과 영감을 얻었다. 그 사람은 좌석에 앉은 사람들의 신발을 일일이 자신의 구두솔로 닦아주었다 — 한 사람도 빼놓지 않고(아 물론 운동화와 샌들은 빼고). 그걸 싫어하는 사람들이 대부분이지 않겠냐고 생각하겠지만 상황은 정반대였다. 저마다 반짝거리는 자신의 신발을 이리 저리 돌려 보면서 신기해했다. 그 사람이 신발을 닦아준 사람의 90%는 모두 구입을 했다. 상품과 세일즈 기술이 잘 결합된 좋은 예였다.

나는 여기 등장한 구두솔 아저씨를 고수로 생각한다. 그 아저씨의 고수됨은 이소룡의 고수됨과, 또 베토벤의 고수됨과, 다익스트라의 고수됨과 크게 다르지 않다.

 

공부와 쿵후

여기에서 잠깐 공부와 쿵후의 관계에 대해 짚고 넘어가도록 하자. 이에 관해서는 도올 김용옥의『태권도철학의 구성원리』라는 책이 무척 탁월하다. 그 책의 설명을 인용한다.

“To study”의 번역술어로서 우리 현대어에 자리잡은 이“공부”(工夫)라는 말의 원뜻은 “德의 得함을 지향하는 모든 디시플린(훈련)”을 의미하는 것으로 그 원의는 사실 중국말의 “쿵후”에 더 잘 보존되어 있다. 우리 말의 “工夫”의 중국 발음이 “kung-fu”이며 이것을 우리말로 簡化하여 표기한 것이 곧 “쿵후”다. (工夫=功夫=功夫). “ 쿵후”는 공부다. ……

중국말(혹은 우리 옛 한문)에 있어서 쿵후는 인간의 몸의 達人的 경지에 대하여 광범위하게 두루두루 쓰이는 표현으로서 우리가 지금 “쿵후”라고 부르는 무술의 한 형태는 쿵후라는 일반명사의 개념에 포섭되는 광범위한 개념 중의 한 하위개념일 뿐이다. 지게를 잘 지는 노인의 지팽이질도 쿵후요, 호리병에 한 방울도 흘리지 않고 기름을 떠넣는 기름장수의 손놀림도 쿵후다. …… 이러한 인간의 몸의 동작의 장난에 있어서 高手와 下手의 차이를“쿵후”라고 표현하며, 이 쿵후는 오랜 시간의 축적을 통하여 高手의 몸이 얻은(得) 德인 것이다.

관심있는 독자들은 꼭 일독하기를 권한다. 도올은 여기에서 우리가 일상어에서 공부라고 부르는 뇌의 기호 조작(symbol manipulation) 능력과 무술의 쿵후 능력, 더 나아가 빨래터의 아낙이 능숙하게 방망이질을 하는 것을 모두 몸(Mom)의 수련이 이룬 경지라는 동등한 차원에서 볼 수 있다고 하는 것이다.

 

수련의 필요성

고수가 되려면 어떻게 해야 하는가. 필자가 노스모크에 썼던 글을 인용하겠다.

고수가 하는 것을 배우거나 따라하려고 하지 말고, 그들이 어떻게 고수가 되었는지를 배우고 따라하라.

대부분의 사람들은 어떤 분야의 전문가가 되기 위해 현재의 전문가들이 하고 있는 행동을 따라하려고 한다. 우선은 따라하기가 힘들 뿐만 아니라, 설령 똑같이 따라하게 되더라도 그것은 전문가 흉내내기일 뿐 전혀 전문가적이지 못하다. 행동 하나하나의 맥락을 이해하지 못하기 때문이다.

문제의 해결법만 달달 외운 사람은 세상의 모든 문제가 그 해결법을 적용할 대상으로 보인다. 또 새로운 문제에 직면했을 때 창의적이고 상황에 맞는 전문가적 해결안을 제시하지 못한다. 컴퓨터 프로그래밍에서 좋은 해결안들만 사전처럼 모아둔 디자인 패턴을 공부하는 사람들의 병폐가 대부분 여기에서 온다.

인공지능에서 전문가 시스템(Expert System)이라는 것이 초기의 장밋빛 기대와는 달리 별 신통한 결과를 주지 못한 이유가 이것이기도 하다. 전문가 시스템 구축을 위해 특정 분야의 전문가 수백 명을 몇 년에 걸쳐 인터뷰와 관찰을 계속한다. 그 전문가들은 자신이 일을 하는 원칙과 법칙을 서술해야 한다.

즉, 영어 전문가라면 어떤 문장에서 어느 경우에 무관사인지, 정관사인지 부정관사인지 등을 법칙으로 설명해야 한다(우리는 이런 것들을 달달 외우려고 노력한다). 이미 많은 연구에서 밝혀졌지만 의외로 전문가들은 전혀 법칙에 의해 행동하지 않는다. 우리가 질문을 했을 때 전문가들은 법칙을 즉석에서 자신의 평소 상황에서 유추, 만들어내어 설명해주고 있다. 우리가 이 법칙을 모두 외운다고 해도 전문가의 행동을 할 리 만무하다. 전문가의 머리 속에는 그런 법칙들은 물론 이제까지 그가 축적해온 엄청난 영어 경험이 각 상황성과 함께 적절히 정리되어 있기 때문에 그들의 머리와 법칙만 외운 우리의 머리에는 큰 간극이 존재한다.

아마도 우리가 배워야 할 것은 그들이 전문가에 도달하기 위해 밟았던 과정일지도 모른다. 우리의 목표는 몇몇 특정 시점에서 전문가를 흉내내는 것이 아니고 스스로 전문가가 되는 것이기 때문에.

고수가 되려면 수련이 필요하다. 단순히 현재 고수가 하는 것을 따라하는 것으로는 부족하다. 사실 제대로 따라하기가 거의 불가능하다. 하지만 고수가 현재 무엇을 하는가에 대한 정보도 매우 귀중하다. 등대가 되어줄 것이기 때문이다.

무술처럼 프로그래밍에도 수련이 필요하다. 이 생각을 갖게 된 계기는 무술을 수련하면서, 그리고 인지심리학을 공부하면서였다. 인지심리학에서는 전문가에 대한 연구(전문성, expertise에 대한 연구라고 한다)를 몇십 년 전부터 해오고 있다. 이 때 연구 대상은 주로 전문직이라고 할 수 있는 음악 연주자, 의사, 판사, 운동선수, 체스선수, 프로그래머 등에 해당한다. 그렇다. 프로그래머! 인지심리학 분야에서는 꽤 오래전부터 고수 프로그래머에 대해 연구해 오고 있다.

이런 전문성 연구의 목표는 크게 잡아 두 가지이다. 전문가와 비전문가가 그 사고 과정과 문제 해결, 행동 방식에 있어 어떻게 다른가. 어떻게 비전문가를 전문가로 만들 수 있을 것인가.

 

의도적 수련

필자는 전문성 연구 중에서 특히 앤더스 에릭슨(Anders Ericsson)이라는 사람의 연구결과에 주목한다. 그는 퍼포먼스와 수련 시간 간에 밀접한 관계가 있다고 말한다. 아니, 좀 더 극단적으로 한 영역에서의 경험은 일, 놀이, 수련 세 가지로 나눌 수 있는데, 이 중 수련에 투자된 시간만이 퍼포먼스 향상과 관련이 있다고 한다.

프로그래밍 쪽으로 말한다면, 회사에서 프로그래밍하는 시간이나 심심풀이로 프로그래밍하는 시간은 내가 고수가 되는 데에 직접적 공헌을 하지 못한다는 이야기가 된다(사실 일, 놀이, 수련의 구분은 엄격할 수 없고, 겹쳐진 영역이 존재할 수 있다). 특정 영역에서 개인이 다다를 수 있는 최고 수준의 퍼포먼스는 경험을 많이 한다고 자동으로 획득되지 않으며 심지어 많은 경험을 했던 사람일지라도 개선하려는 의도적인 노력의 결과로서 퍼포먼스 수준이 향상될 수 있다고 에릭슨은 말한다. 피터 드러커는 이노베이터의 조건에서 다음과 같이 말한다.

세상에 음계(etude-연습곡)를 연습하는 것보다 더 지루한 일은 없다. 그러나 위대한 연주자일수록 하루도 빠짐없이 성실하게 음계를 연습한다. 마찬가지로 유능한 외과 의사일수록 한층 더 성실하게 봉합술을 연마한다.

피아니스트는 연주 능력 향상에 크게 도움이 될 것 같지 않은 음계를 여러 달 동안 계속 연습하기도 한다. 그러나 그 연습이 피아니스트로 하여금 원하는 음악적 성취를 이룰 수 있도록 해준다. 외과 의사는 능숙한 수술 실력 향상에 크게 도움이 될 것 같지 않은 작은 손놀림을 익히기 위해 여러 달 동안 계속해서 봉합용 실과 씨름을 한다. 외과 의사는 그 꾸준한 연습 덕분에 수술을 빠르고 정확하게 하게 되고, 그 결과 소중한 인명을 구하기도 한다. 무언가를 성취하는 것은 반복적인 연습에 의해서만 가능하다.

하지만 단순한 음계 연습은 무엇도 이루어주지 않는다. 에릭슨은 바이올린 전문가들에 대해 막대한 조사를 해보았는데, 그들의 실력은 자신이 바이올린 연습에 투자한 시간과 거의 비례했다. 하지만 그는 여기에 전제를 단다. 단순한 반복 연습은 아무 도움이 안 된다고 강조한다. 자기 자신을 관찰하는 것, 그리고 피드백을 통해 재조정하는 것, 특별히 현재의 기량 증진을 위해 설계된 훈련 등이 중요하다. 에릭슨은 이런 수련을 특별히 의도적 수련(deliberate practice)이라고 부른다.

에릭슨의 연구에 따르면, 고수와 하수를 가르는 가장 효과적인 인자는 의도적 수련의 양이었다. 예컨대 IQ와는 별 상관이 없다. 실제로 프로그래머의 퍼포먼스에 대한 연구를 봐도 그 사람이 얼마나 일을 잘 하는가와 그 사람의 학력, 경력년수, IQ 간에는 별 관련이 없었다. 필자의 경험으로도 크게 틀리지 않는 것 같다. 경력이 많은 개발자가 꼭 경력이 짧은 개발자보다 능력이 더 뛰어나진 않았다. 설사 처음에는 큰 차이가 있더라도 금새 따라잡을 수 있었다.

에릭슨의 연구는 우리의 뒷통수를 칠만큼 허를 찌른다. 우리의 커리어 모델에 대한 심각한 재고가 요구된다. 전문성 연구에 따르면 한 분야의 세계적 수준의 고수가 되려면 10년의 수련, 혹은 도합 일만 시간 이상의 의도적 수련이 필요하다고 한다. 재즈 기타리스트에 대한 전문성 연구에 따르면, 실제 공연 시간은 전문가와 비전문가를 가리는 데에 별 도움이 되지 않았고 혼자서 연습한 시간이 더 의미가 있었는데, 전문가와 준전문가(semi-expert)의 경우 수련 시간이 일주일에 최소 두 배 이상(43시간 대 17시간)의 차이가 있었다. 나는 일주일에 몇 시간을 의도적 수련에 할애하는가? 이건 정말 무서운 질문이다.

무술 쪽에 이런 의도적 수련이 많이 개발되어 있는 것 같다. 실제로 무술인의 의도적 수련에 대한 연구도 있다. 본인은 의도적 수련을 다른 말로 ‘특수 훈련’이라고 옮기기도 한다. 세계적인 전문가와 비전문가 혹은 ‘나름대로 전문가’의 차이 중 하나는 자신의 기량을 향상시키기 위해 자신만의 특수 훈련을 직접 설계, 시행하느냐에 있다. 전문가가 되기 위해서는 많은 특수 훈련이 필요하다. 특수 훈련에는 여러 가지 종류가 있다. 그중에 스캐폴딩(scaffolding)이라는 방법이 있다. 우리말로는 지지대인데, 두발 자전거 뒷바퀴 양옆에 보조 바퀴를 달고 타다가 나중에 떼어 버리는 것과 유사하다.

수영선수들이 받는 특수 훈련 중에 이런 게 있다고 한다. 선수의 몸에 밧줄을 묶는다. 그리고 풀장 밖에서 트랙터를 이용 선수의 몸을 빠른 속도로 끌어당긴다. 그러면 선수는 평소 자신의 속도보다 훨씬 높은 속도로 물속을 가로지르게 된다. 이 때 그 선수는 빠르게 수영할 때의 느낌을 맛볼 수 있다. 물의 저항, 몸의 느낌 등. 이런 특수 훈련을 하고 나면 더 이상 트랙터로 당기지 않더라도 그 사람의 기량이 향상된다.

기천의 수중에 이런 것도 있다. 정면을 보고 선 자세에서 한 발자국(예컨대 오른발) 크게 내딛는다. 발 뒤꿈치가 닫는 순간 뒤꿈치를 축으로 몸을 반 시계 방향으로 비튼다. 주먹은 이 때 허리에 있다가 정면으로 내어지른다. 주먹이 완전히 나간 상태에서는 몸은 왼쪽을 바라보고 있고 주먹은 원래의 정면 쪽으로 나와 있는 상태이다. 그리고 다리는 기마자세이다.

처음 이 동작을 배우고 계속 연습을 했다. 그런데 범사님이 뭔가 제대로 되고 있지 않다고 말을 했다. 하지만 동작은 수정되지 않았다. 그러다가 다시 한 번 앞발을 내딛으려는 순간 뒤에서 범사님이 내 허리춤을 잡고 몸을 획 돌려버렸다. 마치 애들이 손바닥 사이에 끼고 막대기를 비비면 윗부분의 자그만 북에 실로 연결된 구슬이 북을 쳐서 소리를 내는 장난감처럼. 그러자 내 주먹이 마치 허리춤에서 총알 발사되듯이 앞으로 튕겨 나갔다. 바로 이 느낌이었다. 엄청난 파워. 그러나 힘은 들지 않았다. 이 경험을 한 번 했더니, 한 마디로 말해 ‘감이 왔다’. 당연히 기량에도 발전이 있었다.

왜 이런 훈련이 효과가 있을까? 몸이 기억하기 때문이다. 몸은 그 당시의 느낌을 기억한다. 그래서 그 이후 같은 수련을 해도 그 때의 그 완벽한 느낌에 가깝게 가기 위해 노력하고 몸을 컨트롤한다. 이번에는 그 느낌이랑 좀 비슷했네. 아니야, 이번에는 영 아니었어. 미감이 생기는 것과 비슷하다. 피드백이 더 구체적으로 어떤 방향을 제시해 주게 되는 것이다.

이런 이야기를 ‘테스트 주도 개발 수련’에 적용하면 어떨까? 나는 애자일 언어(파이썬, 루비 등 동적인 성질이 강한 언어)로 TDD를 하는 것이 이런 특수 훈련의 효과를 낼 수 있다고 본다. 그러고 나서 비-애자일 언어로 돌아가는 것이, 차라리 처음부터 비-애자일 언어와 씨름하는 것보다 빠른 기량 향상을 가능하게 할 것이다.

이런 자기보다 한 단계 높은 경험을 하는 특수 훈련도 있는가 하면 발목에 모래주머니를 차고 다니는 한 단계 낮은 경험을 하는 특수 훈련도 가능하다. 프로그래머를 위한 다양한 특수 훈련의 소개는 다음 연재를 기대하시라. 다음 연재에서는 구체적으로 프로그래밍의 고수와 하수의 차이점, 프로그래밍의 고수가 되기 위해 어떤 수련이 필요한지 등에 대해 살펴보겠다.

 

인터뷰

필자는 자바 개발자 컨퍼런스의 TDD 수련 비결 강의를 준비하면서 나름대로 TDD에서 한 수준에 올랐다고 생각되는 사람들과 인터뷰를 했다. 그들 모두 공통점이 있었는데 의도적 수련을 통해 한 계단 오르는 경험이 있었다는 점이다. 인터뷰에서 박응주씨는 다음과 같이 말했다.

저는 아주 쉬운 문제들을 주로 TDD 했습니다. 제가 2003년에 복학을 했었는데 복학 첫 학기 실험 수업으로 자바를 배우게 됐습니다. 회사 다니면서 2년 넘게 자바를 썼었는데 말이죠. 그냥 실험하고 과제를 하면 저에게는 시간을 버리는 것이나 마찬가지였기 때문에 실험과 과제를 TDD로 만들었습니다. 대부분 아주 쉬운 문제들입니다. 그런데 이런 문제를 풀면서도 제 생각보다 훨씬 빨리 끝냈다든지, 혹은 나온 코드가 너무 예쁘다든지 해서 놀란 적이 있습니다. 그 후로도 알고리즘 수업 등의 과제를 대상으로 계속 TDD를 해서 재미를 느낀 적이 많습니다.

저는 좀 여유를 가지라고 말하고 싶습니다. TDD를 배워야겠다고 생각을 하는 동시에 이걸 빨리 배워서 빨리 효과를 봐야겠다고 생각을 하게 됩니다. 이렇게 되면 재료로 가장 먼저 택하게 되는 것이 자신이 항상 접하게 되는 분야입니다. 저도 그래서 처음부터 제가 업무로 하던 분야인 웹 애플리케이션을 TDD하려고 많이 시도 했습니다. 그런데 처음부터 이런 어려운 것을 대상으로 하다 보니 중간에 그만 두게 되는 경우도 많고, 한 후에도 결과가 만족스럽지 않았습니다. 그래서 재미가 없었습니다.

너무 급하게 효과를 봐야겠다는 생각보다는 좀 여유를 가지시고 아주 만만해 보이는 것부터 하나씩 하나씩 연습을 해서 힘을 조금씩 기르면서 실무에서도 가장 쉬울 것 같은 부분부터 조금씩 적용해보는 것이 도움이 될 것입니다.

 

‘의도적 수련 2 – 프로그래머에게 적합한 의도적 수련’ 보러 가기

 

 

《함께 자라기》는 다음 서점에서 구입하실 수 있습니다.

Yes24 | 교보문고 | 알라딘 | 인터파크