虎の穴開発室ブログ

虎の穴ラボ株式会社所属のエンジニアが書く技術ブログです

MENU

Googleのソフトウェアエンジニアリングを読んだ感想

こんにちは。虎の穴ラボのS.Sです。 今回は、オライリー・ジャパン発行の「Googleのソフトウェアエンジニアリング」を読みましたので、今回は途中の8章(全25章)までの中で、特に印象に残った部分の紹介と読んだ感想を述べたいと思います。

書籍情報

  • Googleのソフトウェアエンジニアリング
  • 編者:Titus Winters、Tom Manshreck、Hyrum Wright
  • 監訳者:竹辺 靖昭
  • 訳者:久富木 隆一
  • 出版社:オライリージャパン
  • 発行日:2021年11月
    www.oreilly.co.jp

内容紹介

【2章 チームでうまく仕事をするには】

共同作業を円滑に行うためにの社交スキル

共同作業を円滑に行うためにの社交スキル「三本柱」が紹介されています。

「謙虚」

→ 自分は全知全能でも、常に誤りのない存在でもない。

「尊敬」

→ 他者を心から思いやり、他者の能力と成果の価値を認める。

「信頼」

→時には、他者に舵取りを任せるのも有効な手段。

人付き合い上で、何かしらの衝突があった場合、その原因は上記三本柱のいずれかに該当している可能性が高いです。
皆が相応しい程度に謙虚か、人々が互いを尊敬し合っているか、相互の信頼はあるか、この辺りを振り返ってみると良いです。
この三本柱の「謙虚・尊敬・信頼」は本書の中で、度々出てくるので、Googleの中で重要視していることが伝わります。

【3章 知識共有】

メンター制度

Googleでは、新入社員に対し、立ち上がりを支援するためにメンターがつきます。
メンターは志願制で、Google在籍1年以上かつ、チームメンバー、マネージャー、テックリード以外であれば希望することができます。
よくあるメンター制度は、同じチーム内の先輩エンジニアが任命されるパターンが多いですが、Googleでは、所属チームとは異なるチームのメンバーがメンターになるのが特徴です。
これはメンティーが所属しているチームが込み入った状況でも、メンティーがメンターに対し、気楽に助けを求められるようにしたためです。

質問を恐れることなく尋ねよ

これは本文からの引用ですが

初心者のする間違いの中で最大のものは、作業に行き詰まったときに助けを求めないことである。
1人で切り抜けようとしたり、自分にとっては難しい問題だが、先輩にとっては簡単すぎる問題なため質問自体を躊躇してしまう場面があるかもしれません。
しかし、それは過ちであり「それが何か知らないので、説明してくれませんか」と助けを求めることを恐れてはいけません。これは新人・リーダーであろうと関係ありません。

常に追求を持ち続ける姿勢を持ち続けたいですね。

【6章 スケールするリーダー】

パフォーマンスを最大限に発揮するためのエネルギー管理

自身のパフォーマンスを最大限に発揮するために、エネルギー管理は大事なものになります。リーダーとなると、自身の作業時間の他に、チームを管理するための時間が必要となるため、余計にエネルギー管理が大事になってきます。
そのエネルギー管理で大事になってくるのは、やはりエネルギーを回復するための休息になります。
休息中に、仕事のメールやチャットを確認していては、休息にはなりません。
先のことを十分に計画して、休暇の前に懸念事項を全てクリアにした状態で休息に入ることで、心理的にも距離が置けるので、本当の休息になります。
エネルギーを十分に充電して、またフルパワーでパフォーマンスを発揮するためにも、休息は大事にしたいものです。

人間の脳は、90分ごとに活動を繰り返しているそうです。これを「BRAC(Basic Rest–Activity Cycle)」と呼ばれていますが、このリズムに沿って、90分間仕事をして、5分くらい机から立ち上がって、体を動かして、気分をリフレッシュする。そしてまた90分間集中して作業を行う・・・このサイクルを繰り返すことで、長時間机に座り続けて作業を行うより、より効率的に作業を行えるそうです。
※BRACについて解説されているサイト: www.karadakara.com

【8章 スタイルガイドとルール】

何故スタイルガイドとルールを設けるのか

なぜ、C++、Python、JavaなどのGoogleのスタイルガイドが作成されたのか解説されています。
ルールを設置する目的は、間違った行動を思い止まらせ、正しい行動に導くためです。
確立したルールとガイドラインがあれば、どのようなコードを書けば良いか悩む必要はなくなり、自分がどのようなコードを書けば良いかに集中できます。
私が所属しているチームにも、最初はコーディングルール的なものはなく、コードの内容は各エンジニアばらつきがあるものでした。
この状態だと、レビューも負担がかかり、品質にも影響するため、チーム独自のコーディングルールを徐々にですが整備を行いました。
今では各エンジニアが書くコードの内容はある程度統一されたものになり、コードレビューの負担軽減や品質向上にも繋がりました。

※Googleのスタイルガイド github.com

感想

Googleという巨大なサービスを支える、エンジニアたちのマネジメント方法や文化・技術の話などが紹介されていて、メンター制度など今や一般的な制度もなぜ生まれたかも、解説されています。それぞれの制度の役割を改めて知ることが出来るので、このあたりは参考になりました。
チーム運営がうまくいっていないと感じた時に、読んでみると何かしら解決のヒントになりそうです。
全25章(684ページ)とボリュームがあるので、毎日少しづつ読んで、自分のチーム・組織に取り入れられそうな改善点はないか、探りがなら読むのがオススメです。

P.S.

採用

虎の穴では一緒に働く仲間を絶賛募集中です!
この記事を読んで、興味を持っていただけた方はぜひ弊社の採用情報をご覧下さい。
yumenosora.co.jp

LINE スタンプ

エンジニア専用のメイドちゃんスタンプが完成しました!
「あの場面」で思わず使いたくなるようなスタンプから、日常で役立つスタンプを合計 40 個用意しました。
エンジニアの皆さん、エンジニアでない方もぜひスタンプを確認してみてください。 store.line.me