ソフトウェアを開発していない人は、ソフトウェア開発者が知っておくべきことを知りません。要件仕様やユースケースを独自に作成することは期待できません。必要な情報を取得するには、要件抽出手法を適用する必要があります。クライアント(および、できればさまざまな役割のユーザーのサンプル)と協力して、必要なものや必要なものを判断します。このための一般的な手法は、インタビューやユーザーの観察、ユースケースとユーザーストーリーの特定、プロトタイピングです。
要件があいまい、不完全、または十分に理解されていないため、この場合は反復および増分開発手法を適用することを強くお勧めします。ライフサイクル計画に対処するためのスパイラルモデルとともに、さまざまなアジャイル方法論をご覧ください。
このソフトウェアの開発を推進するビジネス目標を取得することから始めます。クライアントとユーザーにインタビューし、可能であれば職場でそれらを見る。解決しようとしている問題を特定してください。現在使用しているツールを確認し、それらをどのように使用しているかを確認して、現在のやり方を改善できます。この機会を利用してドメインとその言語を学習します-ソフトウェア開発者とクライアント/ユーザーがすべて同じ言語を話すと、コミュニケーションが無限に容易になります(クライアント/ユーザーがソフトウェア用語で話すことを期待しないでください)。
目標が何であるかを理解したら、所有しているUIデザインモックアップを使用して作業を開始し、さまざまな画面がどのように適合するかに基づいて「リバースエンジニア」ユースケースとそれらからのユーザーストーリーを使用できます。ユーザーストーリーの形式は、技術に詳しくない視聴者にも対応できる可能性があります。の形式はAs a <user type>, I want to <action> so that <reason>
、開発者とクライアント/ユーザーに同じ言語を話せるようにするという点でうまくいきます。ユーザーストーリーを開始できるようになったら、プロトタイプ開発アプローチを開発に採用します。
プロトタイピングを使用してこれにアプローチすると思います。進化的プロトタイピングまたは使い捨てプロトタイピングの観点からこれにアプローチできますが、最初に進化的プロトタイピングアプローチを検討します。最も快適で検証済みのユーザーストーリーから始め、それらの実装を開始します。それらを実装するとき、顧客からフィードバックを得て、新しいユーザーストーリーを開発し、ユースケースを作成し、誤解を解決します。
また、これを「その下の機能を備えたユーザーインターフェイスを実装する」と考えないでください。代わりに、薄い垂直スライスと考えてください。すべてのユーザーインターフェイスを一度に実装してから、機能を心配しないでください。代わりに、ユーザーインターフェイスモックアップを使用して機能やその他の要件を特定し、UIからビジネスロジックとデータストレージまでの垂直スライスを実装します。垂直スライスごとにこれを繰り返します。また、要件と使いやすさの原則に基づいてUIを改善するための提案を行うこともできます。
Karl Wiegersの2つの本(ソフトウェア要件とソフトウェア要件についての詳細)を読むことをお勧めします。これらは、この分野の要件エンジニアリングとベストプラクティスに役立つと思います。