“구글 엔지니어는 이렇게 일한다” 책은 구글에서 일하는 방식과 문화에 대해서 설명해 주는 책입니다. 책 저자는 구글 소프트웨어 엔지니어링에서 인프라와 언어 관련 프로그래밍 가이드를 작성하고 관리하는 업무를 주로 담당했습니다.
책에서는 문화, 도구, 프로세스 주제로 설명하고 있습니다.
문화에서는 구글에서는 팀워크를 어떻게 이끌어 내는지, 지식 공유, 조직 이끌기, 생산성 측정 하기와 같은 구글이 다른 회사와 어떻게 다르게 이 주제를 이끌어 가는지를 설명하고 있습니다.
특히 문화 중 성장하는 조직 이끌기에 보면 일과 삶을 어떻게 분리해서 구글에서 팀원들이 어떻게 에너지를 관리하는지 대해서 자세히 설명하고 있습니다.
도구에서는 버전 관리와 브랜지 관리, 빌드 시스템, 지속적 통합, 지속적 배포에 대해서 설명합니다.
전세계 유저들이 사용하는 시스템에서 지속적 통합은 어떻게 이뤄지고 어떤 방법으로 배포를 하는지 대해서 자세히 설명을 해주고 어떤 철학으로 회사 시스템을 운영하고 있는지 설명합니다.
프로세스에서는 코드 리뷰, 스타일 가이드 규칙 와 같은 업무 프로세스가 어떻게 흘러가는지 설명을 합니다.
이 책에서 다루고 있는 단위 테스트는 소프트웨어서 말하는 테스트 방식과 비슷합니다.
저는 내용을 읽으면서 처음에는 테스트 부분에 관심이 있었다. 평소 테스트 코드 작성하는 것에 집중하다 보니 큰 회사에서는 테스트 코드를 어떻게 작성하고 큰 단위 테스트를 어떻게 하고 있는지가 궁금했는데 읽으면서 궁금증이 많이 해소가 되었다. 특히 테스트 대역(=Mocking)은 내가 평소에 사용하고 있는 방법 하고는 조금은 달랐다.
나는 주로 테스트 대역을 구글에서는 테스트 대역을 지양하는 것이었다. 이 부분은 얘기로는 들었지만 왜 지양을 하는지에 대해서는 명쾌하게 설명하는 부분들이 없었지만 책에서는 그 설명이 자세하게 되어 있어서 읽으면서 좋았다.
최근 문서화 작업을 하면서 10장 문서자료 부분을 많이 참조하면서 문서를 작성하고 있다. 문서작업이 왜 중요한지 읽는 사람이 어떤 사람인지에 따라 문서 작성 스타일이 달라야 하는지도 알게 되었다.
특히나 튜토리얼은 Readme 작성할 때 바로 사용해볼 수 있는 것이라서 책을 옆에 두고 참고하면서 적용하고 있다.
내가 생각하는 책 중 코드 컴플리트 2 책은 소프트웨어에 대한 지침서라면 이 책은 구글이 어떻게 일하고 있는지에 대한 책 이기보다는 소프트웨어 개발자가 어떻게 일해야 하는지 알려주는 지침서 역할 같은 책인 거 같다.
전반적으로 책 내용들이 퀄리티도 높고 항상 옆에 두고 보면서 적용한다면 일을 잘한다는 소리를 들을 수 있을 것 같다.