要件仕様 (機能要件、非機能要件、制約などを含む) をレビューするとき、作成者が犯した「致命的な罪」に注意する必要がありますか?
要件仕様で実行されている (または実行されていない) ことがソフトウェア製品の品質に悪影響を与える最も重要なことを (重大度の降順で) 7 つ以内でリストしてください。7以下なら全然OK。
要件仕様 (機能要件、非機能要件、制約などを含む) をレビューするとき、作成者が犯した「致命的な罪」に注意する必要がありますか?
要件仕様で実行されている (または実行されていない) ことがソフトウェア製品の品質に悪影響を与える最も重要なことを (重大度の降順で) 7 つ以内でリストしてください。7以下なら全然OK。
OK、これは 7 つ以上ですが、適切な要件には次の属性があります。
適切な要件追跡ツールは、識別可能、優先順位付け、分類など、上記の一部を自動化/適用できますが、残りはチームによるレビューのみが確認できます。重要なのは、これらの属性についてチームをトレーニングし、要件の良い例と悪い例の両方を読んで練習させ、下流の活動に影響を与えるようにライフサイクルの早い段階で要件をチェックする効率的なレビュープロセスを確立することです.
機能、時間、品質 - 任意の 2 つを選択してください。要件が 3 つすべてをチームに押し付けないようにしてください。
プロセスを制御しようとする要件に反対します。
最初から明確な優先順位を求めてください。
各要件の明確な受け入れ基準を主張します。
要件の欠落 - 把握するのがはるかに困難です。要件を明確なセクション (安全性、パフォーマンス、スタイリングなど) に分けると、これを見つけやすくなります。
要件は、誰が/何がそのことを行うかを指定しません。
"The invoice is reconciled to the purchase order."
これは、システムが何かをするということですか、それともユーザーが何かをするということですか?
私がコーディングしたプロジェクトで見た最悪のもの:-
The system shall interface to SAP as required.
まず、「必要に応じて」という要件はばかげています。その 1 行の費用は 40 万ドルに違いありません。顧客はそれを指さし続け、そこにあなたが何とかしようとしていると言っています。
厳しすぎる - 可能であれば、関連する公差を指定してください。
あいまいな要件は良くありません。
検証不可能で定量化不可能な要件は、2 倍になります。
当然、これはすべて、取得する要件の種類によって異なります。典型的な GUI または Web アプリケーション、バッチ処理、
また、レビュアーへのアドバイスが 1 つあります。
要件のコンテキスト、特定のクライアントのニーズ、技術環境、そしておそらく最も重要なのは、この要件が誰に向けられているか、そして彼らがどのレベルのグローバルな理解を持っているかについて、非常に詳細な知識を持っている必要があります.
個人の知識が非常に浅かったため、多くの人が仕様をレビューするプロジェクトで、私は非常に悪い経験をしました. ほとんどが正式な修正ですが、仕様の重大な欠如は、プロジェクトのごく最近になって初めて発見されます。
要件は、必要なものに関して具体的で明確でなければなりませんが、要件を満たす方法についてはそれほど明確にする必要があります。
仮定を立てる - 仮定のように見えるものが実際に検証されていることを再確認してください。
複数の要件を含む不適切な文。それらをどこかに分けて、より明確にし、完了を簡単に確認できるようにします。
満たされていることを確認するのが容易でない要件 - レビュー時に、満たされているかどうかをより簡単にマークできるフォームに変更します。
「イタチの言葉」は避けてください。文脈から引き出され、悪く聞こえる言語はすべて悪いものです。
すべてが完全に明確であることを確認してください: 漠然とした == 悪いこと (tm)
すべてを知っているウィクペディアには、要件の優れた概要があります- http://en.wikipedia.org/wiki/Requirement#Good_requirements。その中で最も多いのは、検証可能性の欠如です。全体像を理解することは人生において重要ですが、要件で明示的に説明する必要があります。システムは迅速に応答する必要があります。代わりに、システムは 2 秒以内にすべての要求に応答する必要があります。
私の推奨事項と、新しいプロジェクトの前に私が常に行うことは、 Steve McConnell の Code Complete の42,43 ページのチェック リストを再確認することです。
要件管理およびCMMIドキュメントの一部を読むことを検討してください。
また、要件チェックリストにアクセスし、Google で「適切な要件の基準」を検索してください。
これらは、ソフトウェア開発に役立つプロセスを作成するために特別に設計されています。