確かに、あなたが何をしても、あなたは人間であり、間違いを犯したり、物事を見逃したりします。とはいえ、要件の定期的な変更は、ほとんどの場合、不十分な要件または不十分な開発プロセス、あるいはその両方の結果です。
事前に設計するものはありますか?
ビジネス分析は、開発者やプロジェクトマネージャーなどによって定期的に短期間で行われます。ほとんどの開発者は、1日目からハッキングを開始したいと考えており、ほとんどのPMは、次のように述べています。ばかげたビジネス分析に時間を費やすことなく、1日でフェーズを実行できます。これは、完了ボーナスとして最適です。」ただし、PMの主な仕事は、プロジェクトを(時間どおりに予算内で)管理することです...必ずしもユーザーを満足させるわけではなく、開発者を満足させるわけでもありません。それは彼らが完全に無情だと言っているのではありません。優れたPMは、スコープ制御を実施し、コミュニケーションを促進することで目標を達成します。どちらも役立ちます。
しかし、時間をかけて実際に何が必要かを考え、考えられるシナリオをステップスルーすることで、対処している問題に深刻な違いをもたらすことができます。
- 徹底的なビジネス分析を行う努力をしていて、それでも最後の最後の変更に終わっている場合、おそらくあなたの問題は別の古典的な課題です:解放されたユーザー。対象分野の専門家は、これらのコーナーケースに対処して特定するための最高の武器です。分析プロセスに従事していないユーザーがいる場合は、より優れた対象分野の専門家を取得してください。
- また、ユーザーが通常の作業で忙しすぎて、ユーザーが解放されている可能性もあります。その場合、それは管理上の問題であり、プロジェクトへの参加は彼らの仕事の一部であるという指示を彼らに与える必要があります。「昨日それを成し遂げる」とあなたに言った同じ経営陣は、プロジェクトがしゃっくりやリソースなしで魔法のように起こることを期待しているナックルヘッドの同じグループであることが多いので、それは時々難しいです(彼らは理解していないという点で一般的ですカスタムソフトウェア開発の複雑さとそれが簡単であると仮定します)。管理が無知で変わらない場合...まあ、あなたは残業してあなたが説明した問題に対処するか、新しい仕事を得る必要があります。
アジャイルは役に立ちますか?
ユーザーがこれらのコーナーケースについて後でではなく早く教えてくれるといいですね。これは、TobyHedeが彼の投稿で説明したことに関連しています。おそらく、ソフトウェアをできるだけ早くユーザーの前に表示する方法論は、研磨されていない状態であっても、フィードバックをより早くトリガーすることができます。これは、すべてのアジャイルコンセプトのインスピレーションの1つでした。作成者は、あなたが説明する問題に対処することにうんざりしていました。また、管理者とユーザーが変更されない場合は、開発が変更される可能性があることにも気づきました。それはまだ開発中ですが、さまざまな手法を通じて早期のフィードバックを得ることに重点が置かれています(対象分野の専門家を開発チームと同じ場所に配置し、大まかなプロトタイプをより早くユーザーの手に渡して、ペアプログラミングで開発者の経験を活用するなど) 。
最後に、急速な変化に対応するためにシステムを拡張可能にしようとしているとおっしゃいましたが、どうすればよいでしょうか。プレゼンテーションロジックをビジネスロジックから分離していますか?依存関係と結合を最小限に抑えるために適切にパーティション化された、ビジネスロジックをオブジェクトにカプセル化していますか?これらのことはすべて行うのが難しく、計画と構築に時間がかかる可能性があります。
ちなみに、あなたは一人ではありません。多くの(おそらくすべての)店がこれらの課題を抱えています。