generated at
モダン・ソフトウェアエンジニアリング
訳 : 角征典
監修 : 鷲崎弘宣


主に、国際的な共通基盤 Essence について書かれた書籍
『モダン・ソフトウェアエンジニアリング』 という書籍名ではあるが、ソフトウェアエンジニアリング全体というよりは、主に開発におけるプラクティスの言語化を扱っている
nobuoka 書籍名はちょっと誇張が過ぎると思う
とはいえ、プラクティスや手法について言語化するとか、そういう思想は非常に良いと思うので、学ぶことはあった

内容メモ
1 部 ソフトウェアエンジニアリングの本質
1 章 プログラミングからソフトウェアエンジニアリングへ

2 章 ソフトウェアエンジニアリングの手法とプラクティス
手法とは、ソフトウェアを開発・維持するときに必要となるすべてのことに対してアドバイスを提供するもの
ミニ手法 = プラクティス
世の中には無数の手法が存在するが、それらは小さなプラクティスの合成にすぎない
プラクティスは再利用可能
手法に関してパラダイムシフトが起こると過去との断絶が起こる
プラクティスについても再利用がなされず車輪の再発明が多い
各チームや組織が独自の手法を構築するための基盤となるソフトウェアエンジニアリングの共通基盤 (カーネル) の構築を目指す
2014 年に Object Management Group (OMG) によって Essence が標準化

3 章 Essence の概要
Essence の話

4 章 ソフトウェアエンジニアリングの重要な要素を特定する

5 章 ソフトウェアエンジニアリングの言語
1. 要素を特定する
2. 要素間の関連と各要素の概要を下書きする
3. 詳細を追記していく

6 章 ソフトウェアエンジニアリングのカーネル

7 章 理論のふりかえり
合意された統一的な理論はない

2 部 Essence を使ったソフトウェア開発
9 章 Essence で開発を始める
どういうチェックポイント? そのチェックポイントで検査するアルファはどれか? 通過条件となるアルファの状態は?

10 章 Essence を使った開発
Essence を使って反復型開発の手法を確立する
継続的な PDCA

11 章 開発の旅

12 章 Essence カーネルのふりかえり
各アルファは各領域の理論に基づく
アルファは個別のものだが、独立していない (同じ開発プロセスを異なる視点で見ている) ので、ウェーブ上に進む

3 部 プラクティスを使った小規模開発
13 章 プラクティスを使って開発を進める
ソフトウェア開発をするにはスクラムだけでは不十分
適切な要求を考え、それらを設計実装テストするプラクティスが必要
要求プラクティスとしてユーザーストーリーユースケース
ソフトウェアシステムを進化させるプラクティスとしてマイクロサービス
プラクティスを適用すると、具体的な監視項目 (どのアルファ・サブアルファを監視するか?) が明確になる

14 章 スクラムを利用する

15 章 ユーザーストーリーライトを利用する

16 章 ユースケースライトを利用する

17 章 マイクロサービスを利用する

18 章 プラクティスを合成する

4 部 大規模で複雑な開発
19 章 スケールの意味

20 章 プラクティスのエッセンシャル化

21 章 大規模で複雑な開発にスケールアップ
ここでの大規模は 30 人以上が関与する開発 (30 人に強い意味があるわけではない)
成功の秘訣は、サブシステムとチームの依存関係を減らすこと
過去にはコンピュータが高価だったため、高速なプロトタイピングに適した環境ではなかった → CMMIRUP
現在はコンピュータがより安価に → DADLeSSSAFe などの大規模アジャイル開発手法が登場

22 章
文化は重要
文化は戦略を食らう」 という格言もある (ピーター・F・ドラッカーの言葉)

23 章 そして未来へ

付録 A ソフトウェアとソフトウェアエンジニアリングの歴史