O’REILLY Learning「Modern Software Engineering: Doing What Works to Build Better Software Faster」4 Working Iteratively
https://learning.oreilly.com/library/view/modern-software-engineering/9780137314942/
4 Working Iteratively
反復とは、「一連の操作の繰り返しにより、望ましい結果に順次近づいていく手順」と定義されている。
アジャイルマニフェスト https://agilemanifesto.org/
スクラムとエクストリーム・プログラミング(XP)の両方に共通する考え方の1つは、「小さな単位の仕事を完成までやり遂げる」というもの。
ソフトウェア開発の基本的な性質を誤解し、製造業や生産業の技術を誤って適用してしまうという恐ろしい過ちを犯してしまったのです。
私たちは開発者の軍隊を採用し、大量生産ラインと同等のソフトウェアを作ろうとしました。
ソフトウェアの世界では、アジャイル革命によってその常識が覆されましたが、現在でも、多くの、おそらくほとんどの組織が、計画/ウォーターフォール主導のままなのです。
ウォーターフォール・アプローチは順を追って進めるものです。次のステージに進む前に、今いるステージの質問に答えなければならない。つまり、どんなに賢くても、ある時点でシステム全体の複雑さが人間の理解を超えてしまう限界があるはずなのです。
アジャイルアプローチは、問題を小さく分割して解決する作業を積極的に推奨しています。
すべての答えを知る前に作業を開始することを推奨しているのです。このアプローチによって、私たちは前進することができます。時には、最適でない、あるいは悪い方向に進むこともあるかもしれませんが、それでも、各ステップの後に、私たちは何か新しいことを学ぶことができるのです。
アジャイル思考が完璧であるとか、最終的な答えであるということではありません。むしろ、より良いパフォーマンスを実現するための重要な、重要な、有効な一歩なのです。
反復は重要な考え方であり、学習や発見、より優れたソフトウェアやソフトウェア製品に対して、より統制のとれたアプローチに移行するための基礎。
エンジニアはそう考えても、お客様、メーカーSE!?がウォーターホールしか出来ない、考えられないという課題が現場にはある。
私はそのような人たちを相手にしている。