2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

株式会社要 cavacanチームAdvent Calendar 2024

Day 11

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス を読んだまとめ

Last updated at Posted at 2024-12-10

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

ソフトウェア開発会社としてのGoogleをテーマとし、Googleの開発チームが従う哲学、プロセスを示す書籍。
序盤の、概念・文化についてのところを読んでみた。

  1. ソフトウェアエンジニアリングとは何か
    1. 時間と変化
    2. Hymmの法則
    3. 時間とスケール
    4. トレードオフとコスト
  2. 文化
    1. チームでうまく仕事をするには
      1. 結論
  3. ここまで読んでみて

ソフトウェアエンジニアリングとは何か

時間と変化

寿命が短いソフトウェア、プロジェクトについては、その維持をあまり考える必要はない(使い捨て)。

しかし、Google検索、Apacheのように無限に継続すると思われるプロジェクトは、それを維持する中で長期的なアップデートが必要。

Hymmの法則

Hymmの法則:あるAPIを使用するユーザーが十分いれば、そのシステムのあらゆる観察可能な挙動に対して依存するユーザーが現れる

つまり、十分ユーザーがいれば、変更すること自体がユーザーへの大きな影響となる。(緩和はできるけど根絶はできない)

何も変更しないことを前提とするのも現実的ではない。(セキュリティパッチを適用できないと詰む)

時間とスケール

プロジェクトが持続するなかで、人的資源やコンピューティング資源はスケールしていく。

トレードオフとコスト

Googleレベルの会社だと、開発のコストに社会コスト(社会への影響)を含むことは避けられない。

上記のような観点から、持続可能なコードベースを保持していくための有用なフレームワークを提示したい。

文化

チームでうまく仕事をするには

エンジニアは、未完成の仕事を公開することを嫌がる、怖がる傾向がある(批判されたくない わかる!)

しかし、それは大きな問題である。

  • 間違ってても気付けない
  • 自分が消えればプロジェクトが終わる
  • 人の目が多ければ多いほど、フィードバックループが得られる

隠れることはリスクが多い!

こういった効果のあるチームを作る方法:謙虚、尊敬、信頼

Google的であること:強力なリーダーシップを表象し、「謙虚、尊敬、信頼」を体現するものとして我々が求める、属性と品行のセット。

フィードバックを尊重する、現状に立ち向かう、ユーザーを第一に置く、チームを思いやる、正義を為す

結論

チームをめぐって、謙虚と信頼と尊敬に根差した健全な文化が必要。リスクを取ってときには失敗もすることが必須となる。人々がそうした失敗を受け入れるには、健全なチーム環境が存在しなければならない。

ここまで読んでみて

チーム内で個人が分断されている状況では開発・保守はうまくいかないということだと思う。これまでのプロジェクトでの経験でも感じたところ。

関係者同士でピリピリしてコミュニケーションとりづらい状況だといろいろ難しいね…。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?