あなたは 7 つの独立したモジュールを含む重要なプロジェクトに取り組んでおり、プロジェクトを時間内に完了するのに十分な時間がありません。目の前にある選択肢は、3 つのモジュールを完全に完了するか、7 つのモジュールすべてを並行して開始するかですが、計画された期間内にいずれのモジュールも完了しないことです。あなたはどの戦略を選びますか?
6 に答える
マネージャーに状況を説明し、彼に決めさせてください。それが彼がそこにいる理由です。
あなたが担当している場合は、すべての可能性を考慮する必要があります。私は、顧客が最初に必要とするものに焦点を当て、その後、2 番目に重要な機能を完成させるようにします。可能であれば、彼らと話し、説明し、合意に達するようにしてください。顧客は、自分が最も必要としているものについて異なる意見を持っている可能性があり、努力を集中するための方向性を示しています.
顧客/ビジネスにとってどちらが良いか。7つの「機能」すべてを半完成状態にすることが可能であれば、それを選択してください. 洗練された 3 つの「機能」を好む場合は、こちらを選択してください。
お客様の価値観次第です。
モジュールは本当に独立していますか? それらは本当に完全に必要なのか、それとも部分的に実装されたとしても価値を提供できるのか?
有用な戦略は、モジュールの水平レイヤーではなく、システムまたはモジュール全体に垂直スライスを実装することです。一度に 1 つのエンド ツー エンド機能/ユース ケース/ユーザー ストーリーを実装します。顧客に価値をもたらすのはこれらの機能であり、モジュールではありません (顧客が機能ではなくモジュールを重視する変な人でない限り)。このようにして、テストとリリースの準備が整った便利なものを手に入れることができ、誰も使用しないコードを書くことに時間を費やす必要がありません。ただし、新しい機能を追加するときは、ストーブパイプ システムのアンチパターンを回避するために、コードベースのリファクタリングを続ける必要があります。
いずれにせよ、7つのモジュールを途中で実装するだけでは答えはありません。何をするにしても、最初は正しく行いましょう。(「正しい」というのはもちろんコンテキストに依存します。使い捨てのプロトタイプ、命に関わる製品コード、およびその間のすべてのものには、さまざまな基準が適用されます。)
クライアントは彼が何を望んでいるのかを明確に把握しています。私の仕事は、彼の注意を引き付け、プロジェクトを完了するための追加の時間を与える何かを彼に示すことです。各モジュールには1か月の作業が必要ですが、3か月後に、クライアントは協力を継続するかどうかを決定します。彼が興味を持っているのはユーザーインターフェイスだけです。画面にエンジンが表示されない場合、エンジンの製造に2か月を費やしたことを彼に説明することはできません。
それは、開発モデルと顧客の要件に大きく依存します。アジャイル環境では、完成した製品 (未完成の部分やモック化された部分があっても) を見せたいと思います。そうすれば、顧客は製品全体の印象を受け、未完成のモジュールについて早期にフィードバックを得ることができます。
ただし、明確で正確な仕様がある場合は、3 つの完成したモジュールを提供することをお勧めします。
3を完了します。
その後、それらをテスト用にクライアントにリリースし、残りの 4 つの作業に取り掛かることができます。