ロッキード・マーティン社スカンクワークスのエンジニアだったケリー・ジョンソン(Kelly Johnson)が、1900年代半ばに策定した。その主張とは、「ジェット機が戦闘中に故障しても、一般の修理機器でなおせるように、簡単な設計にしなければいけない」というものであった。
シンプルなソリューションはリスクを回避する
ソフトウエアや機器などにおいて、誰もが分かるようなシンプルなソリューションを用いれば、その保守は容易なものとなり複雑なものよりも優れてると言える。例えば、複雑なコードはエラーを誘引してしまうこともある。シンプルであれば、その危険性は回避しやすくなる。これは、デザインにおいても同じことが言える。
スティーブ・ジョブズも、シンプルであることが生む力について、以下のように述べている。
シンプルであることは、複雑であることより難しいだろう。物事をシンプルにするためには、思考を整理して懸命に考えなくてはならない。しかし、努力する価値はある。ひとたび達成すれば、山をも動かすことができるのだから。
Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.
様々な現場で使える法則
日本では、プレゼンなどを実施する際の格言として用いられることが多いが、欧米ではソフトウエアの設計、機器の設計、プロダクトデザインやシステムデザインなど様々な現場で用いられている。この法則は、計画、管理、開発などの多くのビジネス活動を含むあらゆるシナリオに適用できる。
ソフトウエア開発における具体的な利点
著名なアメリカのオープンソースソフトウエア・コミュニティ「Apacheソフトウエア財団」では、この法則の利点を以下のように解説している。
- より多くの問題を、より素早く解決することができる。
- より少ないコードで、複雑な問題を解決することができる。
- より高品質なコードを生成することができる。
- より大規模なシステムを構築し、保守がしやすくなる。
- コードベースをより柔軟にし、拡張も容易になる。新しい要件が発生した時でも修正やリファクタリングができる。
- 想像以上の達成度に到達することができる。
- 大規模な開発グループや大規模プロジェクトにおいても、シンプルで単純なコードは威力を発揮する