김창준님의 '함께 자라기 - 애자일로 가는 길'을 읽고 인상 깊었던 부분을 북마크해 놓은 게시글입니다.
자신이 10년 넘게 해온 것 중에 전문성이 실제로 높아진 역량은 무엇이고, 거의 변화가 없는 것은 무엇인가 찾아보세요. 둘을 가르는 차이는 무엇인가요?
1. 동기가 부족하다
2. 피드백을 제때 받지 못한다달인이 되려면 적어도
-> 1. 실력을 개션하려는 동기가 있어야하고
2. 구체적인 피드백을 적절한 시기에 받아야 한다.
p.53-p.54
p.58
피드백 조건이 필요하다는 의미는 자신이 내린 직관적 판단에 대해 빨리 피드백을 받고 이를 통해 학습할 기회가 주어지는 환경이 갖춰져야 한다는 걸 말합니다.
p.61
실력을 높이기 위해서는 '의도적 수련'이 중요합니다. 의도적 수련이라는 용어가 어색할 수는 있지만 전문성 획득에 있어 연습의 중요성은 대중서적과 매체를 통해 널리 알려진 것 같습니다.
- 의도적 수련이 되려면 나의 실력과 작업의 난이도가 비슷해야 합니다.
p.68
인지심리학에서 상대의 전문성을 빠른 시간 내에 간파하는 기법 중에 남들보다 일을 좀 더 효율적/효과적으로 하기 위해 내가 직접 만들어 쓰는 나만의 도구·방법이 있습니다.
여러분은 어떤 하루를 살고 계신가요? 지루하거나 불안하지는 않으신가요?
p.83
튜토리얼을 읽는 것 자체는 다른 프로그래머랑 비슷해 보입니다. 여기에 차이가 있다면 읽을 때 다음 작성할 프로그램을 염두에 둔다는 점입니다. 그래서 튜토리얼을 읽다가도 이 정도면 그 프로그램을 작성할 수 있겠다는 생각이 들면 그 자리에서 읽기를 멈추고 코딩을 시작합니다. 프로그램을 완성하면 잠시 멈췄던 자리로 돌아와서 읽기를 계속합니다. 이때에는 다음 프로그램을 목표로 두면서 말이죠.
p.91
실수 예방 문화에서는 실수를 한 사람을 비난하고, 처벌하고 따라서 실수를 감추고 그에 대해 논의하기 꺼리며 문제가 생겼을 때 협력도 덜하게 됩니다. 실수에서 배우지 못하겠지요. 반대로 실수 관리 문화에서는 실수가 나쁜 결과를 내기 전에 빨리 회복하도록 돕고, 실수를 공개하고, 실수에 대해 서로 이야기하고 거기에서 배우는 분위기가 생깁니다.
p.102
뛰어난 소프트웨어 개발자일수록 타인과 인터랙션에 더 많은 시간을 쓰며, 초보 개발자들에게 조언을 할 때 사회적인 측면(예컨데 "모르면 주변에 물어봐라", "남을 도와줘라" 등)이 포합됩니다.
어떤 기술적 지식을 전달한다고 해도 그것을 사회적 맥락 속에서 가르치고 경험하게 하려고 노력하자.
p.115
품질 전문가 제럴드 와인버그가 한 말을 살펴봅시다. 이분은 소프트웨어 개발을 잘 관리하려면 세 가지 근본적 능력이 필요하다고 했습니다.
1. 복잡한 상황을 이해하는 능력으로, 프로젝트를 계획한 다음 관찰하고 행동하여 계획에 맞게 프로젝트가 진행되게 하거나 계획을 바꿀 수 있어야 한다.
2. 관찰하는 노력으로, 무엇이 벌어지고 있는지를 관찰하고, 효과적인 적응 행동을 하기 위해 자신이 관찰한 것이 어떤 의미인지 이해할 수 있어야 한다.
3. 행동하는 능력으로, 어려운 대인 상황에서 우리가 심지어 혼란스럽거나 화가 나거나 아니면 무서워서 도망쳐 숨어버리고 싶을 때에도 적절하게 행동할 수 있어야 한다.
'다른 시각을 가진 두 사람이 협력하기'
p.128
자신이 작성하는 코드의 추상성을 높이고 싶다면 혼자서 고민하지 말고 다른 사람들과 협동하고, 대화하세요. 같이 그림도 그려보고 함께 소스코드를 편집하세요. 인간에게는 다른 인간과 소통하고 협력할 수 있는 놀라운 능력이 있습니다. 대화는 기적입니다.
복수 공유가 하나 공유나 최고 공유보다 신뢰 면에서 매우 우수하다
p.165
협력 개입이 된 경우, 팀원들은 정보를 공유해서 더 통합된 해결책을 제시했습니다. 이에 반해 협력 개입이 없으면 결과물은 서로 모순되는 등 통합되지 못했습니다이에 더해, 팀 내에 개인 내 다양성이 높은 멤버가 없다면 전문가로 구성된 팀은 정보 공유가 잘 안 되어서 성과가 떨어질 수 있다는 분석을 했습니다.
- 전문가들이 모아서 팀을 만든다고 잘하는 것 아니고
- 오히려 성과가 떨어질 수 있고
- 정보 공유하고 협력을 잘하기 위한 명시적인 도움이 필요하며
- 소셜 스킬 등이 뛰어난 제너럴리스트가 있으면 도움이 된다
p.170
팀원이 불편한 문제를 제기하거나, 어리석어 보이는 질문을 하거나, 부족한 의견을 얘기하거나, 어처구니없는 실수를 저지를 때 여러분은 어떤 마이크로 인터랙션을 보여주고 계신가요?
p.175
학습이 빠른 팀은 팀원을 뽑을 때부터 달랐습니다. 선발 자체가 매우 협동적으로 이루어졌을 뿐 아니라(비유하자면 디자이너를 뽑는 데 개발자가 관여한다든지), 선발 기준도 달랐습니다. 단순한 업무 수행 능력뿐만 아니라 다른 사람과 협력을 얼마나 잘하는지, 새롭고 애매모호한 상황을 즐길 수 있는지, 자기보다 지위가 높은 사람에게도 자신 있게 의견을 제안할 수 있는지 등을 보고 뽑았습니다.
p.178
학습 공동체를 구축하세요. 주변에서 나와 함께 학습 환경을 만들 수 있는 동지를 찾아보세요. 그것이 쾌속 학습으로 가는 지름길 입니다.
p.194
불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물입니다. 애자일이 불확실성을 다루는 방식은 좀 더 짧은 주기로 더 읽찍부터 피드백을 받고, 더 다양한 사람으로부터 더 자주 그리고 더 일찍 피드백을 받는 것으로 정리할 수 있습니다.
p.195
우리가 이제까지 이야기했던 학습과 협력이 애자일이 불확실성을 다루는 핵심적인 구동원리입니다. 다시 말해, 학습과 협력을 증진해서 우리 삶에 애자일을 적용하고, 또 이를 통해 불확실성과 친구가 될 수 있습니다.
p.198
고객에게 매일 가치를 전하라.
- 고객에게
- 우리의 진짜 고객은 누구인가?- 매일
- 어떻게 점진적으로 가치를 전할 것인가?
- 어떻게 보다 일찍, 그리고 보다 자주 가치를 전할 것인가?
- 가치를
- 무엇이 가치인가?
-지금 우리가 하고 있는 일이 정말 가치를 만드는 일인가?
- 지금 가장 높은 가치는 무엇인가?
- 비슷한 수준의 가치를 더 값싸게 전달하는 방법은?
- 전하라
- 가치를 우리가 갖고 있지 않고 고객에게 정말 전달하고 있는가?
- 고객이 정말 가치를 얻고 있는가?
고객 참여, 리팩터링, 코딩 후 자동화 테스트 붙이기, 코드 공유
두려워도 중요하다면 시도해봐야 하지 않겠는가.
p.208
- 뛰어난 애자일 코치란?
- 의사소통 스타일(팀원, 상사, 팀장과)
- EQ 및 스트레스하에서의 행동
- 리더십 및 코칭 스타일(동기부여 등)
- 회고를 통한 개인적 학습 능력
- 개인적 성장 의지, 성장 사고관, 자기효능감
- 관찰 및 상황 파악 능력
p.210
1. 애자일을 도입해서 성공하는 조직들이 국내에 있다.
2. 애자일 실천법을 잘 실행하면 성공률도 높아질 수 있다.
3. 실천법 중에서 비교적 성공과 직결되는 것들이 존재한다. 그것은 고객 참여, 리팩터링, 코딩 후 자동화 단위 테스트 붙이기, 코드 공유 등이다
4. 애자일 성숙도가 낮은 조직일수록 고객 참여를 하지 않으면 프로젝트 성공이 어렵다.
5. 무섭고 두렵지만 중요한 일이라면 계속 미루지 말라.
6. 뛰어난 애자일 코치가 있는 것이 애자일 도입 성공에 핵심적이다.
7. 뛰어난 애자일 코치는 함께 자란다.
p.218
어차피 방법론 도입이라는 것이 매우 불확실한 것이기 때문에 정답이 있을 수 없습니다. 이전 경험이 이번에도 정확히 들어 맞는다고 말할 수도 없습니다.
이것이 거의 모든 종류의 방법론 도입에 적용됩니다. 왜냐하면 방법론 도입은 태생적으로 불확실성이 높기 때문입니다. 그럴 때 현명한 전략은 정해진 수순을 따르는 것이 아니라 곁에 있는 사람들과 함께 주변을 탐색하고 조금 나아가고 확인하고를 반복하면서 우리의 현 맥락에 맞는 좋은 전략들을 스스로 만들어 나가는 것이 아닐까 합니다.