Googleのソフトウェアエンジニアリングを読む
2025-08-10
第1章 ソフトウェアエンジニアリングとは何か
プログラミングとソフトウェアエンジニアリングの違い
本書では、Googleで何万人ものエンジニアが世界中に広がるコンピュータソースを用いて、何十年も存続する見込みのソフトウェアの構築と保守を行う際に、効果があると突き止められたものを公開している。
本書ではまず、プログラミングとソフトウェアエンジニアリングをそれぞれ下記のように定義づけた。
プログラミング
プログラミングは、新しいソフトウェアを生成する方法である。プログラミング自体は1人で行うことができる。
ソフトウェアエンジニアリング
ソフトウェアエンジニアリングでは、プログラミングによって生成されたソフトウェアが**持続可能(sustainable)**であり、スケールする状態で管理されている状態を目指すことである。 またその状態は、チームで努力することで達成できる。
【個人メモ】 ソフトウェアエンジニアリングを行うにあたって、稼働期間とアップグレードの重要性について考える必要がある。 何年も稼働しているソフトウェアでは必ずアップグレードを行う必要が出てくるが、これを最初から計画していない(開発期間中にリリース数年後のアップグレードまで見越して開発していない)場合は、下記の理由で苦痛に満ちたアップグレードになるそうだ。耳が痛い。
- プロジェクトで実行されたことがない未知のタスクを実施することになり、より多くの隠れた前提条件が組み込まれる。
- アップグレードを担当するエンジニアには、上記のようなタスクの経験が少ない可能性が大きい。
- 複数年分のアップグレードをまとめて実施する必要があり、アップグレードのサイズが通常大きくなる。
これだと確かに、二度とやりたくなくなる。。。
続きは随時更新していく予定。とりあえず一章を読み進めようと思う。 興味を持った人は↓のリンクから買ってくれると大変励みになります。
Googleのソフトウェアエンジニアリング 持続可能なプログラミングを支える技術、文化、プロセ/オライリ-・ジャパン/タイタス・ウィンタース