。◕‿‿◕。 나는 Coder다.。◕‿‿◕。

quit20.egloos.com

포토로그 방명록


라이프로그


개발자들은 뭘 해야 하나 [펌] by egloos

개발자들은 뭘 해야 하나

나는 이렇게 예측한다. 소프트웨어 개발에서 점차 경력 연수를 중시하는 문화가 사라질 것이다. 따라서 개발자들은 자신의 경력 연차 외에 다른 것에도 신경을 써야 한다.

요즘 1만 시간 법칙이 유행이다. 국내외에 여러 책에서 그 법칙을 언급하고 있다(말콤 글래드웰의 『아웃라이어』라는 책이 야기하는 오해에 대해 내가 블로그에 쓴 「1만 시간 법칙에 대한 오해」를 참고하라). 특정 분야의 전문가가 되는 데 1만 시간의 노력이 필요하다는 법칙으로 설명되고 있다.

자신이 IT 분야 종사자라면 그 법칙을 듣고 대부분 어림추산을 해봤을 것이라 생각한다. ‘아, 내 경력이 6년이고, 야근도 좀 해주고 했으니까, 대충 계산하면... 오호, 1만 시간 넘네. 아싸.’

그런데 좀 이상하지 않나? 우리는 하루 세 번 3분씩 이를 닦는다. 대략 다섯 살부터 닦았을 것이고 죽기 전까지 닦을 것이다. 그런데 이 닦는 경력과 실력에 어떤 관련이 있다고 생각하는가? 나이 육칠십쯤 되면 도사 수준은 못되어도 준전문가 소리는 들어야 하지 않을까? 그런데 나이 들었다고 이 잘 닦는 사람 이야기를 들어본 적이 없다. 예를 들어 칫솔에 특수 약품을 묻히고 이를 닦은 후에 어느 부위가 닦였는지 안 닦였는지를 확인하면 얼마나 제대로 이를 닦는지를 알 수 있는데 이 실력과 칫솔질 경력과는 아무 상관이 없을 것이다.

1만 법칙을 히트시킨 주인공, 안데쉬 에릭손(Anders K. Ericsson)은 딱 잘라 말한다.

55년 동안 걸었다고 걷는 게 점점 더 나아지고 있는 건 아닙니다. ... 자신이 즐기는 걸 한다고 해서 더 뛰어나게 될 것이라고 믿는 것은 미신입니다.

그가 말하는 1만 시간 법칙에서 1만 시간은 "자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련"을 하는 시간을 일컫는다. 그런 수련을 그는 의도적 수련(deliberate practice)라고 한다. 악기 연주자에게는 공연 시간은 이런 의도적 수련이 되지 못한다. 체스 선수에게는 토너먼트 시간도 이런 의도적 수련이 되지 못한다. 정말 기량 향상을 목적으로 자신의 약점을 개선하려고 애쓰는 수련, 그것만이 의도적 수련이다. 통계적 분석의 결과가 그렇다. 실제 실력과 상관 있는 것은 의도적 수련이었다.

그럼 계산을 다시 해보자. 누적 몇 시간이 나오나. 상당히 좌절스러울 것이다. 하지만 업무를 하면서도 의도적 수련을 하는 방법이 있다. 개발자들이 의도적 수련을 늘릴 수 있는 방법에 대해 월간 마이크로소프트웨어 2005년 4월호와 6월호에 내가 쓴 「고수: 무술과 프로그래밍에 대한 소고」 1, 2를 참고하라.

그 내용을 여기서 간략히 소개하자면, 한마디로 애자일 철학을 활용하는 것이다. 애자일은 학습을 소프트웨어 개발의 가장 큰 병목 중 하나로 본다. 일반적 프로젝트에서는 모든 피드백의 주기가 느리다. 예를 들면, 내가 설계 단계에서 했던 결정의 피드백을 몇 달 후(테스트 단계)에 받는다. 이미 그 때쯤 되면 내가 예전에 왜 그런 결정을 했는지 자체가 가물거린다. 설사 그 때 기억이 난다고 해도, "아, 그런 거였군"하고 지나치기 쉽다. 실수를 교정할 기회가 다시 오지 않기 때문이다. 하지만 애자일 프로젝트에서는 지금 내가 한 행동의 피드백을 10분 후, 한 시간 후, 하루 후, 일주일 후 등 여러 주기를 통해 지속적으로 얻을 수 있다. 그리고 그 때 저지른 실수는 바로 다음 주기에서 교정할 수 있다.

