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

[#7] 당신이 제자리걸음인 이유

지상낙원 2022. 2. 9. 04:38

※ 빨간색 글씨 : 책속 내용 중 중요하다고 생각하는 것
※ 파란색 글씨 : 제가 쓴 내용 중 중요하다고 생각하는 것

"약 3분 정도 진행되었죠. 브루스가 그분을 땅에 쓰러뜨리고는 말했어요. '이제 포기하시겠어요?' 이제 포기하시겠어요?' 그러자 그 남자가 '포기합니다.'라고 했죠. 그러고 그들 일행은 샌프란시스코로 돌아갔어요. 하지만 브루스는 무진장 화가 났어요. 3분이 되기 전에 그 사람을 쓰러뜨리지 못했다고요. 하하하 그때부터였죠. 브루스가 자신의 육체적 건강 수준과 무술 방식에 대해 회의를 품기 시작한 게"
- How Bruce Lee Changed the World, 디스커버리 채널 방영, 2009.

  실제 궁금해서 찾아보았습니다. 해당 영상의 40:19초부터 해설자가 이야기한 뒤, 브루스 리의 아내인 린다 리가 해당 에피소드를 이야기하는 것을 들으실 수 있을 것입니다.

  제가 초점을 맞춘 부분은 에피소드도 흥미롭지만, "3분이 되기 전에"라는 문구에 집중하였습니다. 브루스 리는 쓰러뜨리는 목표에서 더 나아가 더 빨리 쓰러뜨리는 데 집중하였다는 것입니다. 아마도 브루스 리는 본인의 실력이 "3분이 되기 전에" 상대방을 쓰러뜨리기에는 변화가 필요하다고 생각한 것 같습니다. 그래서 그는 파이팅 및 트레이닝 방법을 되돌아보고, 강도 높은 훈련을 하기 시작했던 겁니다.

  저자는 브루스 리가 택한 전략을 "a2 난이도 높이기"로 보았는데요. 저자는 브루스 리가 무술을 너무 잘하기 때문에 지루하다고 생각해서 자신만의 제약인 "3분이 되기 전에"을 추가한 것으로 썼는데요. 관점에 따라 다르게 생각할 수 있을 것 같습니다. 브루스 리가 "3분이 되기 전에" 상대방을 쓰러뜨리기에는 실력이 부족하다고 생각되어, 실력 향상을 위해 훈련을 시작했다고 하면 "b2 실력 높이기"로도 볼 수도 있을 것 같습니다.

  실력을 높이기 위해서는 '의도적 수련(Deliberate Practice)'이 중요합니다. 의도적 수련이라는 용어가 어색할 수는 있지만 전문성 획득에 있어 연습의 중요성은 대중서적과 매체를 통해 널리 알려진 것 같습니다. 안타까운 점이 있다면 의도적 수련의 양적인 부분(예컨대 '1만 시간 법칙' 등)은 많이들 알겠지만 의도적 수련의 질적인 부분, 즉 어떤 조건을 갖춰야 의도적 수련이 되는지, 더 효과적인 의도적 수련이 되기 위해서는 어떠해야 하는지 등에 대해서는 잘 모르는 것 같다는 점입니다.

 

미하이의 단순화된 도식

  위 그림은 미국의 심리학자인 미하이 칙센트미하이(Mihaly Csikzentmihalyi)의 작업 난이도와 실력의 상관관계를 나타낸 도식입니다. 쉽게 설명해 드리면, 다음과 같습니다.

  • A영역 : 너무 쉬운 일을 하고 있어서, 지루함을 느낌
    - 계속 이 일을 한다면, 실력은 그대로인 상황이면서, (물)경력만 쌓일 것임
    - ex) 단순 반복적으로 수동 배치 처리, 애플리케이션이 작동 불가하면 재기동을 반복

  • B영역 : 너무 어려운 일을 하고 있어서, 불안함을 느낌
    - 오늘도 무슨 말인지 모르겠는데, 내일도 또 다른 것을 배워야 한다면, 밑 빠진 독에 물 붓기가 될 것임
    - ex) 자바를 모르는데 JPA를 공부, 코틀린과 안드로이드가 처음인데 코틀린과 안드로이드를 동시에 학습하기
  • C영역 : 쉽지는 않지만, 이거 내가 조금 하면 해볼 수 있을 것 같은 느낌
    - 내가 조금만 하면 해결할 수 있다는 생각에 계속하여 관심을 가지게 되면서 집중하게 됨
    - 결국, 해결을 하게 되면 성장함을 느껴 자아실현을 이룰 수 있음
    - ex) 자바 경험이 쌓인 상태에서 "이펙티브 자바" 정독

  최근 저의 C영역의 경험을 이야기해드리겠습니다. 저는 매일 Leetcode사이트에서 한 개 이상의 문제 풀이를 하려고 하는데요. Leetcode 문제의 난이도는 easy, medium, hard 이렇게 존재합니다. easy의 문제는 조금만 생각하면 쉽게 풀 수 이는 난이도이지만, medium만 되어도 풀어본 문제가 아니라면 생각할 시간이 매우 필요합니다. 이때, 풀 수 있겠다는 직감이 들면, Brute Force 하게라도 여러 시도를 해봅니다. 저는 여기서 "풀 수 있겠다는 직감"을 5분 이내로 결정하는 것 같습니다. 이 "풀 수 있겠다는 직감" 같은 것이 흥미를 느끼게 하면서, 최고 수준의 집중을 하게 된다고 생각합니다.

  이 "풀 수 있겠다는 직감"을 저자는 "적절한 난이도"라고 표현합니다. 결국 학습하는 각자는 이 "적절한 난이도"를 찾아야 하는 것입니다. 사실 이것을 찾으려면 메타인지(알아차림 - mindfulness)가 되어야 한다고 생각합니다. 내가 이것을 어떤 문제에 대한 난이도 판단은 본인이 가장 잘 알기 때문입니다.

  본인의 하루가 불안하거나 지루한 때가 대부분이라면 이 전략들을 사용해야 합니다. 문제는 해야 하나 말아야 하냐가 아닙니다. 이런 전략을 써야 합니다. 그러지 않으면 실력이 제자리걸음일 수밖에 없습니다. 핵심은 어떻게 하냐입니다.

