「ソフトウェアエンジニアリングの基礎」から見る読書マップ

書評 O'Reilly ソフトウェアエンジニアリングの基礎
目次

ソフトウェアエンジニアリングの基礎(オライリー・ジャパン)

はじめに

『ソフトウェアエンジニアリングの基礎 ―コーダーからエンジニアになるための実践ガイド』(村上列訳、オライリー・ジャパン、2026年9月)を読了しました。

ジュニアなエンジニアが成長するために知っておくべきことが非常によくまとまっており、共感する部分が多かったので、読んでみての感想を残しておきたいと思います。また、この書籍は各章の末尾で「関連リソース」として書籍をいくつか紹介しています。これだけよく整理された本なのでここから良質な読書マップが作れるのではないかと思い、整理してみました。

書籍概要

原書は O’Reilly Media の 『Fundamentals of Software Engineering: From Coder to Engineer』(2025年11月)で、著者は Nathaniel Schutta と Dan Vega の2人です。

序文によれば、想定読者は新人のソフトウェアエンジニアで、大学やブートキャンプで教わることと、現場で必要になることのギャップを埋める「オンボーディングガイド」として書かれています。私自身はエンジニアとしてのキャリアが約15年になりますが、まさに新人のころ(新人研修を終えて現場に出たばかりのころ)に読んでおきたかったなと思いながら読んでいました。

全体は4部構成の全15章です。第1部はコードを読む・書くといったコアスキル、第2部はモデリングやテストなどの技術的なプラクティス、第3部は UI、データ、アーキテクチャ、本番環境といった設計と開発、第4部は生産性、学び方、ソフトスキル、キャリア、AI というプロフェッショナルとしての能力開発と成長を扱います。

各章のページ数は次の通りです。

章 タイトル ページ数
1章 プログラマからエンジニアへ 14
2章 コードを読む 22
3章 コードを書く 20
4章 モデル 18
5章 自動テスト 18
6章 初めて触れるシステムの調査と変更 32
7章 ユーザーインターフェース設計 30
8章 データの取り扱い 48
9章 ソフトウェアアーキテクチャ 20
10章 本番環境へ 40
11章 生産性を向上させる 14
12章 学び方を学ぶ 18
13章 テクノロジー業界でソフトスキルを磨く 20
14章 キャリアマネジメント 38
15章 AI を駆使するソフトウェアエンジニア 29

ソフトウェアエンジニアリングという広いテーマを1冊にまとめるにあたって、何をどこまで書くかはかなり悩ましいと思います。そう考えると、ページ数が多い章ほど、著者が相対的に重要だと見ている章だと受け取ってよさそうです。中でも8章のデータと10章の本番環境は、ほかの章の2倍程度の分量があります。どちらもそれ単体で1冊の本が書けるトピックであり、重要な内容が多い領域なので納得です。

読み終えた感想

全体を通して良いなと思った点を紹介します。

  • テーマの選び方とそれぞれに割く分量のバランスがすばらしい。
    技術的なテーマのポイントの押さえ方(モデリング、テストピラミッド、トランザクション、キャッシュなど)もさることながら、ないがしろにされがちなソフトスキルまで丁寧に扱っている点が良い。ジュニアを育てる立場から読んでも、最低限押さえておいてほしいことのエッセンスが高い密度で詰まっている。

  • リアルな現場を前提として書かれている。
    大学や新人研修で実施するようなゼロからの開発(グリーンフィールド開発)ではなく、既存のシステムに向き合うこと(ブラウンフィールド開発)を前提として書かれている。これに合わせて「コードを書く」より先に「コードを読む」の章を置いている点も良い。座学と現場のギャップがわかり、新人エンジニアの視野をぐっと広げてくれる一冊になっている。

  • なぜそれが必要なのかがわかる。
    バージョン管理、自動テスト、CI/CD など実際の現場では当たり前になっているプラクティスについて、なぜ必要なのかが明確に説明されている。私のように、なぜ必要かを教わらないまま、現場で言われるがままにいろいろなツールを入れさせられた人も少なくないはず。

  • あまり人から教わらないようなことを教えてくれる。
    生産性の高め方(ショートカットを使う話とか)やナレッジの管理方法、コミュニケーションの取り方や学習方法といった細かい話ではあるが、かゆいところに手が届くようなトピックが盛り込まれている。新人のころにこれを知れたらどれだけ楽だっただろうかというネタが多い。

著者について

読みながら共感するところが多かったので、著者の2人のキャリアについて調べてみました。

Nathaniel Schutta

ntschutta.io

