開発者としてユーザーストーリーを下書きするにはどうすればよいですか?


10

私はシステムの所有者と私自身の両方が開発者であるシステムを書いています。現在、システムへの「要求」またはシステムの要件の唯一の情報源であり、機能に関連付けられたユーザーストーリーにそれを記録したいと考えています{1}。私の緊急の優先事項は、現在、管理可能なバックログを取得することです。ユーザーストーリーでの作業に慣れている技術仕様のレベルをキャプチャするにはどうすればよいですか。

{1}アジャイルプロジェクト管理サービスTargetProcessを評価しています。各ユーザーストーリーは親機能に関連付ける必要があります。システムは適切だと思われるので、この小さな制約は、回避するよりも私が作業したいものです。

回答:


14

典型的なストーリーテンプレートは、視覚化が非常に簡単です。

As a [ROLE] I need to [WHAT] so that/because [WHY].

興味深いのは、コンポーネントの重要性が逆転していることです。

WHYWHATよりも重要であり、それはROLEよりも重要です

この質問の使用例

ソフトウェア開発者として、ユーザーストーリーの書き方を学ぶ必要があります。これにより、バックログにドラフトを入力して、機能のディスカッションを開始し、機能にポイントを割り当てることができます。

それ以上のことは、ユーザーストーリーの意図と実装を複雑にしています。

追加ツール(統合が最適です)

ツールを使用して、ポイント/推定を割り当てるためにそれらについて話し合うときにキャプチャされるストーリーに関する追加の詳細情報をキャプチャできますが、その詳細はストーリー自体の一部であってなりませ。ディスカッションの詳細/筆記録を載せる、ストーリーごとに1ページのWikiのような単純なもので十分です。Excelスプレッドシートはひどいソリューションです。


5

焦点を当てるものだ理由のと避ける方法の書き込みをユーザーストーリーを。

あなたが直面していることは、実際にはすべての開発者にとって非常に良い練習です。要件を単純なビジネス用語で表現できることは重要なスキルです。

コンボボックスやリストボックス、または特定のルーチンをトリガーするものを使用して指定するのではなく、「オブジェクトのドロップダウンリストから単一の選択を行ってユーザーがFooアクションを有効にできるようにする必要がある」などの一般的な要件に焦点を当てる必要があります。

これに取り組む別の方法は、基礎となるコードベース/フレームワークがほぼ完全なブラックボックスであるかのように見せかけることです。「オブジェクトXYZを使用する」と言ったときはいつでも、ブラックボックスシステムでそれを知っているかどうかを尋ねることで、セルフチェックできます。

更新:
IMO、情報に必要な詳細のレベルを示す詳細をユースケースに入れても問題ありません。たとえば、登録システムでは、
姓を指定するのは公正なゲームです。必須フィールド
-名; 必須フィールド
-アカウントID; システムは入力を生成する必要はありません
-占星術の兆候; オプションのフィールド-(提案)生年月日を入力してからルックアップを提供しますか?
-など...。

重要なのは、その情報の技術的な方法を指定していないことです。姓に「Stringクラス/文字配列/またはvarcharフィールドを使用する」と言っている場合は、指定しすぎていることがわかります。

多言語を使用している場合は、リトマステストとして2つの異なる言語を使用します。たとえば、Cの文字列は通常char(acter)配列ですが、C ++、Java、およびC#(大丈夫、そして他のほとんどすべての人)は実際のStringのようなオブジェクトを持っています。これらの言語の1つを使用して仕様が無効になっていることがわかった場合は、仕様が多すぎることがわかります。

ユーザーストーリーではなく、ユースケースという用語具体的に使用していることは注目に値しますが、私が使用するバリアントは両方のハイブリッドです。ユースケースの私の目標は、何が起こっているのか(厳密な意味でのユーザーストーリー)の概要を説明することですが、必要なアクター、システム、および一般的な機能に取り組みます。私のアプローチは、コックバーンのアプローチとは対照的に、ウィキペディアの記事でファウラーが提案しているものに近いです。

したがって、登録シナリオまたはワークアイテムのユースケースを1つ(またはその程度)にします。本当に複雑な場合は、それを複数に分割しますが、それは大した問題ではありません。ユースケースは、必要に応じて個々のタスクに分割できます。特定のスクラムに何が投入されるかは多くの変数に依存しますが、このアプローチには、スクラムの最後に実証可能なコンポーネントを配置することを妨げるものはありません。


3
「ドロップダウンリスト」と言っても、指定しすぎる場合があります。
ドナルフェロー

@DonalFellows-それは良い点であり、私はそれについて少し考えました。ドロップダウンはワイヤーフレームで表示されるかなり標準的な汎用のUI要素なので、私はそれを採用しました。リストボックスとコンボボックスは、ドロップダウンリスト用の特定の言語構成です。コメントに+1します。

@ GlenH7私はこれを理解していますが、私の問題は技術的なものをどこに取り込むかわからないことです。たとえば新入社員に特定のフィールドが必要な場合、各フィールドにストーリーを使用するのではなく、「ユーザーとしてフィールドxとyをキャプチャする必要があります」、「フィールドqとzをキャプチャすることを選択できます」 "タイプのもの。ここでの簡単な例が正しい方向である場合、私はその方法でより多くの運動を試みます。
ProfK 2012

@ProfK 人事管理者として、新入社員に関する情報を入力して、給与計算、401K、保険給付システムに登録できるようにする必要があります。これは良いストーリーであるはずです。それ以外のすべての詳細は、wikiページやその他のドキュメントに文書化する必要がある詳細です。他の新機能の事例をこのストーリーに追加する必要がある場合、見逃された特定の要件を持つ新しいストーリーは、システムの新しいストーリーになります。このアクティビティは、ROLEがお客様の承認を得て完了できるときに行われます。

2
@ProfK-あなたの質問に答えて私の答えを更新しました。IMO、私はあなたが正しい軌道に乗っていると思います。私はさまざまな方法論を使用してきましたが、覚えておくべき重要な点は、それを状況に合わせて機能させることです。正式なユーザーストーリーが提供するものよりも少し多く必要なようです。したがって、ユーザーストーリーを生成する方法を調整し、前進し続けます。一部の人はおそらくコメントで私を非難するでしょうが、正直なところ、全体のポイントはコードを記述してプロジェクトを前進させ続けることです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.