이 두 가지가 학습에 어떤 차이를 불러일으킬지 쉽게 상상이 되지 않는 독자들을 위해 두 가지 예를 들겠다. 1) 골프 퍼팅 연습을 하는데 공이 어디로 가는지 전혀 보지 않고 1000개의 공을 친다. 2) 스키너의 상자 속에 생쥐 한 마리가 있고 거기에는 버튼과 먹이가 나오는 대롱이 있다. 버튼을 누르면 먹이가 나오지만 생쥐는 처음에 그 관련성을 모른다. 우연히 부딪혀서 몇 번 먹이를 받아먹은 후에는 배고플 때마다 직접 버튼을 눌러 먹이를 먹는다. 학습을 한 것이다. 하지만 영원히 학습을 못하게 할 수 있다. 버튼을 누른 시점과 먹이가 나오는 시점 사이의 시간 간격을 조금씩 늘려가다 보면 어느 시점에 생쥐는 학습을 못한다. 피드백 주기가 길어지면 학습이 안 된다.

여기에선 에릭손의 인터뷰 내용 일부를 인용하며 힌트를 드리고 마치겠다. 뛰어난 진단전문의(닥터 하우스를 떠올리면 된다)의 의도적 수련에 대한 이야기다.

진단전문의는 환자를 한 번 또는 두 번 본 다음, 꽤나 난해한 증세를 해결하기 위해 평가를 내리고, 다음 환자로 넘어갑니다. 그 의사는 환자를 두 번 다시 보지 못하기도 합니다. 저는 최근에 대단히 성공적인 진단전문의를 인터뷰했는데, 그 사람은 판이하게 다르게 일을 하더군요. 그는 상당한 시간을 자기 환자를 확인하는 데에 보내면서, 진단 시에 자신이 무얼 생각하는지 많은 기록을 하고, 자신이 얼마나 정확한지 나중에 확인을 하더군요. 자신이 만든 이 부차적 단계가 그를 자신의 동료들로부터 차별화하는 중요한 점입니다. 이를 통해 그는 자신이 언제, 어떻게 나아지고 있는지 잘 알 수 있습니다. 일반적으로 최고 수준의 퍼포먼스를 내는 사람들은 특별한 테크닉을 활용하는데, 그것은 널리 알려지지도 않고 많은 사람들이 실제로 행하지 않는 것이죠.

[1] Schmidt, F. L., & Hunter, J. E. (1998). The validity and utility of selection methods in personnel psychology: Practical and theoretical implications of 85 years of research findings. Psychological Bulletin, 124, 262-274.

[2] Sonnentag, S. (1995). Excellent software professionals: Experience, work activities, and perceptions by peers. Behaviour & Information TEchnology, 14, 289-299
Sonnentag, S. (1998). Expertise in professional software design: A Process study. Journal of Applied Psychology, 83, 703-715
Vessey, I. (1986). Expertise in debugging computer programs: An analysis of the content of verbal protocols. IEEE Transactions on Systems, Man, and Cybernetics, 16, 621-637

[3] Ericsson, K. A., Krampe, R. T., & Tesch-Romer, C. (1993). The role of deliberate practice in the acquisition of expert performance. Psychological Review, 100, 363-406

[4] 박승범 역, 톰 디마르코, 티모시 리스터. (2003). 피플웨어, 매일경제신문사

[5] Sonnentag, S., & Barbara M. K. (2000). Deliberate practice at work: A study with insurance agents. Journal of Occupational and Organizational Psychology, 73, 87-102
link - agile.egloos.com


덧글

  • erihin 2009/07/24 12:28 # 답글

    안녕하세요~^^ 처음 놀러왔어요. 방문감사하구요. 좋은자료 많네요^^
    링크걸고 갑니다^^
  • 송정의촌놈 2009/07/25 10:52 # 답글

    아이디가 무려 egloos시네요?!!! 우왕ㅋ굳ㅋ
  • 몰리브 2009/07/27 00:26 # 답글

    오오 좋은 글입니다. 땡큐~
댓글 입력 영역



유니클로 캘린더

프로그래밍RSS

P3P Blog Parts

환율위젯입니다