구글 엔지니어는 이렇게 일한다(타이터스 윈터스, 톰 맨쉬렉, 하이럼 라이트) - 07
공감되거나 인상 깊었던 문장들은 다음과 같다.
- 구글에서 코드 리뷰는 필수다. 모든 변경 목록(CL, changelist)은 가독성 승인을 얻어야 한다. 가독성 승인(readability approval)이란 해당 언어의 가독성 자격증(readability certification)이 있는 누군가가 해당 CL을 승인했다는 표시다. (P.116)
- 사실 모든 사용자를 존중하면서 또 도움이 되는 제품을 만드는 방법은 구글도 여전히 배워가는 중이다. 가장 취약한 고객들을 보호하지 못한 실패 사례를 구글도 많이 가지고 있다. 그래서 더 공정한 제품을 만드는 길은 자신의 실패를 냉철하게 돌아보고, 거기서 한 걸음 더 내딛도록 장려하는 데서 출발한다고 믿는다. (P.121)
- 사용자의 국적, 민족, 인종, 성별, 연령, 사회 경제적 위치, 장애 여부, 신념 체계 등에 신경 쓰지 않는다면 가장 우수한 엔지니어라 할지라도 의도와 달리 사용자에게 피해를 줄 수 있다. (P.122)
- 무의식적인 편견은 교묘하여 의도적인 배척 행위보다 물리치기 어려울 때가 많다. 심지어 옳은 일을 하려면서도 내면의 편견을 인지하지 못할 수 있다. 우리가 속한 조직도 이런 편견이 존재하는지 확인하고, 인력 운용, 제품 개발, 봉사 활동 등에 잘못된 편견이 스며들지 않도록 조심해야 한다. (P.122)
- 구글은 뛰어난 엔지니어가 되려면 제품 설계와 구현에 다양한 관점을 포용해야 한다고 믿는다. (P.124)
- 뛰어난 엔지니어라면 제품이 어떻게 다른 그룹의 사람들에게 유리하게 혹은 불리하게 적용되는지 이해하는 능력이 있어야 한다. 엔지니어가 되려면 기술이 적성에 맞아야 함은 당연하고, 무언가를 만들어야 할 때와 아닐 때를 구분하는 안목도 갖춰야 한다. 부정적인 결과를 낳는 기능이나 제품을 알아채는 역량과 거부할 수 있는 용기를 기르는 것도 이 안목에 포함된다. (P.125)
- 엔지니어는 자신이 생각하는 것 이상의 힘을, 문자 그대로 사회를 변화시킬 힘을 지니고 있다. 그래서 뛰어난 엔지니어가 되려면 힘을 발휘하되 해를 끼치지 않아야 할 책임도 함께 있음을 이해해야 한다. (P.125)
- 공정 사회로 가는 길은 길고 험난하다. 하지만 단순히 도구와 서비스를 구축하는 데서 벗어나 우리가 만든 제품이 인류에 어떤 영향을 주는지를 더 깊이 이해해야 한다. (P.132)
구글처럼 큰 조직에서 코드의 가독성에 관련된 부분까지 엄격한 리뷰를 하고 있다는 사실이 놀라웠다. 나는 가독성이란 것이 개인적인 스타일에 따라 주관적으로 해석되는 경향이 있다고 생각한다. 누군가의 코드를 리뷰할 때 정말 누가 봐도 엉망인 경우를 제외하고 ‘가독성이 떨어지네요’라는 말은 비생산적인 경우가 많았다. 그런데 구글은 코드의 가독성까지 고려해 동일한 코드 스타일을 유지한다고 한다. 그만큼 프로세스가 딱딱하고 오래 걸릴 것 같다는 생각이 든다. 책에서는 가독성 리뷰를 통해 얻는 장점이 단점보다 크다는 인사이트를 내부 설문 조사를 통해 얻었다고 하지만, 직접 경험해 보지 않았으니 잘 모르겠다. 정말 그럴지 궁금하다.
구글은 다양한 사람들을 대상으로 서비스하다 보니 사용자 모두를 만족시키기 위한 노력을 하지만, 이것이 쉽지 않은 것 같다. 구글처럼 성공한 기업도 여전히 실패를 겪고 있으며 이를 통해 배우면서 개선하고 있다는 이야기가 인상 깊었다. 소프트웨어 엔지니어는 살아온 인생과 겪은 경험에 따라 생긴 편견이 자신도 모르게 제품에 스며들고, 이는 의도하지 않게 사용자에게 피해를 끼칠 수 있으니 주의가 필요하다는 말이 공감됐다. 나는 구글처럼 다양한 사용자를 위한 서비스를 개발하고 있진 않지만, 엔지니어로서 내가 만든 제품의 사이드 이펙트를 고민해 보고, 문제가 될 수 있는 부분에 대한 의견을 제시할 수 있는 용기가 필요하다는 생각이 들었다.
댓글남기기