O’REILLY Learning「Modern Software Engineering: Doing What Works to Build Better Software Faster」2 What Is Engineering?
https://learning.oreilly.com/library/view/modern-software-engineering/9780137314942/
I WHAT IS SOFTWARE ENGINEERING?
2 What Is Engineering?
橋の建設議論
ソフトウェアとして作るモデル、つまり問題に対するコンピュータのシミュレーションは、私たちの製品である。
橋のモデル・シミュレーションはとは違う。
私たちは航空宇宙の研究者と同じように、可能な限り数学的思考を適用し、データ駆動型、実用的、経験的、実験的なアプローチで学習を進め、システムを段階的に成長させながら適応させていく。
エンジニアリングとは、実用的な問題に対して効率的かつ経済的な解決策を見出すために、経験的かつ科学的なアプローチを適用することである。
エンジニアリング!=コード
軍備の大量生産を
「標準化の必要性」「ソフトウェアの大量生産の必要性」と解釈するのは、またしても問題の本質を混同していることになります。これは生産の問題ではなく、設計の問題。
エンジニアリングを重視するチームは、何か悪いことが起こるのを待つのではなく、正確な計測を行うのです。
ソフトウェアの性能を測定し、問題になる前に漏れを検出する。
craft and engineering
すべてのエンジニアリングは、最適化とトレードオフのゲームである。
システムをより安全にすれば、より使いにくくなり、システムをより分散させれば、システムが収集する情報の統合に多くの時間を費やすことになります。
開発スピードを上げるために人を増やせば、コミュニケーションのオーバーヘッドやカップリング、複雑さが増し、そのすべてが開発スピードを低下させます。
クラフトからエンジニアリングへの旅
工芸品の価値を否定しないことが重要です。質の高い作品を作るには、細部にまで気を配ることが必要です。また、工芸品の品質と効果を高めるためのエンジニアリングの重要性を否定するものではありません。
エンジニアリングの意味の再定義