Nathaniel Schutta は Thoughtworks のソフトウェアアーキテクトです。Ryan Asleson との共著 『Foundations of Ajax』(2005年)をはじめとし、Neal Ford と Matthew McCullough との共著 『Presentation Patterns』(2012年)があります。O’Reilly のレポートとしては 『Thinking Architecturally』(2018年)と 『Responsible Microservices』(2020年)を執筆しています。『Thinking Architecturally』は本書のさまざまな章で関連リソースとして挙げられています。2023年には Java Champion の称号を得ました。Java コミュニティへの貢献が認められた開発者に贈られるものです。講演の機会も多く、米国各地で開かれる開発者向けカンファレンス No Fluff Just Stuff の常連です。本業と並行して、ミネソタ大学の非常勤教授として「技術の変化を受け入れ、評価する姿勢」を学生に教えています。

Dan Vega

danvega.dev

Dan Vega は Broadcom の Spring Developer Advocate です。2000年に2年制の技術系カレッジを卒業しました。在学中から独学で Web アプリケーションを作り、仕事として請け負っていたそうです。卒業後はカリフォルニアのスタートアップ Five9 でテクニカルサポートとして働き、その後クリーブランドに戻って複数の企業で開発の仕事に就きました。途中、コーディングブートキャンプの Tech Elevator でカリキュラム開発を担当しています。2022年1月から VMware の Spring Developer Advocate を務め、Broadcom による買収後も同じ役割を続けています。2024年には Java Champion に選ばれました。YouTube チャンネル の登録者は2026年10月時点で約32万人、Udemy の受講者は約16万人で、週刊のニュースレターも発行しています。Spring Office Hours というポッドキャストでは共同ホストを務めています。

2人の経歴をみて

本書のコード例は Java が中心で、テストの例は JUnit と Mockito で書かれており、Spring Boot や Spring Data の話も何回か登場します。2人とも Java Champion だと知って、Java の例が多いことにも納得できました。

また、2人とも現役のエンジニアでありながら、人に教える立場にもいます。Schutta は大学で教え、Vega はブートキャンプでカリキュラムを作り、今は YouTube や講座で Spring を教えています。現場で手を動かし続けながら、人を育てる仕事にも長く関わってきたからこそ、若手にとって必要なことを解像度高く書けたのだと思います。

関連する書籍

各章の「関連リソース」では、書籍のほかにブログ記事、講演、Web サイトなどが挙げられています。ここでは書籍だけをピックアップして一覧化してみます。

書籍は全部で55冊でした。なお、同じ本が複数の章で挙がることがあります。3つの章で挙がるのは『達人プログラマー』、『情熱プログラマー』、そして Schutta 自身の『Thinking Architecturally』の3冊でした。

1章 プログラマからエンジニアへ

4章 モデル

5章 自動テスト

  • Clean Code(Robert C. Martin、2008)
    邦訳:Clean Code(KADOKAWA、2017、初刊 2009)
    命名、関数、コメント、テストなど、読みやすく保守しやすいコードを書くための規律をまとめた定番書

6章 初めて触れるシステムの調査と変更

  • Refactoring(Martin Fowler、第2版 2018)
    邦訳:リファクタリング(オーム社、第2版 2019)
    振る舞いを変えずにコードの構造を改善する手法を手順付きのカタログとしてまとめたリファクタリングの原典

  • Working Effectively with Legacy Code(Michael Feathers、2004)
    邦訳:レガシーコード改善ガイド(翔泳社、2009)
    テストのない既存コードに安全に手を入れるため、依存を断ち切ってテストを追加する技法を解説した、レガシーコード対応の定番書

  • Getting to Know IntelliJ IDEA(Trisha Gee、Helen Scott、2022)
    邦訳:なし
    IntelliJ IDEA の機能と使いこなし方を、JetBrains のデベロッパーアドボケイト2人が体系的に解説した本

7章 ユーザーインターフェース設計

8章 データの取り扱い

9章 ソフトウェアアーキテクチャ

  • Thinking Architecturally(Nathaniel Schutta、2018)
    邦訳:なし
    本書の著者 Schutta による無料のレポート。次々に現れる新しい技術をどう評価し、どう取り入れるかを論じる(掲載章:9章・12章・13章)

  • Head First Software Architecture(Raju Gandhi、Mark Richards、Neal Ford、2024)
    邦訳:なし
    イラストやクイズを多用する Head First シリーズのソフトウェアアーキテクチャ入門書

  • Fundamentals of Software Architecture(Mark Richards、Neal Ford、2020)
    邦訳:ソフトウェアアーキテクチャの基礎(オライリー・ジャパン、2022)。第2版の邦訳は 2026年3月
    アーキテクチャ特性の洗い出し、トレードオフ分析、主要なアーキテクチャスタイルを体系的に解説した入門書

  • How to Win Friends and Influence People(Dale Carnegie、1936)
    邦訳:人を動かす(創元社、改訂新装版 2023)
    人に好かれ、人を動かすための原則をまとめた、対人関係の古典(掲載章:9章・13章)

  • Building Evolutionary Architectures(Neal Ford ほか、第2版 2022)
    邦訳:進化的アーキテクチャ(オライリー・ジャパン、初版 2018)
    適応度関数でアーキテクチャ特性を継続的に検証し、変化に耐えるアーキテクチャを作る方法を解説した本

  • Influence, New and Expanded(Robert Cialdini、2021)
    邦訳:影響力の武器(誠信書房、新版 2023)
    返報性や社会的証明など、人が説得に応じる心理的な原理を解説した、説得の心理学の古典(掲載章:9章・13章)