실력향상을 위한 전략에 따른 흐름

  위의 도표는 책의 내용을 기반으로 아래와 같이 정리할 수 있을 것 같습니다.

  • 지루함을 느끼는 경우
    • a1 실력 낮추기
      • 키보드로만 개발하기
      • 디버거를 썼다면 쓰지 않기
      • 컴파일 주기를 늘려보기

    • a2 난이도 높이기
      • 브루스 리가 했던 것처럼 자신만의 제약 추가
      • 100 rps 시스템을 1000 rps로 업그레이드
      • 익숙한 작업을 새로운 언어로 진행하기
      • 리팩터링 또는 자동화 테스트 환경 구성
      • 남들보다 일을 좀 더 효율적/효과적으로 하기 위해 내가 직접 만들어 쓰는 나만의 도구 · 방법 고안하기

  • 불안함을 느끼는 경우
    • b1 난이도 낮추기
      • "동작할 수도 있는 가장 간단한 건 뭘까?"를 생각해보기

    • b2 실력 높이기
      • 독서, 스터디, 교육 수강
      • 짝 프로그래밍
      • 좋은 디버거, IDE 환경, 코드 분석 툴
      • 유사경험 해결방법

 

  한 연구에서는 피실험자를 A그룹과 B 그룹으로 나누어 A 그룹은 어려운 코딩 문제를 먼저 풀게 한 다음 쉬운 문제를 풀게 했고, 반대로 B그룹은 쉬운 문제를 먼저 풀고 어려운 문제를 풀게 했습니다. 두 그룹은 서로 순서만 다르지 동일한 문제를 풀었습니다. 결과는 어땠을까요?
...
결함 수에 엄청난 차이가 있었습니다. B 그룹이 A  그룹보다 절반 이하의 결함을 만들었습니다. 난이도를 낮춘 결과 학습효과, 동기 강화, 스트레스 감소, 자기 효능감 증가 등의 긍정적인 효과가 생겨 이득을 얻은 것으로 볼 수 있습니다. 유사한 연구로 유지보수 작업에서 어려운 작업을 먼저 시작하냐, 쉬운 작업을 먼저 시작하냐에 따른 수행 시간과 정확도 비교 연구에 따르면 쉬운 작업을 먼저 할 경우 수행 시간 차이는 없으나 정확도가 높아졌습니다.

  위 실험 내용은 난이도가 다른 문제의 순서를 어떻게 배치하냐에 따라 결함(실수)의 개수의 차이를 만들어 내는 것을 보여주고 있습니다. 정확도가 높아진 원인이 동기 강화, 스트레스 감소 등이 보입니다. 결국 어떤 문제를 해결함에 있어서 심리적 요인도 중요함을 알려주는 실험이라고 생각되었습니다. 결론적으로 "정확한(긍정적인) 결과를 위해서는 쉬운 문제를 먼저 해결하기"라는 뜻으로 이해를 했습니다.

  사실 되게 이 실험이 제 가져왔던 생각을 바꾸어 주었습니다. 전에는 어려운 것을 풀면, 도전정신이 생겨서 더 열심히 할 것이라는 생각을 가지고 있었는데요. 도전정신을 통한 열정보다 정확성이 중요한 업무라면 쉬운 문제를 먼저 풀어야겠다는 생각이 들었습니다.

  기본적으로 앞의 내용은 전문가가 되길 원하는 사람이 개인적으로 적용하는 것을 설명했지만, 다른 사람을 관리하는 사람도 동일 내용을 응용할 수 있습니다.
  팀원들이 현재 어떤 상태를 주로 경험하고 있는지 파악하고 적절한 전략을 구사하게 도와줄 수 있습니다. 
...
(중략)
...
  하지만 안타깝게도 정반대의 행동을 하는 팀장들을 더 자주 봤습니다. 몰입 영역 밖으로 팀원들을 몰아내는 행동을 하는 거죠. 예를 들어 실력보다 낮은 난이도의 일을 해서 지루함을 느끼는 직원에게 동기 고취 차원에서 스터디를 시키거나 콘퍼런스에 보내서 실력을 더 높이게 하는 것, 혹은 실력보다 높은 난이도의 일을 해서 불안함을 느끼는 직원에게 핀잔을 줘서 인지하는 실력을 더 떨어뜨리거나, 진행 안 되는 일들의 문제를 분석해서 보고서를 제출하라는 추가 업무로 난이도를 더 높이거나 하는 것 등이죠.

  항상 느끼는 것이지만 좋은 팀장 되는 것은 어려운 것 같습니다. 이런 사례를 보면서 반면교사로서 이렇게 하지 말아야 함을 생각합니다. 

팀장들에게는 원의 상태를 파악하고 그들이 몰입으로 가게 도와주는 것 자체가 고도의 의도적 수련이 될 수도 있겠습니다.

  그들이 몰입으로 가게 도와주기 위해서 저와 일하는 팀원들과 대화를 계속적으로 하고 저 또한 피드백을 받아서 개선하기 위한 노력을 게을리하지 말아야겠습니다.