メアリーは一匹の小さな羊を飼っていました

ワインバーグとゴーズの共著で示された、要件をドキュメントすることの難しさを表す文章です。

要求仕様の探検学―設計に先立つ品質の作り込み

要求仕様の探検学―設計に先立つ品質の作り込み

     

メアリーは一匹の小さな羊を飼っていました

こんな単純な文章ですが、異なる部分を強調することにより、人は異なった意味として受け取るのです。
       

メアリーは一匹の小さな羊を飼っていた

 この羊はメアリーのものであり、ジョンのものではありません。
        

メアリーは一匹の小さな羊を飼っていた

 彼女は一匹だけ羊を飼っていました。他の人はもっと多くの羊を飼っていました。
        

メアリーは一匹の小さな羊を飼っていた

 この羊はびっくりするくらい小さな羊でした。
       

メアリーは一匹の小さなを飼っていた

 彼女が飼っていたのは他の人が飼っていたような鶏ではなく羊でした。
        

メアリーは一匹の小さな羊を飼っていた

 今はもう飼っていません。
             

開発者とユーザの対話

ソフトウェア職人気質―人を育て、システム開発を成功へと導くための重要キーワード (Professional Computing Series)

ソフトウェア職人気質―人を育て、システム開発を成功へと導くための重要キーワード (Professional Computing Series)

  • 作者: ピートマクブリーン,McBreen Pete,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/03
  • メディア: 単行本
  • 購入: 4人 クリック: 85回
  • この商品を含むブログ (64件) を見る

こちらの本では、開発プロセスを体系的な定義済みのプロセスとするには曖昧さのない完璧な要件仕様が必要だが、メアリーの羊の例を元にして以下のように述べています。

英語や日本語といった自然言語を使う以上、正確を期し、かつ曖昧さをなくすことなど現実的に不可能なのです。要件のヒアリングは人間同士のふれあいによる作業であり、要件を記述したドキュメントが誤って解釈されることで引き起こされる誤解を避けるために、開発者はユーザと絶えず話し合いを続けなければならないわけです。要件捕捉プロセスを定義済みプロセスにするなんてことは、できっこないのです。

     

定義済みプロセスと経験主義的プロセス(おまけ)

プロセスを明確に定義できる場合、該当プロセスに関するすべてのことは既知となるため、それは定義済みのプロセスと呼ばれ、結果を予測しながら設計や繰り返し処理を行うことができ、自動化することもできます。該当プロセスに関するすべてのことが既知となっていない場合、それは経験主義的プロセスを呼ばれます。