본문 바로가기
독서 정산

[독서정산] 함께 자라기 - 애자일로 가는 길

by kdohyeon (김대니) 2023. 3. 1.
반응형

다른 분의 블로그를 보다가 우연히 "함께 자라기 - 애자일로 가는 길" 이라는 책에 대해 알게 되었고, 그 분께서 작성하신 책 리뷰를 읽게 되었습니다. 개발자로 성장함에 있어 어떤 방식으로 생각해 나가야 하는지에 대해 알 수 있을 것 같아 책을 구매하여 읽기 시작했습니다. 아래는 요약본과 저의 개인적인 느낀점, 생각이 포함되어 있습니다.


짧은 요약

  • 무엇보다도 개발자의 실력이 중요하다. (경력 연차의 함정에 빠지지 말자.)
  • 자신이 부족한 부분에 대해 꾸준히, 지속적으로 학습을 해나가야 한다.
  • 뛰어난 개발자는 커뮤니케이션과 협력에 많은 시간을 투자한다.
  • 애자일은 매일 고객에게 가치를 전하는 업무 프로세스이다.

1. 자라기

  • "스스로 생각하는 훈련을 해나가야 한다."
  • "학교 학습과는 반대 되는 개념으로 야생 학습이 있다고 말합니다."
  • "학습의 본의는 야생 학습에 더 가깝다고 생각한다."
야생 학습과 학교 학습
야생 학습은 대부분 협력적, 비순차적, 자료에 한정이 없으며, 명확한 평가가 없다. 정답이 없으며 목표가 불분명하고 바뀌기도 한다. 반대로 학교 학습은 개별적이고, 공부의 순서가 정해져있고, 시험이라는 명확한 평가 기준이 있다. 정답이 보통 정해져있으며 합격, 자격증과 같은 목표가 분명하다.

당신은 몇 년차?

경력, 그 견딜 수 없는 무거움

  • "강한 놈이 오래 가는 게 아니라 살아 남는 놈이 강한 것이다" 라는 말도 있듯이, 일반적으로 "소프트웨어 기술자" (개발자를 의미하는 듯함) 는 경력 연차를 기준으로 개발자의 등급이 메겨진다고 생각한다. 
  • 하지만 경력 연차는 이 사람이 초급인지 아닌지에 대한 정보만 기대할 수 있으며 초급이 아닌 사람들에 대해서는 오히려 혼동을 불러일으킬 수 있다. 따라서 경력 연차로 채용 여부, 임금 수준을 결정하는 것은 조직에 손해를 졸 수 있는 방식이다.

직원을 뽑을 때 무엇이 그 사람의 실력을 가장 잘 예측할까?

  • 직무 성과와 높은 상관성을 보이는 factor 를 분석한 연구에서는 경력 연차를 0.18의 상관성, 학력은 0.10의 상관성을 보인다고 했다. 상관성이 0.20 이하이면 사회과학 분야에서는 약한 상관성이라고 말한다. (상관성은 -1.0 과 +1.0 사잇값이 되는데 0 에 가까우면 상관성이 없고, 1.0 또는 -1.0 에 가까우면 상관성이 높다고 말함.)
  • 높은 상관성을 보이는 factor 는 작업 샘플 테스트 (i.e., 실제로 채용 후 해야 할 작업의 일부를 해보는 테스트)가 0.54, 아이큐 지능 테스트 0.51, 구조화된 인터뷰가 0.51 이었다. 또한, 성실성, 꼼꼼함과 같은 성격 테스트도 0.41, 0.31 의 상관성이 있었다. 레퍼런스 체크도 0.26 의 상관성을 보이며 경력 연차보다 높았다.
  • 경력 연차 라는 factor 는 연차가 낮은 후보자를 판단할 때는 중요하게 작용한다. 갓 졸업한 대학생 vs. 2년차 개발자의 실력을 판단하기엔 좋지만 5년차 개발자 vs. 10년차 개발자 사이에서는 크게 중요하지 않다.

소프트웨어 개발에서 경력과 실력

  • 최소 한도의 경험치만 넘어가면 경력 연수와 실제 직무 성과의 상관성이 생각보다 낮다.
  • 실력을 높이기 위해서는 단순히 경력 연차를 쌓을 것이 아니라 폭넓고 다양한 경험을 하는 것이 중요하다.

중요하다고 생각하는 것이 중요하지 않다.

  • 좋은 사람을 뽑기 위해서는 구조화된 인터뷰 (행동중심적, e.g., 지난 프로젝트에서 동료가 어려움을 겪을 때 어떤 행동을 하셨는지 구체적인 예를 들어주세요.), 실제 작업을 해보도록 하는 작업 샘플 테스트, 실제 업무를 부여하고 시험적으로 짧은 기간 동안 일을 해보게 하는 것이 중요하다.

