목차
- 자라기
- 함께
- 애자일
자라기
당신은 몇 년차?
무엇이 소프트웨어 기술자의 등급을 판가름할까?
- 한국소프트웨어산업협회에서는 [학력 + 경력 + 자격]을 본다
경험이 길수록 잘하는 개발자일까?
- 그렇지 않다
- 경력 연차만으로 이 사람이 초급인지 고급인지 알 수 없다
그렇다면 직원을 뽑을때 무엇을 기준으로 그 사람의 실력을 예측할 수 있을까?
- 존 헌터와 프랭크 슈미트의 연구
- 채용시 가장 효과적인 예측변수가 무엇인지?
- = 즉, 사람을 뽑을때 무엇을 봐야 잘 뽑았다 소문이 나는지에 대한 연구
- = 채용시 선발 여부를 고려하는 변수와 직무 성과라는 변수간에 상관성에 대한 연구
상관성이란
- 하나가 변하면 다른 하나가 변하는지 안변하는지
- 예를들어
- 부모의 경제수준과 자녀의 학업성적은 상관성이 높다
- 부모의 머리카락 길이와 자녀의 학업성적은 상관성이 낮다
- 예를들어
- 상관성 지표는 다음과 같이 해석할 수 있다
- 0.5 이상 - 높은 상관성
- 0.2 ~ 0.5 - 중간 상관성
- 0.2 이하 - 약한 상관성
연구결과
우리가 높을것이라 예상했던 예측변수의 상관성
- 연차 - 0.18
- 학력 - 0.10
상관성이 높았던 예측변수
- 작업 샘플 테스트 - 0.54(채용 후 할 작업의 일부를 테스트하는것(과제전형느낌))
- 지능테스트(아이큐테스트같은거) - 0.51
- 성실성, 꼼꼼함 - 0.41
- 레퍼런스 체크 - 0.26
상관성이 매우 낮았던 것
- 나이 - 0.02
저자의 제안
- 행동중심의 구조화된 인터뷰
- 예를들어
- 개발자로서 철학이 무엇인가요? 같은 질문이 아닌
- 지난 프로젝트에서 겪은 어려움과 해결방법에 대해 설명해주세요
- 예를들어
- 작업 샘플 테스트 (과제전형)
- 짧은기간 같이 일해보기 (수습기간)
잘뽑는것보다 중요한것
- 이미 뽑은 사람을 어떻게 할 것인지
- 흔히들 채용에는 신경쓰지만 이후의 교육, 훈련은 고민하지 않는다
- 마치, 운동기구를 사놓고 운동하지 않는 것
- 전문성 관리를 개인에게만 맡긴 후 회사는 손을 떼고 하위10%는 해고하는것은 회사에게나 개인에게나 손해다
1만시간의 법칙?
- 특정 분야의 전문가가 되려면 1만시간의 투자가 필요하다
- 내 경력이 6년이고, 야근도 좀 했고, 계산해보면 1만시간이 넘었는데? 싶지만 이건 잘못된 계산이다
- 우리는 어릴때부터 하루에 3번씩 이를 닦지만 우리는 이닦기의 고수라고 말 하지 못한다
- 중요한 것은 의도적 수련
- 악기 연주자들에게 공연은 의도적 수련이 되지 못한다
- 개인기량 향상을 목적으로 하는 애쓰는 수련이 의도적 수련
이렇게 계산하면 터무니없이 많은 시간이 필요하게됨
- 하지만 우리는 업무를 하면서도 의도적 수련을 할 수 있음
- 애자일 철학을 활용하는 것이다
- 실수를 교정할 기회가 있는것 + 피드백을 짧게 가져가는것
- 골프 퍼팅연습을 하는데 공이 어디로가는지 보지않고 공만 친다? → 교정기회 x
- 퍼팅의 결과를 1년뒤에 피드백해준다면 기억이 날까? “당신이 작년 이맘때 쳤던 공은 들어갔습니다” → 피드백 느림
당신이 제자리걸음인 이유
- 실력을 높이기 위해서는 의도적 수련이 중요한데, 실력과 작업의 난이도가 비슷해야 한다.
- 작업 난이도가 너무 낮으면 지루함을,
- 너무 높으면 불안함/두려움을 느낀다.
- 자신이 업무 시간 중에 불안함이나 지루함을 느끼는 때가 대부분이라면, 실력이 도무지 늘지 않는 환경에 있는 것이다.
- 지루함을 느끼는 경우에는 조금 더 높은 수준의 업무에 도전하고, 불안함을 느끼는 경우에는 가장 간단하면서 핵심적인 결과물을 첫 번째 목표로 삼아 난이도를 낮추는 것이다.
이소룡의 이야기
- 이소룡에게 의도적 수련을 배울 수 있는 한 가지 이야기가 있다
- 전통무술을 하던 사람이 이소룡에게 도전을 하러옴
- 이소룡은 그를 3분만에 쓰러트렸음
- 하지만 이소룡은 3분이 되기전에 그를 쓰러트리지 못한것에 화가 났음
- 원본: https://www.youtube.com/watch?v=OotAYyK08Ro&t=2419s&ab_channel=THEHistoryChannel
의도적 수련
- 의도적 수련을 위해서는 나의 실력과 작업 난이도가 비슷해야한다
- 불안함과 지루함의 영역에서는 의도적 수련이 안된다
- 가운데 영역에서만 의도적 수련이 된다
의도적 수련을 위해 몰입으로 가는 4가지 방법
지루함을 느낄때 a1 - 실력 낮추기
- 작업 난이도는 유지
- 실력을 낮추기
- 팔다리에 모래주머니를 달고 달리기
- 개발자라면, 보조도구 사용하지 않기(데이터그립같은거..?)
지루함을 느낄때 a2 - 난이도 높이기
- 이소룡의 경우, 3분안에 적을 쓰러트리기
- 개발자라면 하루분량의 작업을 한시간안에 하기
- tps 개선하기
- 코드리뷰 코멘트 평소보다 더 달기
- 혹은 당장 안해도 되는 옵셔널한 일 하기
- 리팩토링하기
불안함을 느낄때 b1 - 난이도 낮추기
- 자신의 맡은일에서 핵심 기능만 구현한 아기버전 만들기 0.0.1
- 테트리스 만들기가 어렵다면, 화면에 네모 하나만 그려보기
- 자료구조나 회전알고리즘따위를 알고나서 구현하는게 아니다
불안함을 느낄때 b2 - 실력 높이기
- 스터디하기
- 잘하는 사람과 페어프로그래밍하기
- 좋은 디버거, 분석툴 사용하기
- 이전에 비슷했던 일을 했던 경험을 떠올려보기
의도적 수련을 위해 팀장이 할 수 있는 일
- 몰입 영역 밖으로 몰아내는 행동을 하지않는다
- 일이 너무 쉬워서 지루해하는 직원에게 컨퍼런스나 스터디를 시키는것
- 일이 너무 어려워서 힘들어하는 직원에게 진행되지 않는 일의 분석 보고서를 제출하는 등 추가업무를 주는것
함께
소프트웨어 개발 비용을 차지하는 4가지 요소
품질 전문가 제럴드 와인버그가 쓴 책 Quality Software Management에서는 소프트웨어 개발 비용을 차지하는 4요소로 다음 것들을 정함
- 도구
- 사람
- 시스템
- 관리
이 중 무엇이 가장 큰 요소일까?
- 모 대기업에서 설문조사한 결과
- [관리 → 시스템 → 사람 → 도구] 순이었다
- 하지만 보통 관리자들이 선호하는 개선순위는 역순이다
전문가팀이 실패하는 이유
- 뛰어난 사람을 뽑아놓으면 잘할거라는 막연한 기대… 정말그럴까?
- 가장 뛰어낫던 선수들만 뽑아서 만든 올스타팀은 성적이 그다지 좋지 않다(예시)
- 스타들이 한명씩 팀에 추가될때마다 성적향상은 한계효용을 보이며 어느 수준을 지나면 음의 방향이 된다(팀의 성과를 깎아먹음)
https://blog.tanagement.co.kr/insight_management/?bmode=view&idx=14218037
이에대한 한 가지 실험
두가지 팀으로 나눔
- 전문가들로만 구성된 팀
- 전문가+비전문가로 구성된 팀
두가지 협력방법으로 나눔
- 45분의 실험중 10분간은 어떻게 협력할지 계획을 세우도록함 (개입)
- 45분의 실험 전체에 대해서 아무런 개입을 하지 않음 (개입x)
이런 상황에서 성과를 비교해보면 다음과 같다
주목할 부분은,
- [협력한 비전문가팀]이 [협력하지 않는 전문가팀] 보다 좋은 성과를 냈다는 것
- 이유는 정보공유의 차이
정리하자면
- 전문가만 모아 놓는다고 성과가 잘 나오는게 아니다
- 정보공유하고 협력을 잘하기위해선 명시적인 도움이 필요하다
- 소셜 스킬등이 뛰어난 제너럴리스트가 있다면 도움이 된다
구글이 밝힌 탁월한 팀의 비밀
- 구글이 뛰어난 팀의 특징을 찾기위해 진행했던 프로젝트 “아리스토텔레스 프로젝트”
- 연구결과 주목할 부분은
- 팀에 누가 있는지(전문가, 내향/외향인, 지능)보다 팀원이 어떻게 상호작용하는지가 중요
- 심리적 안정감이 큰 영향을 준다
- 팀 토론등 특별히 고안된 활동을 통해 심리적 안정감을 개선할 수 있다
심리적 안정감이란
- 내 생각이나 의견, 질문, 걱정, 실수가 드러났을때 처벌받거나 놀림받지 않을것이라는 믿음
팀 토론과 같은 특별히 고안된 활동?
- 토론 주제를 안전한 환경에서 이야기하게 해주는것 자체가 심리적 안전감을 높일 수 있는것
- 관리자가 매일매일 팀원들과 같은 상호작용에서 변화가 필요함
- 일상적으로 일어나는 상호작용에는 변화가 없으면서 토론회같은 특별한 걸 한다고 하면 오히려 신뢰가 깎인다
쾌속 학습팀
패러다임 전환, 죽느냐 사느냐
- PHP를 사용하던 회사에서 사장님이 컨퍼런스를 다녀오더니 갑자기 자바로 바꾸라고함
- 어떤팀은 잘 바꿧지만 어떤팀은 잘 바꾸지 못했음
- 왜일까?
하버드 비즈니스 리뷰에 심장수술에 대한 논문이 실렸음
- 제목은 <팀 학습 속도 높이기>
새로운 방식의 최신 수술방법 “최소 심습 수술법”
- 이를 도입한 두 병원을 비교함
- 실선은 첼시아 병원
- 점선은 마운틴 메디컬 센터
- 두 병원 다 처음 수술법을 도입했을때는 수술시간이 6시간이었음
- 하지만 횟수가 반복되자 마운틴 메디컬 병원은 3시간으로 개선됨
- 주목할점은
- 첼시아 병원의 리더는 저명한 심장외과의사
- 마운틴 메디컬 센터의 리더는 경험이 부족한 젊은 외과의사
- 즉, 리더의 기술적 깊이는 팀 학습속도에 영향을 크게 줄 수 없다
리더가 팀 학습 속도에 미치는 영향
- 기술적으로 탁월한 리더보다다는 학습 환경을 만들 수 있는 리더가 중요
학습 환경의 차이
- 마운틴 메디컬 센터는 팀원을 선발할때 업무수행 능력이 아니라
- 협력을 잘하는지,
- 애매모호한 상황을 즐길수있는지,
- 자신보다 지위가 높은 사람에게도 자신있게 의견을 말할수있는지를 봤다
- 새로운 수술 방법을 도입할때 개개인이 새로운 기술을 획득하는것이라고 생각하지 않았고 함께 일하는 새로운 방법을 만들어야한다고 생각했다
다시 돌아와서,
PHP에서 자바로 성공적으로 전환한 팀의 특징
- 리더와 팀원들이 학슴에 대한 태도가 달랐다
- 같이 학습해야한다고 받아들임
- 리더는 기회와 가능성, 큰 변화의 흐름에 동참하라는 중요성과 즐거움을 강조함
- 실패한 팀은
- 학습을 개개인의 과제로 돌렷음
- 리더는 낙오의 위험성을 경고하고 팀원들의 실력이 부족하다 불평함
프로젝트 확률론
- 당신은 프로젝트 매니저다
- 당신에겐 7명의 팀원이 있다
- 당신은 기가막히게 맡은 일감을 정확히 7등분했다
- 각각의 일감은 독립적이라 담당자들은 자신의 일만 잘 하면 된다
- 당신의 팀원들에게 질문한다 “일정안에 끝낼 수 있나요?”
- 7명의 팀원들은 모두 똑같은 답변을 한다 “90% 확률로 끝낼수 있다”고
- 그러면 이 프로젝트는 기간안에 끝날 수 있을까?
- 흔히 범하는 실수는 이 프로젝트의 성공률이 90%라고 착각하는 것이다
- 프로젝트가 기간안에 끝날 확률은 90%가 아니다
- 0.9의 7승인 0.48, 즉 48%가 나온다
이러한 업무진행방식을 애자일하게 바꾼다면?
워드 커닝햄은 이렇게 말했다
- 12가지 할일이 있고 12명의 개발자가 있다면
- 1인 1일을 주는게 아니라
- 12명에게 3가지 일을 준다
- 3가지 일이 끝나면 다음 3가지 일을 준다
- 왜냐?
- 유연하게 협력을 하게되며
- “관심사의 섞임”이 일어나게되고 정보를 빠르게 공유할 수 있게 된다
- 빠른 정보 공유를 통해 학습도 빠르게 가능하고,
- 병목지점이 발생하면 내가 도와줄 수 있게된다
- 유연하게 협력을 하게되며
애자일은 다음 성질이 있다
- 좋은 일에 대해서는 “그리고” 확률을 “또는” 확률로 바꾸고
- 나쁜 일에 대해서는 “또는” 확률을 “그리고” 확률로 바꾸는 성질
예시
- 한 명이라도 좋은 통찰이 있었다면 공유를 해서 좋은 영향을 줄 수 있다(“또는” 확률)
- 버그가 있더라도 모든사람이 버그를 발견하지 못해야만 구멍이 발생하도록 제한한다(“그리고” 확률)
애자일
애자일이란
- 그래서 애자일이 뭔데?
애자일은,
- 소프트웨어를 개발하는 여러 방법중에서 한 가지 방법임
- 애자일 이전에는 계획주도 방식
- 하지만 개발을 할 때 불확실성이 많이 있고, 계획주도 방식은 불확실성을 해결할 수 없다
- 따라서 애자일 방법론은 불확실성에도 유연하게 대처하기위해
- 다양한 사람으로부터
- 짧은 주기로
- 잦은 피드백을 받으며
- 유연하게 개발하는 방법
- 이런 애자일 방법을 실천하기 위해서는 위에서 설명한
- 함께(협력) 자라기(학습)가 필요하다
애자일을 애자일스럽게 도입하기
- 많은 조직들이 애자일을 도입하려고 하지만 노력에 비해 성공률이 높지 않다
- 왜일까?
- 애자일을 반(反)애자일적으로 진행하기때문
- 애자일은 불확실성을 대처하는 방법론
- 근데 애자일을 도입할때 확실성 위에서 진행하려고해서 문제가 발생한다
- 애자일을 도입하려면 어떤것을 해야할지 명확하게 알려달라고한다
- 하지만, 이것 자체가 애자일스럽지 않다
사실 이 사람도 애자일하게 가자는 말을 하고싶었던것은 아닐까 싶다
책의 한 줄 요약
- 큰 성과를 내려면 함께 해야하며, 같이 매일 배워야 한다