함께 자라기(애자일로 가는 길) 후기 및 정리


  • 김창준님의 함께 자라기(애자일로 가는 길)를 읽고 정리한 글입니다
    • 김창준님 발표를 전혀 들어보진 않았지만, 재미있게 읽었습니다
  • 나는 어떻게 하고 있는가? 우리 조직은? 등에 대해 고민할 수 있었습니다
    • 올해를 회고하기 전에 읽어서 정말 다행이네요!
    • 특히 1장의 내용이 정말 좋았습니다 :)
  • 성장, 코칭, 채용, 팀, 달인의 비결에 대한 내용이 계속 기억에 남네요
  • 김창준님 블로그에도 좋은 내용이 많이 있습니다


  • 서론
    • 내가 정말 자랄 수 있을까?
    • 우리가 정말 함께 자랄 수 있을까?
    • 우리가 정말 매일매일 함께 자랄 수 있을까?
    • 협력(우리) + 학습(자라다) + 접근 방법(매일매일)
    • 함께 자라기 : 애자일의 핵심

1장. 자라기

  • 자라기 : 학습
    • 상반된 의견이 넘치는 현실
    • 스스로 생각하는 훈련이 반드시 필요
  • 야생 학습
    • 현실에선 야생 학습이 더 많이 필요
    • 협력적
    • 비순차적
    • 자료에 한정 없음
    • 명확한 평가가 없음
    • 정답이 없음
    • 목표가 불분명하고 바뀌기도 함
  • 불확실성이 높을 경우일수록 학습이 중요
  • 학습 방법을 학습
  • 당신은 몇 년 차?
    • 개발자 가치 : 그 사람이 업계에서 얼마나 오래 살아남았는지로 결정
    • 직원을 뽑을 때 무엇이 그 사람의 실력을 잘 예측할까?
      • 미국 데이터로 메타 분석
        • 메타 분석 : 연구마다 편향과 오류가 있을 수 있기 때문에 여러 연구를 통합해 통계 분석하는 방법. 실험 연구보다 더 강한 증거력
      • 고려 변수별 직무 성과의 상관성
        • 작업 샘플 테스트(실제 해야되는 업무 테스트) : 0.54
        • 아이큐 같은 지능 테스트 : 0.51
        • 구조화된 인터뷰(모든 후보에게 같은 순서의 동일 질문) : 0.51
        • 성실성 같은 성격 테스트 0.41
        • 레퍼런스 체크 : 0.26
        • 연차 : 0.18
          • 경력이 얼마 되지않을 경우엔 연차의 상관성이 높음. 연차가 높아질수록 상관성이 낮아짐
          • 대학 갓 졸업자 vs 2년차는 후자의 실력이 높을 확률이 크지만 5년차와 10년차는 연차 차이가 의미 없음
        • 학력 : 0.10
        • 필체, 나이는 0에 가까움
      • 소프트웨어 개발에서 경력과 실력
        • 실력이 뛰어난 사람은 문제를 이해하는 데 시간을 적게 쓰는 것
      • 대부분의 영역에서 최소의 경험치만 넘어가면 경력 연수와 실제 직무 성과의 상관성이 낮음
      • 개발자의 경험이 얼마나 폭넓고 다양했는지가 실제 직무성과와 관련
        • 양적인 면이 아닌 질적인 면
      • 잘 뽑는 것 이상으로 중요한 것
        • 사람을 뽑고 어떻게 교육, 훈련시키고 성장시킬지 회사에선 고민하지 않는 경우가 많음
        • 시스템
      • 개발자들이 할 수 있는 것
        • (김창준님 예측) 소프트웨어 개발에서 점차 경력 연수를 중시하는 문화가 사라질 것이고 다른 것에도 신경을 써야 함
        • 의도적 수련
          • 자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련
        • 피드백을 짧은 주기로 얻는 것
          • 10분 후, 1시간 후, 하루 후, 일주일 후 등
        • 실수를 교정할 기회가 있는 것
        • 뛰어난 전문의 예시
          • 뛰어난 전문의는 진단시 자신이 무얼 생각하는지 많은 기록을 하고, 자신이 얼마나 정확한지 나중에 확인 ⇒ 동료들과 차별화하는 중요한 요소
          • 자신이 언제 어떻게 나아지고 있는지 잘 알 수 있음
  • 자기 계발은 복리로 돌아온다
    • 회고
      • 되짚어 보는 것 : 나 자신에게 얼마나 투자를 했나
      • 습득한 지식이나 능력은 복리로 이자가 붙음
    • 김창준님의 힌트
      • 자신이 이미 갖고 있는 것들을 잘 활용하기
        • 새로운 것만 유입시키지 말고, 그 지식을 얼마나 어떻게 활용하는지 반성
        • 이미 갖고 있는 것들을 하이퍼링크로 서로 촘촘히 연결. 노드 간 이동 속도가 빨라질 수 있도록 고속 도로를 놔라. 다양한 분야를 넘나들며 시너지 효과!
        • 새로운 것이 들어오면 이미 갖고 있는 것들과 충돌을 시도
        • 현재 내가 하는 일이 차후에 밑거름이 될 수 있도록 하라
      • 외부 물질을 체화하라
        • 주기적인 외부 자극을 받기
        • 외부 자극을 받고 재빨리 자기화
      • 자신을 개선하는 프로세스에 대해 생각해보기
        • A 작업을 되돌아보는 회고/반성 활동을 주기적으로 하기
        • 나를 개선하는 과정을 어떻게 개선할 수 있을지 고민
      • 피드백을 자주 받아라
        • 사이클 타임을 줄여라, 순환율을 높여라
        • 일찍, 그리고 자주 실패하기. 실패에서 학습하기
      • 자신의 능력을 높여주는 도구와 환경을 점진적으로 만들기
  • 학습 프레임과 실행 프레임
    • 실행 프레임 : 잘하기
      • 주어진 과업이 좋은 성과를 내는 것으로 인식
      • ex) 인정받아 다음 단계로 올라가냐에 관심
        • 목표가 학습을 통한 성장이면 이런 프레임은 좋지 않음
    • 학습 프레임 : 자라기
      • 주어진 과업을 내가 얼마나 배우느냐로 인식
    • 코딩 구루 이야기 : 입사 1년이 안된 두 사람의 선택, 행동, 반응이 다름
  • 가장 학습하기 힘든 직업이 살아남는다
    • 학습하기 힘든 환경과 주제
      • 목표가 모호하고 주관적, 동적
      • 매 순간 선택할 수 있는 행동/선택의 종류가 불확실
      • 매 순간 목표에 얼마나 근접했는지 알기 어려움(빠른 피드백이 어려움)
      • 열린 시스템에서 일함
      • 과거의 선택과 결과에 대해 구조화된 기록이 없음
    • 컴퓨터가 병목을 가지는 부분
      • 지각과 조작, 창의적 지능, 사회적 지능
      • 독창성 : 문제를 해결하는 창의적 방법
      • 사회적 민감성 : 타인의 반응을 알아차리고 왜 그렇게 반응하는지 이해
      • 협상 : 사람들을 화해시키고 서로 간 차이를 조정
      • 설득 : 다른 사람들의 마음이나 행동을 바꾸게 설득
      • 타인을 돕고 돌보기 : 타인에 대한 개인적 도움 제공
    • 무엇에 집중할 것인가
      • 딱 정해진 일만 할 수 있는 환경이 축복이 아닌 저주일 수 있음
      • 암묵지와 직관을 배우고 수련!
  • 달인이 되는 비결
    • 달인이 되려면 1) 실력을 개선하려는 동기가 있어야 하고 2) 구체적인 피드백을 적절한 시기에 받아야 함
  • 의도적 수련의 필수 조건, 적절한 난이도
    • 나의 실력와 난이도가 비슷해야 함
    • 비슷한 부분에서 몰입!
    • 업무 시간에서 불안함이나 지루함을 느끼는 때가 대부분이면 실력이 늘지 않는 환경에 있는 것
    • 팀장이 실력에 맞는 일을 주기보다 자신이 몰입할 수 있도록 전략을 세워야 함
    • 지루함을 느끼는 경우 : a1 실력 낮추기
      • 평상시 즐겨 쓰던 보조 도구를 사용하지 않기
    • 지루함을 느끼는 경우 : a2 난이도 높이기
      • 100rps면 되는 시스템을 1,000rps 기준으로 만들기
      • 익숙한 작업을 새로운 언어로 진행
      • 리팩토링, 자동화
      • 남들보다 일을 더 효율적/효과적으로 하기 위해 나만의 도구 방법!
    • 불안함을 느끼는 경우 : b2 실력 높이기
      • 사회적 접근
        • 나보다 뛰어난 전문가의 도움을 얻기
        • 짝 프로그래밍, 스택 오버플로우, 튜토리얼 문서
      • 도구적 접근
        • 내 능력을 확장시켜 줄 도구
        • Auto ML
      • 내관적 접근
        • 비슷한 일을 했던 경험을 머릿속에서 되살려보기
    • 불안함을 느끼는 경우 : b1 난이도 낮추기
      • 가장 간단하고 핵심적인 결과물, 프로토타입을 첫 목표로 삼기
      • 쉬운 작업을 먼저 하고 어려운 작업으로! 쉬운 작업을 먼저 할 경우 정확도가 높아진 비교 연구가 있음
    • 동적인 균형
      • 지속적으로 자신의 감정 상태를 살펴야 함
      • 메타인지 전략 : 알아차림(mindfulness)
    • 팀장이 할 수 있는 일
      • 팀장들에겐 팀원의 상태를 파악하고 그들이 몰입으로 가도록 도와주는 것이 의도적 수련일 수 있음
  • 프로그래밍 언어 배우기의 달인
    • 인지적 작업 분석(Cognitive Task Analysis), 역 엔지니어링(Reverse engineering)
    • 잘하는 사람이 어떻게 잘하는지 분석
    • 새로운 언어를 빠르게 배우던 S님의 비결
      • 1) 튜토리얼을 읽을 때 뭘 만들지 생각하고 읽음
        • 읽을 때 다음 작성할 프로그램을 염두
        • 작성할 수 있겠단 생각을 하면 코딩 시작
        • 프로그램 완성하면 다시 문서 읽음
        • 이런 방법을 적극적 읽기!
        • 첫 프로그램은 단어 개수 세기
          • 루프는 어떻게? 글자 하나를 읽으려면 어떻게? 출력은 어떻게? 라는 질문을 가지고 읽음
      • 2) 공부를 할 때 표준 라이브러리 소스코드를 읽음
        • 언어의 스타일!
        • 언어의 결을 배우고 따르는 것이 중요
      • 3) 공부 중 다른 사람의 코드에 내가 필요한 기능을 추가
        • 자신이 만들 수 있는 작고 간단한 추가 기능을 생각
        • 바로 적용
    • 전문가에게 답을 얻을 수 있는 방법 : 구체적 사건에 대해 말하도록 유도
  • 실수는 예방하는 것이 아니라 관리하는 것이다
    • 실수 예방 문화 : 실수를 하지 마라! 실수한 사람 비난
    • 실수 관리 문화
      • 실수가 나쁜 결과를 내기 전에 빨리 회복하도록 돕고, 실수를 공유하고 실수에 대해 서로 이야기하며 배움
      • 실수 관리 문화에 가까울수록 그 기업의 혁신 정도가 더 높음
      • 실수가 없으면 학습하지 못함
  • 뛰어난 선생에 대한 미신
    • 대부분의 훈련은 6개월 정도만 지나도 효과가 거의 사라짐
      • 복합적인 이유 : 학습자, 교사, 교육 방식과 내용, 조직 환경 등의 이유
      • 교육의 목적 : 학생이 ‘더 잘하게’ 도와주는 것
    • 인지적 작업 분석을 사용해보기
      • 선생 입장에서 “내가 이 문제를 해결할 때 어떤 과정을 거치는가”를 생각하며 질문, 분석
        • 그리고 학생들이 배우며 어떤 생각을 하는가 직접 관찰하고 질문을 던지고 분석
      • 이런 부분을 생각하며 다른 사람을 가르치거나 배우는 자리를 마련
  • 나홀로 전문가에 대한 미신
    • 고독한 천재? x
    • 전문가는 사회적 자본과 사회적 기술 또한 뛰어남
      • 뛰어난 개발자일수록 타인과 인터랙션에 더 많은 시간을 씀

