「バタフライエフェクト」という言葉がありますが、バタフライは「蝶」、エフェクトは「効果」のことですので直訳すると「蝶の効果」ということになります。
蝶の羽ばたきがそこから離れた場所で将来の天候に大きく影響するという意味ですが、小さな現象でも時間が経過することで無視することができないほど大きな現象生むことを指しています。
システム開発の分野でも、わずかな仕様の間違いが起きれば後の工程に大きな影響を及ぼす可能性があると考えられるでしょう。
小さな漏れやミスは早期発見早期修正が必要
たとえば上流工程の外部インターフェイスを設計する段階で、1つの項目を定義し忘れていたとしましょう。人が行う作業ですので、漏れやミスはどんなに注意しても起きないとは限りません。
しかし誰かがその定義漏れに気が付くことができれば問題は小さくて済むでしょう。上流工程の段階でこの間違いに気が付くことなく、下流工程のテスト工程まで進んでしまった後で漏れが発覚した場合は問題です。
下流工程でミスが発覚した場合
それまで作成した漏れのあった項目を使う全ての設計書の修正からはじまり、プログラム、データベースを使っている場合はテーブル項目の追加なども必要になるでしょう。テスト仕様書も修正して再度テストを行う必要性が出てきます。
気が付いていればすぐに修復できたミスも、下流工程まで進んでいて気が付かなかった場合は数人日分の修正作業が必要となりコスト換算すると数十万円損失が出る可能性があります。
このようなバタフライエフェクトを起きないためにも、それぞれの工程で仕様漏れやミスが起きないように精度の高い成果物を作成していくことが重要です。
少しのミスが大きなシステム障害へ
わずかなミスで大規模なシステム障害へと発展する可能性があるのは上流工程に限った話ではありません。バグが下流工程の後のテスト工程でも検出されず、本番稼動を迎えてしまった場合は致命的なシステム障害が出る可能性があります
蝶の羽ばたきはシステム開発では仕様の間違いをあらわしますので、放置していれば後でその蝶の羽ばたきが大きな嵐を呼ぶ可能性さえあると言えるでしょう。
システム開発で必要になることとは?
プロジェクト全体でエンジニア個人が間違いを起こす可能性を前提に、そのミスを逃さない仕組みをとっていくことが必要です。
エンジニア個人も作業精度を上げる心がけはもちろん大切ですが、ミスに対応できる体制を構築しておくことも後で致命的な障害を出すことを予防することに繋がります。