スプリントに多数のユーザーストーリーを計画していて、1つの候補ストーリーがチームに何かを提供している外部プロバイダーに依存している場合。たとえば、オンラインサービスプロバイダーがシステムに新しいAPI呼び出しを追加したり、システムなどでテストアカウントを有効にしたりします。
あなたはそれがすぐに来ることを知っています。
ストーリーを完了するために必要なものを提供することを期待して、スプリントにストーリーを追加しますかまたは次のスプリントが準備できるとわかったときまで待ちますかストーリーをできるだけ早く始めなくても、すぐに始めることができます。
前者の場合、依存関係によって失われた「未到達」のストーリーポイントをどのように処理しますか?部分的なクレジット(eek!)または顎にあてます。
最終的には、外部プロバイダーが、使用する必要のある時間までに、使用できるものを提供すると確信しているかどうかによって異なります。
それらが間に合うように確実に提供できない場合は、スプリントにストーリーを追加しないでください。ただし、常に過去に配信したことがあるという理由だけで、今回は配信される保証はありません。
この依存関係が存在すること、および作業をスケジュールする前にAPI(または何か)が使用可能になるまで待機する必要があることをお客様に知らせる必要があります。
プラス面として、あなたが提供できるストーリーの側面があるかもしれません-つまり、依存関係を可能な限り分離するまで、それをさらに分解します。これにより、サプライヤが作業を提供する前に、ストーリーの一部を実行できる場合があります。
あなたができることの1つは、コードとサードパーティのAPIの間のインターフェースを作成することです。残りのプロジェクトを続行できるように、そして実際のAPIがモックを使用してサンプルデータを返すまで、インターフェイスにコードを記述します。次に、実際のAPIが到着したら、インターフェイスの背後にあるコードを変更するだけで、残りのアプリケーションに影響を与えることはありません。これを行うのは、APIのサプライヤとインターフェースが変更されない(少なくとも大幅には変更されない)ことに同意できる場合のみです。
チームはコミットメントを行うチームです。私たちのチームでは、(たとえば)外部の開発者を待っていると感じた場合、ストーリーを取り上げる気がないと言うことを学びました。ストーリーは取り上げるのに適した状態ではありません。
外部リソースからの遅延、予期しない、または異なる配信により、見積もりや優先順位が変更される可能性が非常に高くなります。
すべての情報を入手するまでは、チームはストーリーを完成できると考えるのはそれほど単純ではありません。彼らがそうすることができると彼らが言うならば、それはそれが遅れて到着するか、予想されるフォーマットで到着するか、まったく到着しないかで、彼らは皆を失望させました。
厳しいように聞こえますが、私は私のポイントを渡りたいです。
スクラムには、完了の定義があり、ユーザーストーリーの準備ができているという定義があります。あなたのような状況では、すべての利害関係者が理解して同意する準備ができているという定義を持つことが重要です。たとえば、readyの定義に次のような行があると非常に合理的です。
製品に価値を追加するためにこのAPIが必要な場合は、このAPIが実際に動作するようになるまで待機するのが論理的です。その間、私たちは製品に価値を追加する他の米国を行うことができます。私はモック実装などでこの米国を本当に好きではありません。 。
2つのシステムは、方法論自体ではなく、プログラマーによって統合されます。企業が外部システムを統合することを決定した場合、(最小)2エンティティ間で契約が成立します。契約は、統合が行われることを保証する必要があります。その結果、会社間の合意が両方の部門間の技術的なコラボレーションを必要としない場合、問題は開発方法論ではありません。 問題はビジネス方法論(基本的には契約)です。
そうは言っても、それらのケースの計画中、および速度がわからないことを考慮して、リスクと見なす必要があります。チームでは、これらのマージンに寛大である必要があります。
まだ分からないものを待っていて、明日配達されると100%確信していても、計画は立てられません。どうして?なぜなら、それを知らなければ、その複雑さを見積もることはできず、見積もることができなければ、計画を立てることができないからです。
外部の会社が従わなければならない「インターフェース」/「契約」を事前に定義した場合は、それを計画し、サービスモックを作成できます。開発はモックサービスを使用するため、外部配信に依存しません。モックを使用した開発は、モックに対して開発およびテストされた機能が完了していないため、実際のサービスが提供されるスプリントに対して計画する必要があります。スプリントの最後に完了したと見なされるには、実際のサービスでテストする必要があります。
チームに依存せず、他のタスクを実行できる場合は、準備ができたときにのみ実行することをお勧めします。モックアップWebサービス、スキーマ、インターフェース、契約を取得したとしても、それが壊れることがあります(マーフィーの法則を覚えていますか?)。