O’REILLY Learning「Modern Software Engineering: Doing What Works to Build Better Software Faster」1 Introduction
https://learning.oreilly.com/library/view/modern-software-engineering/9780137314942/
I WHAT IS SOFTWARE ENGINEERING?
1 Introduction
Engineering—The Practical Application of Science
ソフトウェア開発は発見と探求のプロセスであり、それを成功させるためには、ソフトウェアエンジニアは学習の専門家になる必要がある。
What Is Software Engineering?
ソフトウェアにおける実用的な問題に対して、効率的かつ経済的な解決策を見出すために、経験的かつ科学的なアプローチを適用すること。
学習のエキスパートになるためには、次のようなものが必要。
・イテレーション
・フィードバック
・インクリメンタリズム
・実験主義
・経験主義
複雑性を管理する専門家になる必要。
・モジュール化
・凝集性
・懸念事項の分離
・抽象化
・ルース・カップリング
↓
上記の10個に対しての実用として
・テスト容易性
・デプロイメント性
・スピード
・変数の制御
・継続的なデリバリー