이 책을 읽어봐야겠다고 생각했던건 회사 업무에서 일하는 방식이 조금 비효율적이라는 생각이 들고부터였다. 같이 일하는 사람과의 협업이 전혀 되지않고 코드 리뷰가 제대로 되고있지 않는 상황에서 내가 할 수 있는건 뭘까? 라는 고민을 엄청 했던 것 같다.
그러던 와중에 이 책의 제목을 보고 “그 구글에선 도대체 어떻게 일하는데?” 라고 어그로 끌려서 이 책을 홀린듯 읽기 시작했다.
이 챕터에서는 오랫동안 유지보수가 가능하고 업데이트하기 용이한 코드를 작성하기 위해 팀간 협업을 가능하게 하는 정책, 관례등을 모두 어우르는 개념에 대해 설명하고있다.
사실 나는 지난 프로젝트때 가장 힘들었던게 유지보수 가능한 코드가 아닌 당장 기능만 돌아가면 되는 코드를 만들고 있었기때문에 나는 당장 소프트웨어 엔지니어링이 되고있지 않는다. 라는 생각을 했던 것 같다.
가장 재미있게 읽었던 챕터였다. 정말 구글에서 어떻게 일을 하는지 어떤 프로세스를 도입하고있는지 실례를 가지고 설명했기때문에 꽤 많은 도움이 되었다.
내가 가장 관심 있게 봤던 부분은 팀워크에 관련 된 내용이었다. 어느정도 연차가 쌓인후 관심을 갖는건 리딩, 팀워크 이었기때문에 관심있게 읽었다.
내 코드에 대해 부끄러워하지말고 적극적으로 피드백을 받고 피드백을 반영하는 것이야 말로 퀄리티를 향상시키며 서로간의 신뢰 받는 코드를 만드는 길이 아닐까? 라는 생각을 해보았다.
지식공유 파트에서는 팀이 성장하기위한 지식공유, 리더의 역할에 대해 설명하고 있다. 그중 인상적인 구절은 다음과 같았다.
매번 비슷한 말을 반복하게 되는데 나는 간단하게는 코드리뷰가 얼마나 잘되느냐에 따라 팀의 성장이 달라진다고 생각한다.
사실 나는 매니지먼트를 지향하고 있기때문에 이 챕터 역시 관심있게 읽었던 부분이다. 현재 팀에서 리더, 서브리더를 번갈아 맡아가고있었지만 과연 내가 리더로서 팀원들에게 신뢰를 줄수있는가? 나는 과연 좋은 리더인가? . 다음 팀에서 내가 좋은 리더로 성장할 수 있는가? 라는 생각을 많이 했던 것 같다.
리더는 팀원의 성과와 생산성 행복을 관리할 수 있어야하고 구성원들의 다리가 되어줄 수 있어야한다.
즉 자율성을 부여하고 목적의식을 주며 성장할 기회를 제공할 수 있어야한다. 라는 부분을 인상깊게 본것같다. 연차가 낮을수록 성장욕구는 강해지는데 그런 부분을 이룰수있는 팀을 만드는것이 중요할 것 같다는 생각을 했다.
이 챕터에서는 실제 구글에서 어떤 프로세스로 코드리뷰를 진행하는지, 문서를 관리하는지 테스트는 어떻게 하는지에 대해 설명하고 있었다. 이부분은 솔직히 각 조직에서 바로 가져와서 대응하기엔 어려운 부분도 많다라는 생각을 했다. 하지만 일부 부분에 대해서는 우리팀에서도 이러한 부분을 도입하면 좋겠다 라는 생각을 했다.
그중 이런 부분이 중요하다라고 생각한것은 코드리뷰에 있어서 “가독성”리뷰가 매우 신선하다고 생각했다.
대부분의 조직은 리뷰에서 가독성도 리뷰어가 전부 확인하게되는데 구글에서는 가독성 인증자라는 담당자가 있어 코드의 가독성에 대한 리뷰를 진행한다고 한다. 각 리뷰어에 따라 가독성에 대한 기준이 다를 수 있는데 가독성인증자라는 제도는 일관적인 기준이 있어 모두가 이해하기 쉽지않을까? 라고 생각해 보았다.
사실 위에 작성한 내용은 이 책의 일부분에 지나지 않는다. 하지만 한페이지에 작성하기엔 책의 내용이 너무 방대하기때문에 우선은 여기까지 작성하려고 한다. 우선 나는 이 책을 읽으면서 굉장히 많은 인사이트를 얻었다고 스스로는 생각한다. 하지만 내가 아직 여기서 배운걸 적용할 수 있느냐? 라고 물어보면 아직 팀내에 그정도 영향력은 없기때문에 느낀부분을 적극적으로 활용하지 못하기 때문이다.
개인적으로 나는 이 책은 리더를 지향하거나 리더로서 현업에 근무하고 있는 사람들에게 추천하고싶다. 그 이하 연차에서는 크게 공감이 되지않거나 이런 부분을 개선하고 싶지만 개선하지 못하는 벽에 부딪칠수 밖에 없다고 생각한다.
나는 실제로 이 책을 보면서 우리 팀에 적용하고자 하는 부분이 많았지만 현실적인 문제로 상당부분 개선하지 못했기때문에 내가 팀을 꾸린다면 내게 이정도 권한을 준다면 차용하고싶다. 라고 생각한 부분이 다수 존재했다.