私は現在、機能要件ドキュメントを書く際の開発者またはビジネスアナリスト向けのベストプラクティスドキュメントのレビュー担当者です。このドキュメントは、必ずしも機能要件ドキュメントのテンプレートではありませんが、機能要件ドキュメントを含めるために必要な要素、オプションの要素、危険な要素のガイドです。
この文書の著者は次のように述べています。
機能要件文書には、前提条件セクションを含めないでください。このアプリケーションについて人々が知っていることや、それを取り巻く外部の問題については何も仮定しないでください。
私はこの感情に同意するかどうかはわかりませんが、それを否定する言葉も本当にありません。完璧な世界では、アナリストはすべての利害関係者の入力と考えられるすべての外部の問題を適切に分析する時間がありますが、必然的に時間の制約やその他の問題により、いくつかの仮定を行う必要があります。
要件ではなく仮定を宣言するのが知的に怠惰なものになるのは簡単すぎるため、これは悪い考えですか?そうでない場合、なぜあなたは仮定が良い考えだと思いますか?
編集:明確にするために、私は技術文書の前提セクションについてではなく、非技術ビジネスアナリストが作成した要件ドキュメントの前提セクションについて尋ねています。
機能要件文書から仮定を除外するための推奨ガイダンスの遵守は、いくつかの要因に依存します。
まず、文化とプロジェクトはどの程度厳格ですか?
推奨されるプラクティスは、事実上必要なプラクティスとして扱われることがあります。そのようなものが単に推奨され、実際に必要とされる程度を確実にすることは「良い習慣」です。 「ガイダンス」を順守した場合、または順守しない場合、どのような結果が生じる可能性があるのかについて、ある程度の考えを持つように努めてください。それは私の免責事項です。
2番目に、ガイダンスの根拠は何ですか?
では、機能要件のドキュメント作成者と寄稿者を、前提条件に特化したセクションを含めることから遠ざける理由は何でしょうか?
私の経験では、人とプロジェクトは時々機能要件を異なって見ます。場合によっては、機能要件(whatが発生してシーケンス処理するか、when何かが発生する発生する)は、システムまたはサービスの要件(whereまたはhow)とは明らかに異なる何かが起こります)。システムまたは環境が取り組みの中心であるときに区別を見つけること(たとえば、デバイスまたはサービスインターフェイスまたはデバイスドライバーなど)は、それが価値があるよりも多くの努力であることが判明する可能性があります。前進する。
機能要件文書の場合、前提条件セクションを含めない理由は、前提条件のセクションが必要だと感じた場合、要件が機能しない可能性があると推定される場合があります。言い換えると、含まれている要件に関して文書化する必要がある関連する前提があると感じた場合。要件は、実装または特定のサービスに固有すぎる場合があり、その特定のドキュメントに属していない可能性があります。一方、要件は属しているかもしれませんが、特定の実装および関連する仮定が適用されなくなるほど具体的ではないように、異なる方法で書き直されただけかもしれません。おそらく、このガイダンスは禁止事項ではなく、ドキュメントの作成者と寄稿者に対する健全性チェックまたはオレンジ色のフラグとして意図されています。
厳密に言えば、機能要件ドキュメントにアプローチすると、システムとサービスの要件はそこには表示されません。これらのタイプの要件が機能仕様に含まれていない場合は、(多くの場合、環境またはユーザーに関連する)あらゆる種類のグローバルな仮定を作成または宣言する必要がほとんどありません。含まれている要件にグローバルな仮定が適用され始める場合、要件が機能要件として記述されていないか、環境またはユーザーが作業の中心であることを示している可能性があります。
仮定セクションがない場合は、プログラマーがコーディングしている間の未知の仮定しかありません。
何かを構築するときは、常に意図的で無意識の仮定を行う必要があります。書き留めておく必要もあります。
仮定は強い言葉です。あなたは間違いなくdo仮定セクションが必要です。しかし、間違いなくdoは、そのセクションが正確であることを検証する必要があります。
たとえば、すべてのユーザーがパワーユーザーであると想定してアプリを設計している場合、それは真実である方がよいでしょう。
したがって、基本的には、必要なもの(前提条件、前提条件など)と呼びますが、デザインの選択を促進している要素を人々が認識できるようにするために必要です。