Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

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

항상 발표나 글에서 많이 배우던 김창준 님의 첫 책이라 바로(?) 구매를 했다. 책 살 때 출판사는 잘 확인 안 하는 편이라 인사이트 책인 줄 모르고 종이책을 구매했다가 이북을 다시 구매했다. 설명도 잘하시고 책이 두껍지 않아서 아이패드로 들고 다니면서 금방 읽었다.

먼저 애자일에 대해서 말하자면 애자일을 그리 좋아하는 편은 아니다. TDD도 염두에 두고 코딩하고 있고 애자일의 많은 실천 방법과 개념들을 좋아하지만 애자일이란 말은 거의 사용하지 않는 편이다. 이 책의 후반부에도 나오지만 한창 애자일이 유행할 때 열심히 세미나 등을 따라다녔지만 언젠가부터 전혀 애자일 스럽지 않게 느껴졌고 애자일이라는 힙한 느낌의 단어에 많은 것을 가두고 국내에서는 애자일의 원래 의도와 달리 관리 기법으로 쓰이는 것 같아서 그 말을 잘 쓰지 않게 된 것 같다.

김창준 님이 국내에서 애자일을 대표하는 한 분이시기에 "함께 자리기" 제목으로 어떤 얘기를 하실까 하는 궁금함을 가지고 책을 보았다.

결론부터 얘기하면 많은 부분을 공감하면서 재미있게 읽었다. 난 애자일 전문가나 전도사도 아니고 깊게 공부해 본 적은 없지만 애자일 소프트웨어 개발 선언이 나온 지도 18년이나 되었기에 그 많은 정신과 실천방법은 이미 IT에 자리 잡았고 애자일이라고 부르던 안 부르던 괜찮은 문화를 가졌다고 생각하는 조직에 스며들어 있다고 생각하고 내가 좋아하는 기업/팀 문화와도 어느 정도 연결된다. 이 책에서 김창준 님이 "함께 자라기"라는 제목 아래 설명하는 협업? 혹은 일 잘하기? 에는 공감할 내용이 많았다.

전혀 몰랐던 깜짝 놀랄 내용이 있다기보다는 어느 정도 머릿속에 있고 어디선가 얘기해 본 적도 있는 내용이지만 정리 안 된 채로 있던 내용이 이 책을 통해서 훨씬 체계적으로 정리가 되었고 연구나 논문을 통해서 근거를 알게 되었다. 근거를 알게 되었다는 것은 어디선가 논쟁을 할 때 써먹기 위함이라기보다는 "이건 OO인 것 같은데..." 같던 생각이 실제 연구에서 어떤 결론으로 이어졌는지 알게 되어 훨씬 명확해졌다.

1부 자라기

학습 방법을 학습해야 합니다.

1부에서는 학습에 관해서 설명한다. 경력 연차나 학력이 업무와의 연관성이 거의 없다는 걸 보여주고(없다고는 생각했지만 이렇게까지 상관없는 줄을 몰랐다.) 학습을 통해서 성장하는 방법과 그 중요성을 설명하고 있다.

  • 자신이 이미 가진 것들을 잘 활용하라.
  • 외부 물질을 체화하라. - 주기적인 외부 자극을 받으면 좋다. 단, 외부 자극을 받으면 그걸 재빨리 자기화해야 한다.
  • 자신을 개선하는 프로세스에 대해 생각해 보라.
  • 피드백을 자주 받아라.
  • 자신의 능력을 높여주는 도구와 환경을 점진적으로 만들어라.

개발하면서 오랫동안 자기 계발을 열심히 해왔지만 이젠 관성으로만 움직이는 느낌도 있다.(사실 이 말도 최근 몇 년 동안 여러 번 하고 있다.) 그래서 이 책에 나온 실천 방법들이 지금 나는 이런 학습 환경을 어느 정도 유지하고 있는지 되돌아보는 계기가 되었다.

실력을 높이기 위해서는 '의도적 수련(Deliberate Practice)'이 중요합니다. 의도적 수련이 되려면 나의 실력과 작업의 난이도가 비슷해야 합니다.

의도적 수련에서 난이도를 맞추기 위해서 실력을 낮추거나 난이도를 높이는 방법은 실제로 해보면 좋겠다는 생각을 했다. 조금 더 의도적으로 수련을 할 필요가 있다.

실수 예방 문화에서는 실수를 한 사람을 비난하고, 처벌하고, 따라서 실수를 감추고 그에 대해 논의하기 꺼리며 문제가 생겼을 때 협력도 덜하게 됩니다. 실수에서 배우지 못하겠지요. 반대로 실수 관리 문화에서는 실수가 나쁜 결과를 내기 전에 빨리 회복하도록 돕고, 실수를 공개하고, 실수에 대해 서로 이야기하고 거기에서 배우는 분위기가 생깁니다.

실수가 없으면 학습하지 못합니다(고로 직원들에게 실수하지 말라고 하는 조직은 학습하지 말라고 지시하는 것과 같습니다). 이는 학습이론의 기본입니다. 즉, 실수 관리를 하는 문화일수록 학습을 더. 잘합니다.

뛰어난 개발자들은 약 70%가 동료와의 협력을 언급하는 반면, 실력이 그저 그런 개발자들은 20%도 안 되는 사람들만이 동료와의 협력을 언급했습니다. 이 정도면 차이가 꽤 크니 면접에서 개발자의 실력을 가릴 때 이용하면 도움이 될 수. 있겠죠.


2부 함께

신뢰를 쌓는 데에 널리 사용되는 한 가지 방법은 투명성과 공유, 인터랙션입니다. 자신이 한 작업물을 투명하게 서로 공유하고 그에 대해 피드백을 주고받으며 인터랙션을 하는 것이죠.

2부는 주로 협업에 관한 내용이다. 나는 그동안 경력에서 혼자 일한 경우가 꽤 많고 관리자 역할을 하진 않아서 관리 차원에서의 협업에 대해서는 큰 관심은 없다. 일을 더 즐겁게 하려고 하는 협업에 관심이 있고 이젠 시니어 개발자이다 보니 시니어의 역할에서의 협업에 관심이 있는 정도이다. 협업에 대해서는 여기 나오는 대부분을 동의하지만, 현실에서는 뭔가 생각처럼 되지 않는 어려움이 있는 것도 사실이다.

남을 설득하려면 논리성과 객관성에 대한 환상을 버려야 합니다. 그래야 현실적으로 설득이 가능합니다. 내가 설득하고 싶은 상대를 자주 만나서 신뢰를 쌓고, 그 사람이 무엇을 중요하게 여기는지, 어떤 설명 방식을 선호하는지 이해해야 합니다. 출발은 결국 내가 설득하려는 사람에게서 하는 것입니다. 자료에서 출발하는 것이 아닙니다.

위 같은 방법을 많이 해본 적은 없긴 하다. 뭘 도입하겠다고 열심히 하는 편은 아니고 그냥 혼자 하는 편이기도 하지만(싫다는 사람을 굳이...) 위와 같은 설득 방법은 내가 잘 못 하는 영역이라서 고민을 좀 하기도 했다. 다만 뭔가 하기 위해서 항상 설득하거나 반대에 부닥치기 보다 문제의식에 대한 공감대 형성 같은 부분에 대해서 어려움을 느끼는데(지금도 말로도 잘 설명이 안 된다.) 그런 부분은 정리되진 않았다.(나도 내가 뭘 원하는지 잘 모르겠다.)

뛰어난 팀이라면 거의 한 팀도 빠지지 않고 공통적으로 갖고 있는 특징이 몇 가지 있었는데, '삼투압적 의사소통'이 거기에 속합니다. 삼투압적 모형에서는 은연중에 서로 간에 정보가 스며드는 겁니다.

이런 의사소통 방식은 내가 좋아하는 방식인데 실제로 삼투압적인 의사소통을 만들려면 어떻게 해야 할지를 고민 중이다. 혹은 모두가 이런 의사소통을 좋아하는 것은 아니라고 생각하기에 조직 전체가 더 나은 의사소통으로 넘어가는 방법은 무엇일지가 고민이긴 하다.

3부 애자일

사실 애자일은 불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물입니다. 따라서 애자일은 불확실성이 높은 프로젝트에 더 적합합니다. 사실 우리가 이제까지 이야기했던 학습과 협력이 애자일이 불확실성을 다루는 핵심적인 구동 원리입니다.

학습적 면에서 보면, '매일'하는 것은 학습의 빈도를 말합니다. 불확실성이 높을수록 빈도가 자주 있어야 합니다. 협력이라는 면에서는 '고객에게'라는 부분이 그 중요성을 말하고 있습니다.

3부에서는 보통 많이 얘기하는 애자일에 대해서 얘기하고 있는데 조직 차원에서 애자일 도입을 하는 경험을 해본 적은 많지 않아서 가볍게 읽었다. 프로젝트 성공에 영향을 주는 요소에 "고객 참여"와 "코드 공유"가 중요하다는 부분은 흥미로웠다.

일전에 모 매체와 인터뷰에서 기자가 이런 질문을 했습니다. "애자일을 진행하는 가운데 가장 빈번히 빚어지는 폐단은 무엇인가?" 저의 답변은 이랬습니다. "애자일을 반애자일적으로 진행하는 것이다. 예컨대 애자일은 불확실한 상황에 대한 접근법인데, 애자일을 도입할 때 확실성 위에서 진행하려고 한다면 문제가 된다."



이 글에는 제휴(Affiliate) 프로그램의 링크가 포함되어 있습니다.

2019/01/31 23:58 2019/01/31 23:58