2장. 함께

  • 소프트웨어 개발을 잘 관리하기 위한 3가지 근본적 능력
    • 1) 복잡한 상황을 이해하는 능력
      • 프로젝트를 계획한 다음 관찰하고 행동해 프로젝트를 진행되게 하거나 계획을 바꿀 수 있어야 함
    • 2) 관찰하는 능력
      • 무엇이 벌어지고 있는지를 관찰하고, 효과적인 적응 행동을 하기 위해 관찰한 것이 어떤 의미인지 이해할 수 있어야 함
    • 3) 행동하는 능력
      • 어려운 대인 상황에서 화나거나 숨고 싶을 때도 적절하게 행동해야 함
  • 짝 프로그래밍
    • 두 사람이 대화를 통해 추상화를 높임
    • 다른 사람과 협동하고 대화, 같이 그림도 그리고 소스 코드를 편집!
  • 신뢰를 깎는 공유인가 신뢰를 쌓는 공유인가
    • 신뢰 자산이 높은 조직은 커뮤니케이션 효율이나 생산성이 높음
    • 신뢰를 쌓을 때 사용되는 방법
      • 투명성과 공유, 인터랙션
      • 복수 공유
        • 하나 공유나 최고 공유는 “이 작업에 대해 흉을 보면 어쩌지?”라는 방어적 대응 전략을 생각해둠
          • 또한 상대의 시안을 솔직하게 말하면 “내가 한 말로 나를 싫어하면 어쩌지?”라고 생각할 수 있음
        • 복수 공유는 위에 나온 불안감이 상대적으로 적음
          • 여러 개를 준비했으니 하나를 까도 나에 대한 공격은 아님
          • 신뢰도 높아지고 성과도 좋음
  • 팀장 자리에 있으면 새로운 아이디어 전파가 쉬울 것이라고 생각하는 것은 환상
    • 상대방에 대해 이해하고, 많은 대화를 해야 함
  • 이것도 모르세요?
    • 공감하고 이해하려는 대화
      • (혹시 이 부분이 문제있으면 연락주세요!)
      • 이 부분은 링크 참고
      • 훌륭한 팀장이라면 그 사람의 사고 과정을 전략적으로 이해하려고 함
    • 행동을 유도하는 대화
  • 하향식 접근의 함정
    • 바텀업 : 탐색적인 성격
    • 대부분 탐다운 식으로 일함
    • 잘 정의된 문제(well-defined)와 잘 정의되지 않은(ill-defined) 문제에 따라 접근 방법이 다름
      • 어려운 문제는 탑다운과 버텀업을 섞어 씀
  • 전문가팀이 실패하는 이유
    • 전문가들 모아서 팀 만든다고 반드시 잘하는 것은 아님
    • 오히려 성과가 떨어질 수 있음
    • 정보 공유하고 협력을 잘하기 위한 명시적인 도움이 필요하며
    • 소셜 스킬 등이 뛰어난 제너럴리스트가 있으면 도움이 됨
  • 구글이 밝힌 탁월한 팀의 비밀
    • 팀에 누가 있는지보다 팀원들이 서로 어떻게 상호작용하고 자신의 일을 바라보는지가 중요
    • 심리적 안전감이 높은 예측력
    • 팀 토론 등 특별히 생긴 활동을 통해 심리적 안전감을 개선
      • 심리적 안전감 : 내 생각이나 의견, 질문, 걱정, 실수가 드러났을 때 처벌받거나 놀림받지 않을 거라는 믿음
  • 쾌속 학습팀
    • 리더가 팀 학습 속도에 미치는 영향
      • 단순히 기술적 탁월함만을 갖춘 사람보단 학습 환경을 만들 수 있는 리더가 필요
    • 학습 환경의 차이
      • 학습이 빠른 팀은 팀원을 뽑을 때 협동적으로 이루어짐(디자이너를 뽑을 때 개발자가 관여)
        • 단순 업무 수행 능력뿐만 아니라 다른 사람과 협력을 얼마나 잘하는지, 애매한 상황을 즐길 수 있는지, 자기보다 지위가 높은 사람에게도 자신있게 의견을 제안할 수 있는지 등을 보고 뽑음
      • 개개인이 새로운 기술을 획득해야 한다고 보지 않고, 함께 일하는 새로운 방법을 만들어야 한다고 생각
      • 심리적으로 보호가 되어야 함!

3장. 애자일

  • 협의의 애자일
    • 불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물
      • 더 짧은 주기로 피드백을 받고, 다양한 사람에게 피드백 받음
  • 광의의 애자일
    • 삶을 사는 방식까지 확장
    • 우리의 삶도 불확실하기 때문에 학습과 협력

이 글이 도움이 되셨다면 추천 클릭을 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza