ソフトウェアエンジニアガイドブック ――世界基準エンジニアの成功戦略ロードマップ (Gergely Orosz)
書籍情報
- 著者:Gergely Orosz(著), 久富木 隆一(訳)
- 発行日:2025-11-25
- ISBN:9784814401215
- URL:https://www.oreilly.co.jp/books/9784814401215/
書籍目次
- まえがき
- イントロダクション
- 第一部 開発者としてのキャリアの基礎
- 第一章 キャリアパス
- 1.企業の種類
- 2.ソフトウェアエンジニアリング分野の典型的キャリアパス
- 3.企業の報酬と「階層」
- 4.コストセンターとプロフィットセンター
- 5.キャリア向上についての別の考え方
- 第二章 自分のキャリアを主体的に切り開く
- 1.自分のキャリアは自分の責任
- 2.「仕事をやり遂げる人」と見られるようになる
- 3.業務日誌をつける
- 4.フィードバックを求め、与える
- 5.マネージャーを味方につける
- 6.自分のペースを整える
- 第三章 業績評価
- 1.早期に始めるべきこと: 背景情報の収集と目標設定
- 2.習慣の力
- 3.業績評価の前に
- 4.評価
- 第四章 昇進
- 1.昇進の決定方法
- 2.昇進プロセスの種類
- 3.「ターミナルレベル」
- 4.ビッグテックでの昇進
- 5.昇進に向けたアドバイス
- 6.長期的なキャリア観
- 第五章 多様な環境で成功を収める
- 1.プロダクトチームとプロダクト志向のエンジニア
- 2.プラットフォームチーム
- 3.「平時」対「戦時」
- 4.企業の種類
- 第六章 転職
- 1.新たな機会を探る
- 2.昇進を待つか、転職するか
- 3.技術面接の準備
- 4.レベル降格
- 5.レベル昇格
- 6.新しい仕事へのオンボーディング
- 第一部のまとめ
- 第一章 キャリアパス
- 第二部 有能なソフトウェア開発者
- 第七章 仕事をやり遂げる
- 1.一番重要な仕事に集中する
- 2.行き詰まりを自ら解消する
- 3.作業を分解する
- 4.作業時間を見積もる
- 5.メンターを探す
- 6.「のれん残高」を定期的に補充しておく
- 7.率先して行動する
- 第八章 コーディング
- 1.コーディングを練習しよう(それもたくさん!)
- 2.リーダブルコード
- 3.高品質なコードを書く
- 第九章 ソフトウェア開発
- 1.プログラミング言語に熟練する
- 2.デバッグ
- 3.リファクタリング
- 4.テスト
- 第十章 生産的な開発者が使うツール
- 1.利用中のローカル開発環境
- 2.よく使われるツール
- 3.イテレーションを迅速に回す方法
- 第二部のまとめ
- 第七章 仕事をやり遂げる
- 第三部 多方面にわたり円熟したシニアエンジニア
- 第十一章 仕事をやり遂げる
- 1.仕事をやり遂げる: 認識と現実
- 2.自分自身の仕事
- 3.やり遂げる際には、きちんとやり遂げる
- 4.自分のチーム
- 5.全体像
- 第十二章 共同作業とチームワーク
- 1.コードレビュー
- 2.ペアを組む
- 3.メンターによる指導
- 4.フィードバックを与える
- 5.他のエンジニアリングチームとの作業
- 6.他者に影響を与える
- 第十三章 ソフトウェアエンジニアリング
- 1.言語、プラットフォーム、専門分野
- 2.デバッグ
- 3.技術的負債
- 4.ドキュメント
- 5.チーム全体にベストプラクティスを広める
- 第十四章 テスト
- 1.ユニットテスト
- 2.インテグレーションテスト
- 3.UIテスト
- 4.自動テストのメンタルモデル
- 5.特殊なテスト
- 6.本番環境でのテスト
- 7.自動テストの長所と短所
- 第十五章 ソフトウェアアーキテクチャー
- 1.設計ドキュメント、RFC、アーキテクチャードキュメント
- 2.プロトタイプ作成と概念実証
- 3.ドメイン駆動設計
- 4.リリースにこぎつけるソフトウェアアーキテクチャー
- 第三部のまとめ
- 第十一章 仕事をやり遂げる
- 第四部 現実解を導き出せるテックリード
- 第十六章 プロジェクト管理
- 1.エンジニアがプロジェクトを主導する企業
- 2.なぜプロジェクト管理を行うのか?
- 3.プロジェクトのキックオフとマイルストーン
- 4.ソフトウェアプロジェクトの物理法則
- 5.日々のプロジェクト管理
- 6.リスクと依存関係
- 7.プロジェクトを締めくくる
- 第十七章 本番環境へのリリース
- 1.本番環境へのリリースにおける極端な場合
- 2.典型的なリリースプロセス
- 3.原則とツール
- 4.重ねて検証を行うための層
- 5.現実解としてのリスクの取り方
- 6.他に考慮すべき事項
- 7.アプローチの選択
- 第十八章 ステークホルダー管理
- 1.ステークホルダー管理の真の目標
- 2.ステークホルダーの種類
- 3.自分にとってのステークホルダーが誰であるかを把握する
- 4.ステークホルダーを常に情報共有の輪の中に入れておく
- 5.問題のあるステークホルダー
- 6.ステークホルダーから学ぶ
- 第十九章 チーム構造
- 1.役割と肩書き
- 2.チームのプロセス
- 3.チームの集中力を高める
- 第二十章 チーム力学
- 1.健全なチーム
- 2.不健全なチーム
- 3.成長痛を抱えるチーム
- 4.チーム力学の改善
- 5.他のチームとの関係
- 第四部のまとめ
- 第十六章 プロジェクト管理
- 第五部 ロールモデルとしてのスタッフエンジニアとプリンシパルエンジニア
- 第二十一章 ビジネスを理解する
- 1.ノーススター、KPI、OKR
- 2.自分のチームとプロダクト
- 3.自分の所属する会社
- 4.上場企業
- 5.スタートアップ
- 6.自分が属する業界
- 第二十二章 共同作業
- 1.社内政治
- 2.他者に影響を与える
- 3.マネージャーとの共同作業
- 4.スタッフ+の同僚との共同作業
- 5.人脈を広げる
- 6.他者を助ける
- 第二十三章 ソフトウェアエンジニアリング
- 1.相変わらず行うコーディング
- 2.有益なエンジニアリングプロセス
- 3.イテレーションを迅速に行うためのエンジニアリング上のプラクティス
- 4.エンジニアの効率性を高めるツール
- 5.コンプライアンスとプライバシー
- 6.セキュアな開発
- 第二十四章 信頼性の高いソフトウェアシステム
- 1.信頼性を担保する
- 2.ログ記録
- 3.モニタリング
- 4.アラート
- 5.オンコール
- 6.インシデント管理
- 7.レジリエントなシステムの開発
- 第二十五章 ソフトウェアアーキテクチャー
- 1.可能な限り単純に保つ
- 2.専門用語は知るようにしつつも多用はしない
- 3.アーキテクチャー的負債
- 4.ワンウェイドアの決定とツーウェイドアの決定の比較
- 5.意志決定の影響範囲
- 6.スケーラブルなアーキテクチャー
- 7.アーキテクチャー上の決定 対 ビジネス上の優先事項
- 8.表無が行われる現場の十分近くに留まる
- 9.ソフトウェアアーキテクトの特性
- 第五部のまとめ
- 第二十一章 ビジネスを理解する
- 結論 ――生涯学習
- 1.好奇心を抱き続ける
- 2.学び続ける
- 3.自分に対して課題を出し続ける
- 4.業界の最新情報についていく
- 5.一休みする
- 日本語版特別付録: 著者インタビュー
- 世界基準エンジニアの成功戦略
- 参考文献
- 注記
イントロダクション
本書の内容
- ソフトウェアエンジニアの典型的なキャリアパスが持つ構造に沿った形式で構成される
- 未経験のソフトウェアエンジニア → シニア・リード → スタッフ、プリシンパル、ディスティングイッシュト...
本書の構成
- 1部: 開発者としてのキャリアの基礎
- 2部: 有能なソフトウェア開発者
- 3部: 多方面に渡り円熟したシニアエンジニア
- 4部: 現実解を導き出せるテックリード
- 5部: ロールモデルとしてのスタッフエンジニアリングとプリシンパルエンジニア
- 結論: 生涯学習
第一章 キャリアパス
- TBW
第二章 自分のキャリアを主体的に切り開く
一番重要なアドバイス
- 自分のキャリアは自分で切り拓くこと
- 自分のキャリアについて、自分ほど気に掛けている人はいない
自分のキャリアは自分の責任
- マネージャーが手を差し伸べてくれるのを漠然と待っていてはいけない
- マネージャーは他にも配慮すべき人々を大勢抱えている
- 自分のキャリアは自分で主体的に切り拓いていくしかない
「仕事をやり遂げる人」と見られるようになる
- 「仕事をやり遂げる人」という評価が一番重要
- 仕事をやり遂げる:
- 与えられた仕事を完遂する
- 十分に高い品質と適切なペースで成果物を提出する
- 可能なら期待値を上回る成果を上げる
- インパクトのある仕事をやり遂げる
- ビジネスやチームにとって有益な成果やインパクトのある仕事をする
- その為にはチームの優先事項とビジネスの優先事項を把握しておく必要がある
- 自分が仕事をやり遂げている事を周囲に認識させる
- 他人はあなたの仕事内容を知らない
- 仕事をやり遂げたらマネージャやチームに報告する必要がある
- 報告されない仕事は誰も知らないままになる
業務日誌をつける
- 自分の仕事の成果は毎週記録しておく
- 業務日誌のメリット:
- 優先順位を把握できる
- 1日の終わりに達成感を持てる
- 「No」が言える
- 業績評価と昇進の際に分析材料になる
フィードバックを求め、与える
- プロフェッショナルとして成長する為に一番良い方法が同僚からのフィードバックを受けること
- フィードバックを得る方法:
- コードレビュー
- アイデアや提案
- 設計ドキュメント
- 同僚による業績評価
- フィードバックは贈り物:
- フィードバックは本質的に気の重い作業である
- 好意的ではない、ネガティブなものなら尚更
- 誰かが建設的なフィードバックを与えてくれた時は「本当は何も言わずにいた方がその人は楽だった」という事を意識する必要がある
- ゴチャゴチャと言い訳を並べたり逆上したりしてはいけない