異常系を考えるポイントを以下にまとめます。
「異常系を考えようぜ」と意識するのはいいのですが、森羅万象のあらゆることを考えると、異常系にはキリがありません。例えば、「泥棒が入ったらどうするか」「隕石が落ちた場合はどうするか」など、確率は非常に低いことも考えねばなりません。どこまで救って、どこから諦めるかが重要になります。
当たり前ですが、開発者は、考えられない異常系には対策できません。例えば、振り込め詐欺という犯罪が存在することは現在では当たり前ですが、30年前には想像できなかった犯罪です。1000円程度の低額なら毎月引き落とされていても、自分が犯罪の被害者であることに気が付かないでしょう。詐欺の犯罪者は、被害者となる一般人の想像の一歩先を行っています。想像力の限界が品質の限界です。
自動車の事故と同様、発生する確率は低いけれども、発生すると大事件に発展する事象も少なくありません。「オレは事故を起こさない」からと言って、保険に入らないで死傷事故を起こすと、億単位の損害となります。リスク管理における「ショーストッパー(プロジェクトが解散するほどインパクトの強いリスクで、例えば、仕様書が完成し、これから設計作業に入る製品と同じ機能を実装したものを競合他社が昨日、半額で販売を開始したなど)」に相当します。
ソフトウェアでも、発生確率は低いと過小評価し対策を怠ると、甚大な被害に発展する可能性があります。
異常系を考えるときにオススメしたいのが、階層構造で考えることです(図1)。
図1は、たこ焼き模擬店の「販売」という点に着目して異常系を考察した例です。例えば、釣銭切れになった場合は、釣銭なしでないと購入できないことを伝えるなどを考えます。このように大項目から中項目、小項目と階層構造で考えるとよいでしょう。今回も、階層構造で考えます
くみこみ高校野球部は、1カ月後の文化祭の出し物として、たこ焼き屋の模擬店を出店することになった。そこで、第1バージョンの要求仕様書は作成できたが、もう一歩進めて不測の事態に備えた異常系を考えること。なお、対策案は、今回は考える必要はない。
Copyright © ITmedia, Inc. All Rights Reserved.