잘 뽑는 것 이상으로 중요한 것

  • 사람을 뽑는 것 그 이상으로 중요한 것은 이미 뽑은 사람을 어떻게 할 것인가?
  • 회사의 조직 문화도 개인의 성장에 있어 중요한 역할을 한다.

개발자들이 할 수 있는 것

  • 자신의 기량을 향상시킬 목적으로 반복적으로 수련해야 한다. (의도적 수련이라고도 함)
  • 기량을 향상시키기 위해서는 짧은 주기의 피드백을 받는 것과 실수를 교정할 수 있는 기회가 있는 것이 중요하다.

자기계발은 복리로 돌아온다.

  • 지식이나 능력은 복리로 이자가 붙는다.

복리의 비밀

  • "우리가 더 잘하는 것을 더 잘하게 될수록 우리는 더 잘하는걸 더 잘 그리고 더 빨리하게 될 것이다"
회사 업무를 하면서도 느낀 것인데, 처음에는 시간이 오래 걸리지만 작업을 수행하면서 프론트엔드 공통 콤포넌트가 생기고, 백엔드 프로젝트 구조가 잘 잡히게 되면 새로운 프로젝트, 기능에 대해서는 그만큼 시간이 소요되지 않았다. 그렇게 때문에 초기에 잘 설계를 해두는 것이 중요하다. 그렇다고 해서 미래에 발생할 모든 문제점을 고려한 설계를 할 순 없다. 유연하고 확장에 용이한 설계를 지향하는 것이 중요하다고 생각한다.
  • 자신이 이미 갖고 있는 것을 잘 활용하고, 외부 물질을 체화하는 것이 중요하다. 또한, 피드백을 자주 받고 자신을 개선하는 프로세스에 대해 생각해보아야 한다. 

학습 프레임과 실행 프레임

  • 학습 프레임: "내가 안 그려 보았던 방식들을 실험해보는 시간이니, 여러 가지 방식을 실햄해보자" > 자라기에 초점
  • 실행 프레임: "얼마나 그림을 잘 그리는지 보자" > 잘하기에 초점
  • 학습을 통한 성장을 목표로 한다면 실행 프레임은 불리한 선택이다.

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

학습에 유리한 조건, 불리한 조건

  • 배우기 힘든 것에 집중해야 한다. 

컴퓨터로 대체되기 힘든 일

  • 독창성, 사회적 민감성, 협상, 설득, 타인을 돕고 돌보기
  • Software Developer 는 대체되기 어렵지만 Computer Programmer 는 대체될 확률이 크다.
  • Software Developer 란 비즈니스 문제를 해결하기 위해 무엇을 만들지 고민하고 설계하는 부분이 포함되며 그 과정에서 타인과 상호작용하는 업무가 많다. 

무엇에 집중할 것인가?

  • 자신이 주로 하는 일이 남이 시킨 대로 혼자 프로그램을 만드는 것이라면 그런 스킬과 경력만 계속 쌓일 것이다. 혼자서 딱 정해진 일만 할 수 있는 환경은 축복이 아니라 저주가 될 수 있따.

달인이 되는 비결

  • 자신이 10년 넘게 해온 것 중에 전문성이 실제로 높아진 역량은 무엇이고, 거의 변화가 없는 것은 무엇일까?
  • 꾸준한 반복으로 달인이 되려면 실력을 개선하려는 동기가 있어야 하고, 구체적인 피드백을 적절한 시기에 받아야 한다.
특정 영역에서 개인이 성취할 수 있는 최고 수준의 퍼포먼스는 경험을 오래한다고 해서 자동으로 얻을 수 있는 것은 아니다.

수십 년 동안 전문가가 안 되는 비결

  • 믿을 수 있는 직관이 형성되려면 타당성과 피드백이라는 조건이 필요하다.
  • 타당성의 의미는 어느 정도의 인과관계와 규칙성이 존재해야 한다.
  • 피드백의 의미는 자신이 내린 직관적 판단에 대해 빠른 피드백을 받고 학습할 기회가 주어져야 한다.

