ソフトウェアをゼロから構築する場合、詳細なニーズ評価を実施し、クライアント/利害関係者が何を必要としているかを調べる必要があります本当に。
エンドユーザーにインタビューしたり、ワークショップを開催したり、ソフトウェア製品が作成されたビジネスプロセスに直接参加したりする場合、非常に重要な要件が多数あり、それらは「必須」の要件です。
同じプロセスで、クライアントはいくつかの機能に名前を付けます。これは関連するソフトウェアですが、問題を解決していないようです。たとえば、「便利な」機能と言います。インターフェイスの色を変更したり、ソフトウェアが干渉なしに実行できるいくつかのプロセスを管理したりできる可能性があります。
この種の要件を管理するためのパターンがいくつかあるはずです。これらの2種類の機能を区別する方法は?追加機能がソフトウェアに付加価値をもたらすのか、それともプロジェクトの範囲を拡大するだけなのかを見積もるにはどうすればよいですか?
その上、「持っていていい」機能はどういうわけか便利ですが、実際には必要ではないことをクライアントに説得する方法。
彼らはクライアントです。彼らは彼らが望むものと彼らが望まないものを決定するようになります。彼らに本当に必要のないことを教えてもらう方法は、不要な機能に時間と金額の見積もりを添付することです。彼らは、どの機能が彼らにとって本当に重要であるかをすぐに理解します。
お金を伴うクライアントとの契約に署名する前に、特定作業の範囲とクライアントがその作業に支払う予定の金額を知る必要があります。契約が締結されると、クライアントが支払う金額を変更することは非常に難しいため、クライアントが価格で機能を追加できるようにする何かを契約に組み込むか、範囲を制限する必要があります価格が合意されると、機能を追加できないような方法で。
作業の範囲がわからない場合は、顧客の要件を収集し、ソフトウェア設計仕様(または「ニーズ分析」と呼ばれるもの)を作成して、どれだけの量を計画できるかを確認する方法があります。各要件を満たすのにかかる時間。 ニーズ分析の準備のために1時間ごとに請求します。これは実行する必要があります前価格が合意されます。
各要件がクライアントによって指定された受け入れテストに合格する必要があるように要件を構成します。theirテストに合格した場合、その要件が完了したことを宣言します。これにより、彼らが戻ってきて「まあ、それが私が望んでいたことだと私は知っているが、私が本当に望んでいたのはこれだ」と言うのを防ぐ。