Lee ByungTak

함께 자라기

함께 자라기

김창준님의 ‘함께 자라기’를 읽고 기억하고 싶은 부분 혹은 코멘트나 생각을 정리하고 싶은 부분 등 자유롭게 감상문을 적어보도록 하겠다.


1. 자라기

[가장 학습하기 힘든 직업이 살아남는다]

이 장에서 가장 감명 깊었던 내용은 ‘소프트웨어 개발자’와 ‘컴퓨터 프로그래머’의 비교 입니다. 이 둘의 차이점은 먼저, ‘컴퓨터 프로그래머’는 다른 사람이 준 스펙대로 개발하는 것을 주 업무로 하며 그 과정에서 협상, 설득이 크게 필요하지 않습니다. 반면 ‘소프트웨어 개발자’는 소프트웨어를 뭘 만들지를 고민하고 설계하는 부분이 포함되며, 그 과정에서 타인과 상호작용하는 업무가 많습니다. 그러면서, ‘컴퓨터 프로그래머’는 ‘소프트웨어 개발자’보다 컴퓨터가 대체할 가능성이 훨씬 높은 직군으로 분류 됩니다. 예상되겠지만, ‘소프트웨어 개발자’의 저런 스킬들은 컴퓨터가 쉽게 대체하기가 힘들다고 말합니다. 해당 직업에서 독창성, 사회적 민감성, 협상, 설득, 타인을 돕고 돌보기 같은 것들이 요구되는 수준이 높을수록 그 직업은 컴퓨터화하기 힘들다는 것 입니다.

[달인이 되는 비결]

의도적 수련이 필요하고, 이를 위해서

  • 실력을 개선하려는 동기가 있어야 한다.
  • 구체적인 피드백을 적절한 시기에 받아야 한다.

[전문성 형성에서 타당성과 피드백의 중요성]

  • 타당성
  • 피드백

타당성 조건이 필요하다는 것은 직관이 중요되는 영역에 어느 정도 인과관계와 규칙성이 존재한다는 것. 타당성을 높이기 위해 변수를 제한하고 실험 하면서 규칙성과 인과 관계를 찾으려는 노력을 해야 한다는 것. 자신의 내린 직관적 판단에 대한 피드백을 받고 개선하려는 노력이 중요하다는 것. 피드백을 받고 무엇이 부족한지 판단하고 개선하려는 노력이 필요하다는 것. 전문가가 되기 위해 이 두가지를 실천하고자 하는 노력이 필요하다.

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

의도적 수련의 또 다른 조건

  • 적절한 난이도

또 다른 조건은 ‘적절한 난이도’ 이다. 적절한 난이도로 학습해야 몰입감이 생기고 학습능력이 최대치가 될 수 있다는 것(자세한 것은 p62-p72). 또한, 이를 위해서는 자기가 어떤 상태인지 살피는 ‘알아차림’이 꼭 필요하다는 것.

[뛰어난 선생에 대한 미신]

‘선생이 그 문제를 푼 인지적 과정 자체를 알려달라고 요청할 수도 있겠죠.’ 라는 구문이 있다. 누군가에게 코드에 대해 토론하고 설명해주기를 원할때 사용하면 좋을 것 같은 전략이다. 단순히 물어보는게 아니라 인지 과정과 의도를 물어보는 것.

[나홀로 전문가에 대한 미신]

이번 장 가장 감명 깊은 장. 사회적 자본과 기술이 중요하다는 것이다. 그래서 ‘사회적 자본과 기술’이란 것이 무엇인가? 나름대로 정의를 내려보자면 사회적 신뢰, 신뢰 구축 정도로 볼 수 있겠다. 책의 예시를 통해, ‘신뢰가 깨어져 있는 상태 에서는 어떤 행동을 해도 악의적으로 보인다’ 라는 스토리르 보여줍니다. 즉, 논리나 옳고 그름이 중요한 것이 아니라 ‘신뢰’가 중요하다는 것. 개발자에게도 신뢰 를 쌓는 기술이 필요하다는 것이다. 실제로 뛰어난 전문가들이 고독할 것이라는 미신이다. 뛰어난 개발자 일수록 타인과 인터랙션에 더 많은 시간을 보낸다는 것이다. 또한, 사회적 자본과 기술이 없이 해당 도메인 식만 배우는 것은 좋지 못하다는 것이다. 다행히 이러한 기술은 개선 가능하다는 것이다. 주변 사람들과 매일 주고받는 마이크로 인터랙션(일상적이고 소소 하고 빈번한 상호작용)에 신경을 쓰는것이다.


2. 함께

[협력을 통한 추상화]

다른 사람과 협동하고 대화하면서 코드의 추상성을 높이자.

[신뢰를 깍는 공유인가 신뢰를 쌓는 공유인가]

복수 공유룰 통해 상호간 신뢰성을 높이자.

[객관성의 주관성]

평소 커뮤니케이션에 대한 내 생각에 대한 확신을 갖게 되는 장 이였던 것 같다. 커뮤니케이션에서 중요한 것은 논리나 객관이 아니라 신뢰라는 것이다. 신뢰가 뒤틀어지면 논리도 소용없다. 결국 의사 결정을 하는 것은 사람이고 사람이기 때문에 감정을 배제할 수 없는 것이다. 평소 상대방에 대한 이해와 대화를 통해 신뢰를 쌓는게 커뮤니케이션에 가장 중요한 것 같다.

[이것도 모르세요?]

성장하는 팀은 서로의 문제를 공감하고 의지를 붇 돋아주며 성장을 위해 돕는다.