당신이 제자리걸음인 이유

  • 실력을 높이기 위해서는 의도적 수련이 중요한데, 실력과 작업의 난이도가 비슷해야 한다. 작업 난이도가 너무 낮으면 지루함을, 너무 높으면 불안함/두려움을 느낀다. 어느 정도 잘 맞으면 몰입을 경험할 수 있다.
  • 자신이 업무 시간 중에 불안함이나 지루함을 느끼는 때가 대부분이라면, 실력이 도무지 늘지 않는 환경에 있는 것이다.
  • 지루함을 느끼는 경우에는 조금 더 높은 수준의 업무에 도전하고, 불안함을 느끼는 경우에는 가장 간단하면서 핵심적인 결과물을 첫 번째 목표로 삼아 난이도를 낮추는 것이다.

팀장이 할 수 있는 일

  • 몰입 영역 밖으로 팀원들을 몰아내는 행동을 하지 말아야 한다.

실수는 예방하는 것이 아니라 관리하는 것이다.

  • 실수는 어떠한 행동이 있고 결과가 발생하기 전에 나타날 수 있다 (행동 > (실수) > 결과). 실수를 미연에 방지하거나 실수가 발생하더라도 빠른 사후 대처가 필요하다. 
  • 실수가 발생했을 때 빨리 회복하도록 돕고, 실수를 공개하고 실수에 대해 서로 이야기하고 거기에서 배우는 문화를 만들어야 한다.
  • 오답 노트처럼 실수 관리를 잘 해야 이로부터 더 좋은 학습을 할 수 있다.

뛰어난 선생에 대한 미신

  • 교육은 투입으로 성과를 측정한다. 교육을 받고 나면 열심히 받아서 배운 것이 많다고 느끼지만 막상 6개월만 지나도 그 효과는 대부분 사라진다.
  • 지식이 많은 사람이라고 해서 꼭 좋은 선생이라고 할 수 없고, 지식이 많은 사람에게 배웠다고 해서 실력이 꼭 느는 것은 아니다.

나홀로 전문가에 대한 미신

  • 아무리 기술적인 실천법이라고 해도, 그 기술은 사회적 맥락 속에서 실천되어야 하며, 그 기술의 성공을 위해서는 사회적 자본과 사회적 기술이 함께 필요하다.
  • 뛰어난 소프트웨어 개발자일수록 타인과 인터랙션에 더 많은 시간을 쓰며, 그저 그런 개발자들은 동료와의 협업을 크게 언급하지 않았다.

2. 함께

협력을 통한 추상화

  • 뛰어난 개발자는 커뮤니케이션과 협력에 더 오랜 시간을 들인다.
  • 추상화를 하고 혼자 고민하지 말고 다른 사람들과 협동하고 대화해야 한다. 그림도 같이 그리고 소스코드도 함께 편집해야 한다. 대화는 기적이다.
  • 신뢰 자산이 높은 조직은 커뮤니케이션 효율이나 생산성이 높다.

이것도 모르세요?

  • 누군가가 질문을 했는데, "이것도 모르세요?" 방식의 답변은 절대 금물이다.
신입 때를 돌이켜보면 시니어 개발자분들이 모두 물어본 질문에 성심성의껏 잘 알려주셨다. 물어본 개념에 대해서는 물론이거니와 앞으로 개발자로 어떻게 성장해야 하는지, 공부는 어떻게 해야 하는지, 다양한 방면으로 하나를 물어보면 열을 알려주시는 고마우신 분들이 많았다. 그 때, "이것도 모르세요?", "찾아보셨나요?" 등 차가운 답변을 받았더라면 지금의 나는 달랐을 지도 모르겠다. 나도 누군가에게 도움이 될 수 있는 사람이 되면 좋겠다.

전문가 팀이 실패하는 이유

  • 전문가를 모아서 팀 만든다고 잘하는 것 아니고, 오히려 성과가 떨어질 수 있다. 정보 공유하고 협력을 잘하기 위한 명시적인 도움이 필요하며, 소셜 스킬 등이 뛰어난 제너럴리스트가 있으면 도움이 된다.

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

  • 팀에 누가 있는지보다 팀원들이 서로 어떻게 상호작용하고 자신의 일을 어떻게 바라보는지가 훨씬 중요하다.
  • 5가지 성공적 팀의 특징을 찾았는데, 그 중 압도적으로 높은 예측력을 보인 변수는 팀의 심리적 안전감이다.
  • 팀 토론 등 특별히 고안된 활동을 통해 심리적 안전감을 개선할 수 있다.
  • 여기서 이야기하는 심리적 안전감은 내 생각이나 의견, 질문, 걱정, 혹은 실수가 드러났을 때 처벌받거나 놀림받지 않을 거라는 믿음을 뜻한다.

3. 애자일

고객에게 매일 가치를 전하라
반응형

댓글