애자일은 소프트웨어 개발 방법론 중 하나이다.
애자일 방법론
- less document-oriented, 즉 문서를 통한 개발 방법이 아니라, code-oriented, 실질적인 코딩을 통한 방법론
: 일정한 주기를 가지고 끊임없이 프로토타입을 만들어내며 그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는 방법
- 애자일 방법론 여러가지가 있는데, XP와 스크럼이 주류이다
* 익스트림 프로그래밍(Extreme Programming, XP) - 고객과 함께 2주 정도의 반복 개발을 하고, TDD를 한다.
* 스크럼 - 제품을 제공하는 스프린트(Sprint)를 중심으로 하고 있다. 매일 정해진 시간에 정해진 장소에서 짧은시간의 개발을 하는 팀을 위한, 프로젝트 관리 중심의 방법론이다.
[1] 학습에 애자일 철학을 활용하기
효과적인 학습법
1) 피드백을 짧은 주기로 얻는 것
2) 실수를 교정할 기회가 있는 것
자신이 내린 직관적 판단에 대해 빨리 피드백을 받고 이를 통해 학습할 기회가 주어지는 환경이 갖춰져야한다. 타당성과 피드백이 부족한 환경에서는 오래 일해도 전문성이 신장되지 않는다.
[2] 적절한 난이도를 통해 몰입하기
너무 쉬우면 지루해지고, 너무 어려우면 번아웃이 온다. 적절히 어려운 난이도로 설정하여 학습하는 것이 중요하다.
[3] 적극적 읽기 (Active Reading)
적극적 읽기는 '튜토리얼을 읽을 때 다음 작성할 프로그램을 염두에 둔다' 라는 점이 그냥 읽기와 다르다.
튜토리얼을 읽다가 이 정도면 그 프로그램을 작성할 수 있겠다는 생각이 들면 그 자리에서 읽기를 멈추고 코딩을 시작합니다. 프로그램을 완성하면 잠시 멈췄던 자리로 돌아와서 읽기를 계속합니다. 이 때에는 다음 프로그램을 목표로 두면서 말이죠.
[4] 주변에 있는 전문가들의 전문성을 효과적으로 뽑아내기
전문가들의 전문성을 뽑아내고 적용하는 것이 자신의 전문성을 빨리 높일 수 있는 방법이라고 말한다.
전문가에게 구체적인 사건에 대해 말하도록 유도해서 굉장히 구체적인 사레를 듣는 것이 전문성을 잘 뽑아내는 방법이라고 한다.
[5] 실수 관리 문화의 회사
회사 문화가 실수 예방 보다 관리에 가까울 수록 그 기업의 혁신성, 수익성이 더 높은 현상이 나타난다고 한다.
싫수가 없으면 성장 할 수 없기 때문이다. 화재예방이라는 문구도 화재관리라는 문구로 바뀐지 오래이다.
고로 직원들에게 실수하지 말라고 하는 조직은 학습하지 말라고 지시하는 것과 같습니다
다양한 실수를 경험하는 걸 격려하고, 실수 사례를 배우고 어떻게 대처하는 가를 가르치는 교육이 더 효과적이라는 연구 결과가 많다고 한다
교육 중에 실수를 더욱 유도하여야한다. 한국에서 실수하면 부끄러운 일로 치부되는데 과감히 공유하고 관리하여야겠다. 리더의 위치에서도 과감히 공개하고 인정하여 좋은 실수관리 문화를 만들어야한다.
[6] 타인과의 인터랙션에 많은 시간을 쓰기
최근 소프트웨어 공학에서 이뤄진 연구 결과를 보면 뛰어난 소프트웨어 개발자일수록 타인과 인터랙션에 더 많은 시간을 쓴다고 한다.
천재는 홀로 다 한다고 생각하였는데 오래된 구닥다리 생각이였다.
한 연구에서는 경력이 있는 개발자들에게 특정 문제를 해결할 때 초보개발자에게 해 줄 조언을 적어보라고 했습니다.
평균 7년 경력의 개발자들이었는데(경력과 실력은 상관성이 없었음) 뛰어난 개발자들은 약 70%가 동료와의 협력을 언급하는 반면, 실력이 그저 그런 개발자들은 20%도 안 되는 사람들만이 동료와의 협력을 언급했습니다.
[1] 함께 일하는 사람을 파악하기
함께 일하는 사람이 어떤 사람인지 잘 알고 그 사람에 맞게 대화하는 것이 중요하다
혁신형 (다르게 하는 것이 중요한 사람들) 과 적응형 (잘하는 것이 중요한 사람들) 에게 애자일을 소개하는 법을 다르게 해야한다
혁신형(Innovation)에 가까운 사람에게는 : "애자일 이거 정말 새로운 겁니다. 이걸하면 당신에게 새로운 경험을 할 기회가 생깁니다. 모조리 싹 바뀔 겁니다"
적응형(Adaption)에 가까운 사람에게는 : "애자일은 새로운 것이 아닙니다. 기존의 방법들을 더 낫게 개선한 겁니다. 지금 하고 있는 업무 방식을 조금 더 효율적으로 개선하는 겁니다. 많이 바꿀 필요가 없습니다."
같은 방식으로 설명을 하면 더 좋을 것입니다. 사실 애자일에는 이런 양면이 다 포함되어 있기에 모두 진실이라고 할 수 있습니다.
훌륭한 팀장이라면 먼저 그 사람의 사고 과정과 전략을 이해하려고 합니다. 실제로 전문성 연구에서도, 전문가는 상황 파악을 먼저 하지만 초보자는 뭘 할지부터 정하려고 한다는 차이를 발견했습니다.
정말 새로운 기술도 중요하지만 그것을 어떻게 지혜롭게 적용시키는지에 대해 생각해 볼 수 있었다.
[2] 구글이 밝힌 탁월한 팀의 비밀
구글이 뛰어난 팀의 특징을 찾기 위해 2년간 노력한 '아리스토텔레스 프로젝트' 2015년 11월 구글은 그 연구 결과 일부를 공개했다
1. 팀에 누가 있는지 (전문가, 지능 등)보다 팀원들이 서로 어떻게 상호작용하고 자신의 일에 대한 시선이 훨씬 중요하다.
2. 5가지 성공적 팀의 특징을 찾았는데, 그중 압도적으로 높은 예측력을 보인 변수는 팀의 심리적 안전감이었다.
5가지 성공적 팀의 특징
* 심리적 안전감: 다른 팀원 앞에서 약한 모습을 보여도 괜찮다는 심리상태 (실수, 걱정, 의견, 질문 등을 해도 전혀 문제가 없음)
* 신뢰성: 각 팀원이 자신에게 주어진 업무 기대치를 충족시킬 수 있다는 믿음
* 구조와 명확성: 팀원별로 업무 분담이 명확하고 그에 따른 계획과 목표가 분명하게 정해져 있음
* 의미: 팀원마다 회사를 다니는 이유, 일을 하는 목적이 분명함 ( 가족부양, 개인의 성공, 경력 개발, 사회적 가치 )
* 영향: 각자의 업무과 팀,회사 나아가 사회에 어떤 식으로든 기여하고 있다는 믿음
[1] 고객에게 매일 가치를 전하라.
1. 고객에게
- 우리의 진짜 고객은 누구인가?
2. 매일
- 어떻게 점진적으로 가치를 전할 것인가?
- 어떻게 보다 일찍, 그리고 보다 자주 가치를 전할 것인가?
3. 가치를
- 무엇이 가치인가?
- 지금 우리가 하고 있는 일이 정말 가치를 만드는 일인가?
- 지금 가장 높은 가치는 무엇인가?
- 비슷한 수준의 가치를 더 값싸게 전달하는 방법은?
* 전하라
- 가치를 우리가 갖고 있지 않고 고객에게 정말 전달하고 있는가?
- 고객이 정말 가치를 얻고 있는가?
[2] 애자일 코치
성공하는 조직들에는 항상 뛰어난 애자일 코치가 있었다.
* 뛰어난 애자일 코치의 특징
- 의사소통 스타일(팀원, 상사, 팀장과)
- EQ 및 스트레스하에서의 행동
- 리더십 및 코칭 스타일(동기부여 등)
- 회고를 통한 개인적 학습 능력
- 개인적 성장 의지, 성장 사고관, 자기효능감
성장 사고관 = 내가 노력만 하면 뭐든지 더 잘할 수 있다고 믿는 것
고정 사고관 = 내 능력은 정해져 있다고 믿는 것 )
- 관찰 및 상황 파악 능력
- 일치적 행동(믿는 것을 행동에 옮기는 능력)
- 기술적 능력
함께 일하고 싶은 개발자가 되는 것이 정말 중요하다고 생각한다. 아무리 좋은 기술, 탁월한 실력이 있어도 같이 일하기 싫은 개발자하고는 될 일도 안되고 좋은 서비스가 나올 수 가 없다. 나부터 부족함을 느끼고 훌륭한 애자일코치가 되기 위하여 더욱 훈련해야겠다. 페이스북도 회사를 만들어야지 하고 시작하지 않았다. 그저 하나의 프로젝트에 불과했다. 거창한 계획보다 당장 실행에 옮기며 매일매일 성장하자.
[서평]뼈있는 아무말 대잔치 (0) | 2021.09.21 |
---|---|
[서평]지리의 힘(Prisoners of Geography) . 팀마샬 (0) | 2021.09.17 |
[서평] 임팩트 투자, 투자의 미래 Doing Good, Doing Well (0) | 2021.09.17 |