[리뷰] 구글 엔지니어는 이렇게 일한다
커피 열잔으로 구글 멀티버스 체험하기
이번 글은 구글 엔지니어는 이렇게 일한다
라는 책의 리뷰입니다.
한빛미디어
의 나는 리뷰어다
활동을 위해서 책을 제공받아 작성된 서평입니다.
이번 책을 읽는 과정에서
- 개발을 잘하지는 않지만 잠깐 했었고, 주업무는 데이터 직군이라는
개발과 비개발 사이의 업무
를 했던 IT 업계에 근무했던 관점으로 읽었습니다.
요약
세계의 기술을 선도해가는 빅테크 기업들을 언급할때 항상 나오는 기업들 중 하나인 구글은 아래의 주가 차트처럼 나날이 영향이 커지고 있습니다. 당연하게도 구글에 대한 이야기를 다루고 있는 책 (특히 최근에는 OKR !) 또한 많이 있죠.
이번에 리뷰를 하기 위해 신청했던 이 책은 초판 발행일이 5월 10일로 나온지 얼마 안된 책인데요. 책을 읽기 전에 생각했던 질문이 2가지 있었습니다. (걱정반 기대반)
- 첫번째로,
제가 잘 소화할 수 있는 책일까?
에 대한 질문입니다. 저는 좋은 엔지니어가 되고 싶기는 하지만 좋은 엔지니어는 아니기 때문이죠. - 두번째로,
다른 “구글러”의 책들과 어떤 차별점이 있을까?
였습니다. 구글의 여러 요인들을 소개하는 책들이 꽤 있고 몇권은 읽었기도 하기 때문입니다.
그 결과, 이 책의 2/3 정도를 구성하고 있는 개발에 대한 부분은 이해하기 까지 더 많은 시간이 필요할 것 같다
고 생각했습니다. 그러나 나머지 1/3 정도의 부분은 꼭 개발자가 아니더라도 어떤 컨텐츠를 만들어가는 생산자 혹은 다른 사람과 협업을 하고 리드를 해야하는 사람
이라면 충분히 읽고 도움 받을 수 있는 부분이라고 생각합니다.
개발에 대한 부분은 아쉽게도 미들이나 시니어급 이상의 개발자라면 참고 하면 큰 도움
이 되겠지만, 주니어나 엔트리라면 (당연히 알아두면 좋지만) 이것 보다 더 우선으로 봐야할 부분들이 많다고 생각해요. (개인적인 생각입니다.)
또 하나의 특이한 점이라면, 이 책은 지은이라는 단어를 쓰지 않고 큐레이션 이라는 단어
를 쓰고 있는데요. 수많은 사람들이 작성하고, 또 기여하고 편집한 글을 정리 한 내용을 기반으로 작성한 책이기 때문입니다.
요약이 너무 길어졌습니다. 그렇지만 너무 멋진 말이라, 곽용재 NHN 연구소장님께서 쓰신 리뷰의 일부분을 빌려오는 것으로 요약을 마치겠습니다.
시중에 나온 많고 많은 자기계발/실천법 서적들을 응축하여 구글이 핸드드립한 에스프레소를 마시는 느낌이니, 이 책만 잘 읽어도 이 바닥 전체를 섭렵한 기분이 들것입니다.
권장 독자
- 1. 소프트웨어
엔지니어
(프로그래머 / 개발자) - 2. 조직에서
리더
를 맡게 될 (맡고 있는) 사람. - 3. 자신이 하는 업무를 많이 생각하고 고민하는
장인
이 되고 싶은 사람.
이 책의 장점
앞의 요약에서 언급한 “구글러
” 책으로써의 장점은 서술하지 않겠습니다.
번역이 정말 잘 되어 있습니다.
에세이나 동화처럼 부드럽게 술술 읽히기 때문에 웅장한 두께를 자랑하지만 겁먹지 않아도 좋을 것 같습니다.(단, 테크니컬한 도메인이 필요한 부분은 예외입니다 )- 각 장 마다
주요 내용들을 다시 정리
해주고 있어서, 이 내용을 통해서 꼭 알아야 하는 핵심 내용을 기억 하기에 좋을 것이라고 생각합니다.
적절한 예시나 그림
을 통해 (어쩌면 구글의 사례) 설명하고자 하는 내용을 더 쉽게 이해 할 수 있습니다.
- 책 전체가 우리 (구글)가 한 것이 무조건 정답이다 와 같은 톤보다는 우리는 이렇게 했었고, 앞으로 여러분을 포함해서 더 세상이 좋아지게 서로 기여하는 과정이 되었으면 좋겠다 의 톤으로 서술 되어 있다고 느꼈는데요.
고객이 아닌 구성원으로써의 구글의 문화
를 책을 통해서지만 간접적으로 느껴볼 수 있다고 생각합니다
개인적으로 아쉬운 점
- 책은 전제, 문화, 프로세스, 도구 라는 4개의 파트로 구성되어 있습니다. 그리고 만약 여러분이
개발자가 아니라면 이 중 프로세스와 도구 부분에서는 얻어가는 것이 상대적으로 적을 수
밖에 없습니다.
- (책의 단점은 아니지만), 이 책에서는
독자와 독자의 동료 수준이 구글러가 아니라는 것
을 고려하지 못했습니다. 많은 조직들이 “아직은” 이 책에서의구글 처럼 “우아한” 고민을 할 수 없는 상황
이라고 생각합니다. 가령 “코드 스타일을 맞춰야한다.” 라는 “소프트웨어 엔지니어링” 의 문장을 보면서 공감은 하겠지만 “모르겠고, 당장 내일 코드가 돌아가야 한다” 와 같은 “프로그래밍” 적인 접근을 해야 하는 경우도 너무 많기 때문이죠 (소프트웨어 엔지니어링과 프로그래밍은 이 책의 표현입니다) 책이 꽤 두껍습니다.
(700+ 페이지) 장식용으로도 아주 안성맞춤이죠. 만약 개발과 비개발 부분을 따로 나누어서 출판했어도 꽤 좋았을 것 같다라는 생각이 들었습니다. 큰 이슈는 아닙니다.
내용
1. 전제
- 1장: 소프트웨어 엔지니어링
2. 문화
- 2장: 팀워크
- 3장: 지식공유
- 4장: 사회를 위한 엔지니어링
- 5~6장: 팀/조직 리딩
- 7장: 개발에 대한 메트릭
3. 프로세스
- 8장: 코딩 스타일 & 규칙
- 9장: 코드 리뷰
- 10장: 문서화
- 11~14장: 테스트
- 15장: 폐기 (시스템 걷어내기)
4. 도구
- 16장: 버전 컨트롤
- 17장: Code Search
- 18장: 빌드
- 19~20장: 코드리뷰 +
- 21장: 디펜던시
- 22장: 대규모 변경
- 23~24장: CI/CD
- 25장: 배포 인프라
(다시 한번) 아 완벽히 이해했어!