기록

함께 자라기 : 애자일로 가는 길

llshl 2025. 1. 12. 04:16

 

를 읽고 나눠보면 좋은걸들 정리

목차

  • 자라기
  • 함께
  • 애자일

 

 


자라기

당신은 몇 년차?

 
 

 

무엇이 소프트웨어 기술자의 등급을 판가름할까?

  • 한국소프트웨어산업협회에서는 [학력 + 경력 + 자격]을 본다

 

 

 

경험이 길수록 잘하는 개발자일까?

  • 그렇지 않다
  • 경력 연차만으로 이 사람이 초급인지 고급인지 알 수 없다

 

그렇다면 직원을 뽑을때 무엇을 기준으로 그 사람의 실력을 예측할 수 있을까?

  • 존 헌터와 프랭크 슈미트의 연구
    • 채용시 가장 효과적인 예측변수가 무엇인지?
    • = 즉, 사람을 뽑을때 무엇을 봐야 잘 뽑았다 소문이 나는지에 대한 연구
    • = 채용시 선발 여부를 고려하는 변수와 직무 성과라는 변수간에 상관성에 대한 연구

 

상관성이란

  • 하나가 변하면 다른 하나가 변하는지 안변하는지
    • 예를들어
      • 부모의 경제수준과 자녀의 학업성적은 상관성이 높다
      • 부모의 머리카락 길이와 자녀의 학업성적은 상관성이 낮다
  • 상관성 지표는 다음과 같이 해석할 수 있다
    • 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년뒤에 피드백해준다면 기억이 날까? “당신이 작년 이맘때 쳤던 공은 들어갔습니다” → 피드백 느림

 

 

 

 

당신이 제자리걸음인 이유

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

 

 

 

이소룡의 이야기

 

 

 

 

의도적 수련

  • 의도적 수련을 위해서는 나의 실력과 작업 난이도가 비슷해야한다

 

  • 불안함과 지루함의 영역에서는 의도적 수련이 안된다
  • 가운데 영역에서만 의도적 수련이 된다

 

 

 

의도적 수련을 위해 몰입으로 가는 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

 

[슬램덩크] 북산은 어떻게 산왕공고를 이길 수 있었을까 : 강점 리더십/경영

최근 3040 X세대의 추억을 소환하여 영화 '더 퍼스트 슬램덩크'가 열풍을 일으키고 있다. 필자도 옛추억을 소환하여 재미있게 다시 슬램덩크를 찾아보게 되었다. 그런데 10대 때는 느끼지 못했던

blog.tanagement.co.kr

 

 

 

 

 

이에대한 한 가지 실험

두가지 팀으로 나눔

  • 전문가들로만 구성된 팀
  • 전문가+비전문가로 구성된 팀

두가지 협력방법으로 나눔

  • 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가지 일을 준다
  • 왜냐?
    • 유연하게 협력을 하게되며
      • “관심사의 섞임”이 일어나게되고 정보를 빠르게 공유할 수 있게 된다
      • 빠른 정보 공유를 통해 학습도 빠르게 가능하고,
      • 병목지점이 발생하면 내가 도와줄 수 있게된다

 

 

애자일은 다음 성질이 있다

  • 좋은 일에 대해서는 “그리고” 확률을 “또는” 확률로 바꾸고
  • 나쁜 일에 대해서는 “또는” 확률을 “그리고” 확률로 바꾸는 성질

 

예시

  • 한 명이라도 좋은 통찰이 있었다면 공유를 해서 좋은 영향을 줄 수 있다(“또는” 확률)
  • 버그가 있더라도 모든사람이 버그를 발견하지 못해야만 구멍이 발생하도록 제한한다(“그리고” 확률)

 

 

 

 


애자일

애자일이란

  • 그래서 애자일이 뭔데?

 

애자일은,

  • 소프트웨어를 개발하는 여러 방법중에서 한 가지 방법임
  • 애자일 이전에는 계획주도 방식
  • 하지만 개발을 할 때 불확실성이 많이 있고, 계획주도 방식은 불확실성을 해결할 수 없다
  • 따라서 애자일 방법론은 불확실성에도 유연하게 대처하기위해
    • 다양한 사람으로부터
    • 짧은 주기로
    • 잦은 피드백을 받으며
    • 유연하게 개발하는 방법
  • 이런 애자일 방법을 실천하기 위해서는 위에서 설명한
    • 함께(협력) 자라기(학습)가 필요하다

 

 

 

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

  • 많은 조직들이 애자일을 도입하려고 하지만 노력에 비해 성공률이 높지 않다
  • 왜일까?
  • 애자일을 반(反)애자일적으로 진행하기때문
    • 애자일은 불확실성을 대처하는 방법론
    • 근데 애자일을 도입할때 확실성 위에서 진행하려고해서 문제가 발생한다
      • 애자일을 도입하려면 어떤것을 해야할지 명확하게 알려달라고한다
      • 하지만, 이것 자체가 애자일스럽지 않다

 

 

사실 이 사람도 애자일하게 가자는 말을 하고싶었던것은 아닐까 싶다

 

한국까지 조롱 이어지는 '펀쿨섹좌' 황당 발언들 | 중앙일보

동어반복, 논점이탈, 순환논법 등의 화법 때문에 그의 발언을 '시'라고 부르며 조롱하는 사람들이 많습니다.

www.joongang.co.kr

 

 

 


책의 한 줄 요약

  • 큰 성과를 내려면 함께 해야하며, 같이 매일 배워야 한다