10章 本番環境へ

  • Continuous Delivery(Jez Humble、David Farley、2010)
    邦訳:継続的デリバリー(KADOKAWA、2017、初刊 2012)
    ビルド、テスト、デプロイを自動化するパイプラインを体系化した、継続的デリバリの原典

  • The Phoenix Project(Gene Kim ほか、2013)
    邦訳:The DevOps 逆転だ!(日経BP、2014)
    炎上中の IT 部門を舞台に、DevOps の考え方を小説仕立てで描いたベストセラー

  • Head First Git(Raju Gandhi、2022)
    邦訳:なし
    Git のしくみを図解とクイズで学ぶ、Head First シリーズの入門書

  • Learning GitHub Actions(Brent Laster、2023)
    邦訳:なし
    GitHub Actions でワークフローを組み、CI/CD を自動化する方法を解説した入門書

  • Feature Flags(Ben Nadel、2024)
    邦訳:なし
    フィーチャーフラグの導入と運用に絞り、著者の実務経験をもとにまとめた自費出版の本

11章 生産性を向上させる

  • Flow(Mihaly Csikszentmihalyi、1990)
    邦訳:フロー体験 喜びの現象学(世界思想社、1996)
    時間を忘れて没頭する「フロー」状態を提唱した、心理学の古典

  • Building a Second Brain(Tiago Forte、2022)
    邦訳:SECOND BRAIN(東洋経済新報社、2023)
    デジタルのメモを整理して活用し、自分の外にもう1つの脳を作る、個人の知識管理の方法論

  • The Passionate Programmer(Chad Fowler、第2版 2009)
    邦訳:情熱プログラマー(オーム社、2010)
    開発者が自分のキャリアを主体的に築くための53の助言をまとめたエッセイ集(掲載章:11章・12章・14章)

12章 学び方を学ぶ

14章 キャリアマネジメント

  • Developer Career Masterplan(Heather VanCura、Bruno Souza、2023)
    邦訳:なし
    コミュニティへの参加や情報発信を軸に、開発者がキャリアを伸ばす方法を解説した本

  • The Manager’s Path(Camille Fournier、2017)
    邦訳:エンジニアのためのマネジメントキャリアパス(オライリー・ジャパン、2018)
    テックリードから CTO まで、エンジニアリングマネジメントの各段階で求められる役割を解説した定番書

  • Developer, Advocate!(Geertjan Wielenga、2019)
    邦訳:なし
    デベロッパーアドボケイトとして活躍する人たちへのインタビュー集

  • Help Your Boss Help You(Ken Kousen、2021)
    邦訳:なし
    上司との関係を自分から築き、うまく協力してもらうための方法を解説した本

  • Never Eat Alone(Keith Ferrazzi、Tahl Raz、2014、初版 2005)
    邦訳(2005年版):一生モノの人脈力(パンローリング、2012)
    相手の役に立つことを起点に人脈を築く方法を説いた、人脈づくりの実用書

15章 AI を駆使するソフトウェアエンジニア

読書マップ

55冊を一覧で見てもどこから手をつければよいかわかりづらいため、独自に再カテゴライズし、初版の年代別に分類してみました。そのうえで、独断と偏見により「次の一歩としてお勧めする書籍(黄色)」と「さらに深く学ぶためにお勧めする書籍(紫色)」を色付けしています。すべての書籍を読んでいるわけではないので、あくまで私が手に取ったり読んだりしたことがある書籍の中からよさそうと判断したものに対して色付けしている点はご了承ください。

全体を俯瞰してみると、1990年代以前の古い書籍も多く含まれています。ただ、その多くは、コーディングや開発の原則のような、技術の流行の影響を受けにくいカテゴリの本です。反対に、DevOps と AI の書籍はほとんどが2010年代以降で、変化の速い分野ほど新しい本が挙がっています。トレンドの書籍を読むことはもちろん重要ですが、それと同じくらい古典的名著に触れることも私としてはお勧めしたいです。

おわりに

あらためて、『ソフトウェアエンジニアリングの基礎』は良書でした。現場に出たばかりの若手はもちろん、若手を育てる立場の人にもお勧めです。

読書マップに対するフィードバックもお待ちしています。次の1冊を選ぶ参考になれば幸いです。