Steve Yegge の知恵にもかかわらず、ほとんどの開発者は、技術に詳しくない顧客から集められた要件に直面しています。顧客に対応し、要件を翻訳するプロジェクト マネージャーがいる場合もあれば、そうでない場合もあります。いずれにせよ、要件が変わることは避けられないことです。
「優れたプログラミング手法」を構成するもののほとんどは、変化する要件に耐えられるように適応可能なシステムを開発することに関係しています。YAGNI、DRY、疎結合などの原則がこれに貢献しています。アジャイルなどの反復的な開発プロセスも、動くターゲットを攻撃しようとする懸念に対処しようとします。もちろん、システムをテストすることで、変更を加える可能性が無限に高くなります。
それにもかかわらず、私たちの多くにとって、要件を変更すると、ソフトウェアの品質が損なわれるだけでなく、モチベーションが低下し、誰かを刺したくなるようです。
この質問は、恣意的または軽微な変更を思いとどまらせながら、必要な方法で要件を変更できるように顧客を管理する方法に関するものです。どのようにしますか?
- 開発者を顧客から隔離するプロジェクト マネージャーはいますか?
- 正式な変更管理プロセスはありますか? マネージャーを変更しますか?
- 顧客が本当に必要なときに釣り銭を手に入れるのはどれほど難しいですか?
- 逆に言えば、「軽薄」な場合、顧客はどの程度おつりを手に入れやすいのでしょうか?
- 変更のコストを説明する際、顧客にどの程度詳細に説明しますか?
- 変更のリクエストを受け取った後、顧客にこの情報をどのくらい迅速に提供できますか?
- プロセスを台無しにする要因は何ですか (例:顧客にノーと言えない PM は? )
- あなたにとって何が効果的ですか?