2009年11月6日金曜日

マーフィーの法則

20世紀末に大流行したので記憶に新しいが、マーフィーの法則はプログラミングに関しては極めて役に立つ法則だと言える。
読み直してつくづくそう思う。
ソフトウェアは人間の思考を置き換えたものであるから、人間と同じ失敗をする訳だ。
曰く、

・失敗する可能性のあるものは失敗する

「ソフトウェアは必ず失敗するもの」と言い換えても良い。

・2つの出来事が予想される場合、望ましくない方が生じる
・おかしくなり始めると、次から次へとおかしくなる
・連続した何かがおかしくなる時は、最悪の過程をたどりながらおかしくなる

こでは、「何か条件に合わない時はプログラムは停止しなくてはならない」という基本を怠った、
あるいはミスのために、停止しなくてはならないはずのプログラムの誤動作が連鎖的に広がり、
最終的にシステムがダウンするなどの障害が発生する。
テストでも最後の最後にしかしない異常系のテストの工数が少ないか、あるいはしなかったために、
しばらく運用して初めて問題が発覚することを示唆している。

やはりアジャイル開発の反復型で、運用込みで開発して行くのが望ましいということか。

・危機に臨むと人は最悪の選択をする

これは客先でバグが見つかったので、そこだけ急いで修正したらデグレしたということである。
「バグはそこだけ直してはならない」と思わなくてはいけない。

・隠れた欠陥はかならず表面化する

そうですね。どんなバグも隠してはいけません(笑)

0 件のコメント:

コメントを投稿