함께 자라기 애자일로 가는 길 - 독후감 연재

[#6] 수십 년 동안 전문가가 안 되는 비결

지상낙원 2021. 9. 28. 01:05
노벨 경제학상을 받는 카네만 교수는 발견법과 편향학파(HB)의 수장입니다. HB 학파는 전문가라고 하는 사람들이 사실은 얼마나 형편없는가를 밝혀내는 데에 큰 즐거움을 느끼고 있습니다. 이 학파랑 대척점에 있는 듯 보이는 학파도 있습니다.  게리 클라인(Gary Klein)이 수장으로 있는 자연주의 의사결정론(NDM) 학파입니다.
...
NDM과 HB의 두 수장은 <Conditions for intuitive expertise>이라는 논문을 공동저술, 출판한 적이 있습니다. 두 사람이 같이 논문을 썼다는 사실만으로도 뉴스감입니다. 공산주의와 자본주의 대표가 악수하는 사진 같은 상징성이 있는 사건이 일어난 겁니다.
...
어찌 되었건 두 사람이 동의 하는 부분이 있는데, 믿을 수 있는 직관이 형성되려면 특정 조건이 필요하다는 겁니다. 그리고 그 특정 조건으로 두 가지를 듭니다. 타당성과 피드백입니다.
...
타당성 조건이 필요하다는 의미는 직관이 적용되는 영역에 어느 정도 인과관계와 규칙성이 존재해야 한다는 겁니다. 
...
피드백 조건이 필요하다는 의미는 자신이 내린 직관적 판단에 대해 빨리 피드백을 받고 이를 통해 학습할 기회가 주어지는 환경이 갖춰져야 한다는 걸 말합니다.

  NDM과 HB는 서로 의견이 상충하는 학파임에도 불구하고 두 조건을 전문가가 되기 위한 필수조건이라고 말하고 있습니다. 저는 이 두 조건에 대해서 다음과 같은 생각을 했습니다. 타당성 조건은 인정을 받기 위해 사람들의 무언의 동의를 얻는 과정이고, 피드백은 그 동의를 통하여 전문가 당사자가 더 나은 전문가가 되기 위한 촉매제라는 생각이 들었습니다.

  본문에서는 타당성을 인정받는 예로 포커게임을, 타당성이 떨어지는 예로 주사위 던지기, 정치 판도 예측, 주가 예측을 들었습니다. 예전에는 포커게임은 운이 어느정도 작용하는 게임으로 생각했지만, 이 책에서는 상대방의 패를 보고 어느정도 확률을 예측할 수 있다고 말합니다. 충분히 동의합니다. 그리고 저는 여기에 전 프로게이머 였던 임요환이 이야기를 더하여 설득력을 증가시키고 싶습니다. 임요환은 이 기사에서 상대방의 패턴을 다음과 같이 파악하여 포커 우승을 하기도 하였습니다. (링크)

 

“상대의 패를 읽기 위해 활용할 수 있는 모든 걸 활용해야 한다. 저 선수가 강하게 공격적으로 계속 나올 때는 어떤 표정을 짓고 있는지, 카드는 똑바로 놨는지 약간 비켜놨는지 1%라도 정보를 얻기 위해 계속 관찰을 해야 한다” (기사의 내용중 발췌)

  임요환은 위의 과정을 통하여 자체 피드백이 되었을지도 모른다는 생각을 해보았습니다. 아니면, 고수로부터 경험을 듣고 본인이 적용했을지도 모르겠습니다.

 

수십 년 동안 한 가지 일을 하면서 전문가가 안 되는 비결이 있다면 이 타당성과 피드백이 부족한 환경에서 일하는 겁니다.
...
소프트웨어 개발은 어떨까요?
...
전반적으로 타당성도 낮고 피드백도 낮은 편이라고 생각합니다. 소프트웨어 개발 영역에서 일하는 사람에게는 안 좋은 이야기지요. 타당성과 피드백이 부족한 환경에서는 오래 일해도 전문성이 신장되지 않는다고 했으니까요.

  필자인 저도 중소기업에서 오랜 기간동안 멘토없이 일하면서, 현상유지만을 위한 개발과 유지보수를 하였습니다. 위의 인용글 타당성과 피드백이 부족한 환경에서 일하면서, 단지 유지보수만을 위하여 프로그램에 변화를 주었고, 이것이 타당함은 단지 프로그램 유지보수만을 위한 것이 었지 클린코드나 TDD같은 설계위주의 구현은 아니었기에 매우 비효율적이었습니다. 그리고 그 누구로부터도 피드백을 받지 못했습니다. 한마디로 암흑기 같은 생활이었고, 그것을 알면서도 개인적인 문제로 벗어나기 어려운 상황이었습니다.

 

  타당성을 높이려면 변수를 제한하고 실험을 하면서 규칙성과 인과관계를 찾으려는 노력을 하면 됩니다. 피드백을 높이려면 동료나 상사, 고객에게서, 혹은 내가 개발하는 프로그램에서 직접 피드백을 적극적으로 구하면 됩니다. 여러분은 이 두 가지를 높이기 위해 평소에 어떤 노력을 하고 계신가요?

  지금은 중소기업을 벗어나기는 했지만 최선의 환경은 아니라는 생각을 합니다. 그 만큼 변화를 유도할 수 있는 좋은 기회가 있는 곳이라고 생각을 합니다. 저자의 "어떤 노력을 하고 계신가요?"에 다음과 같은 노력을 하고 있습니다.

 1. 블로깅을 주기적으로 하려고 노력합니다.
    - 글을 쓰는 것이 쉽지는 않지만 생각정리와 동시에 다른 누군가에게 조금이라도 도움이 될 수 있음
    - 블로그가 많이 알려져 있지 않아, 피드백을 못 받을 수 있지만, 계속 나의 글쓰기 및 정리에 대해 실험할 수 있음
    
 2. TDD, Clean Code with Java 12기를 수료한 뒤, 제가 영향력을 발휘할 수 있는 영역내에서 실험을 진행하고 있습니다.
    - TDD의 긍정적인 면을 설명하고 함께할 수 있는 동료가 생겨 같이 리뷰를 진행
    - 사내 부분적으로 적용가능 영역에 TDD를 수행하려고 노력중
    - 예를 들면, 서비스 A를 실행하면 B상태가 되는 테스트 코드를 먼저 구현하여 실패를 먼저함
    - 그리고 프로덕션코드를 만들어 작게나마 실천 및 설계버릇 유지하려고 함
    - TDD를 수행하여, 좋은 점을 느끼는 사람이 생기면 타당성 상승 효과를 볼 수 있을 것으로 예상
    - 리뷰이와 커뮤니케이션을 잘 유지하여 추후에는 나에게 피드백을 해달라고 할 수 있도록 할 예정

 3. TIL(Today I Learned)를 유지하기 위해 Github에 1일 1커밋을 하려고 합니다.
    - 1일 1커밋 자체에 큰 의미를 두기 보다는 무엇가를 계속 시도하려는 동기부여에 목적을 둠
    - 이렇게 하면, 자연스럽게 다른 것을 하기 보다 개발자 본연의 것을 할 가능성이 높아짐
    - 구현 연습을 하는 것은 타당성을 높이기 위한 노력의 일부라고 생각함

  이렇게 하면 전문가까지는 아니어도 나와 같이 일하는 사람들과는 같이 성장할 수 있지 않을까 생각합니다.

  읽어 주셔서 감사합니다.