[구글이 밝힌 탁월한 팀의 비밀]

  • 팀에 누가있는지 보다 팀원들이 서로 어떻게 상호작용하고 자신의 일을 어떻게 바라보는지가 훨씬 중요했다
  • 5가지 성공적 팀의 특징을 찾았는데, 그중 앞도적으로 높은 예측력을 보인 변수는 팀의 심리적 안정감이었다.
  • 팀 토론 등 특별히 고안된 활동을 통해 심리적 안정감을 개선할 수 있었다.

[쾌속학습팀]

팀의 빠른 학습속도를 결정짓는 것 중 중요한 것은 리더. 리더의 가치관 성향에 따라 팀의 학습속도가 달라질 수 있다. 즉, 기술적 탁월함만 갖춘 사람보다는 학습 환경을 만들 려는 리더가 필요하다. 학습 속도가 빠른 팀은 새로운 기술의 도입을 개개인의 도전이 아닌 조직적 도전으로 받아 들인다. 개개인이 새로운 기술을 획득해야 한다 생각하지 않고 함께 일하는 새로운 방법을 만들어야 한다고 생각한다. 또한, 속도가 빠른 팀은 심리적 보호감이 강하다.

[프로젝트 확률론]

관심사의 섞임. 애자일은 고전적 방법과 달리 일을 공유한다. 각자 일을 매일 공유하고 내 일, 네 일의 구분을 두지 않고 되도록 사람들이 섞이도록 한다. 내가 일을 빨리 끝내면, 밀려 있는 팀원들을 도울 수 있다. 병목이 확연히 보이기 때문에. 서로 새롭게 알게 된 것을 공유하고 각자의 일에 도움이 될 수 있도록 한다. 애자일은 좋은 일에 대해서는 ‘그리고’ 확률을 ‘또는’ 확률로 바꾸고, 나쁜 일에 대해서는 ‘또는’ 확율을 ‘그리고’ 확률로 바꾸는 경향이 있다.


3. 애자일

애자일의 핵심 구동원리는 학습과 협력, 즉 함께(협력) 자라기(학습) 이다. 학습과 협력은 불확실성이 큰 상황에서 좋은 대응 전략이다.

[에자일의 씨앗]

‘고객에게 매일 가치를 전하라’

[애자일 도입 성공 요인 분석]

  1. 실천법 중에서 비교적 성공과 직결되는 것들이 존재한다. 그것은 고객 참여, 리팩터링, 코딩 후 자동화 단위 테스트 붙이기, 코드 공유 등이다.
  2. 애자일 성숙도가 낮은 조직일수록 고객 참여를 하지 않으면 프로젝트 성공이 어렵다.
  3. 뛰어난 애자일 코치가 있는 것이 애자일 도입 성공에 핵심적이다.
  4. 뛰어난 애자일 코치는 함께 자란다.

[애자일을 애자일스럽게 도입하기]

애자일은 불확실성에 대비한 접근법이다. 확실성 위에서 진행하려고 하면 문제가 생긴다. 애자일 방법론을 할 때 뭘 해야 할지 명확하게 알려달라는 것은 옳지 못하다. 탐색하는 과정 자체가 애자일 적인 것이기 때문이다. 사람들과 주변을 탐색하고 조금 나아가고 확인하기를 반복하면서 우리의 현 ‘맥락’에 맞는 좋은 전략들을 스스로 만들어 나가는 것이다. 이 과정에서 함께 자라기가 귀중한 나침반이 될 것 이다.

최근 ‘메타인지’에 관한 강의를 들으니 함께 자라기가 생각난다. 메타인지란 무엇을 알고 무엇을 모르는지. 즉, 얼마나 아는지에 대한 판단 인식, 혹은 인지 과정이다. 종종 모르는 것도 알 수 있다고 착각하는 것은 메타인지 관점에서 그 상황이 친숙하기 때문이다. 강의를 듣다보니 내가 아는 지식에 대한 반성을 하게 되었다. 그 동안 사용해왔던 기술에 대해서, 익숙하고 친숙해서 그 지식을 알고있다는 착각 말이다. 메타인지 능력 향상을 위한 방법 중 하나로 ‘설명’이 있다. 설명을 하다보면 자신이 무엇을 알고 무엇을 모르는지 정리하게 된다. 그 과정에서 새로운 의문 들도 생기고 답을 찾아가며 지식이 더 확고해지거나 평소에 몰랐던 것들이 해결 되기도 한다. 함께 자라기 책 중에서 보통 뛰어난 프로그래머들은 커뮤니케이션 능력도 뛰어 나다는 글이 있었는데, 동료 혹은 비전공자에게 설명을 하다 보니 새로운 지식도 깨닫고 더 확고하게 알게 되었기 때문이 아닐까 싶다. 인지심리학자들이 좋아하는 말 중에 이런 내용이 있다. “세상에는 두 가지 종류의 지식이 있다. 첫 번째는 내가 알고 있다는 느낌은 있는데 설명할 수는 없는 지식이고 두 번째는 내가 알고 있다는 느낌뿐만 아니라 남들에게 설명할 수도 있는 지식이다. 두 번째 지식만 진짜 지식이며 내가 쓸 수 있는 지식이다.” 설명 과정의 핵심에는 설명하고자 하는 대상에 대한 본질적 이해가 있어야 한다. 이해가 수반되지 않으면 설명은 불가능한 것이다. 나 역시 설명을 잘할 수 있는 개발자가 되어야 겠다고 생각한 강의다. 지식을 점검해보고 누군가에게 설명할 수 있는 확고한 지식을 갖추도록 노력해야겠다.