スクラムで「外部」依存関係を処理する方法は?


13

スプリントで多数のユーザーストーリーを計画しており、1つの候補ストーリーがチームに何かを提供する外部プロバイダーに依存している場合。たとえば、オンラインサービスプロバイダーが新しいAPI呼び出しをシステムに追加したり、システムなどでテストアカウントを有効にしたりします。

あなたはそれが「もうすぐ」来ることを知っています。

あなたは先に行くと、彼らはあなたがあなたの物語を完了するための時間が必要であるものを提供します望んでスプリントに話を追加してくださいまたはあなたはそれが可能な状態になりますし、あなたがしても、すぐに始めることができます知っているとき、あなたは次のスプリントまで待つんできるだけ早く話を始めないことを意味します。

前者が依存関係のために失われた「未学習」のストーリーポイントをどのように処理するか?部分的なクレジット(eek!)またはあごにそれを取る。

回答:


12

最終的には、外部プロバイダーが、使用するまでに使用できるものを提供することに100%自信があるかどうかによって異なります。

納期内に納品できるかどうかわからない場合は、スプリントにストーリーを追加しないでください。ただし、過去に常に配信したからといって、今回配信する保証はありません。

この依存関係が存在し、作業をスケジュールする前にAPI(または何でも)が利用可能になるのを待つ必要があることを顧客に知らせる必要があります。

プラス面としては、提供できるストーリーの側面がある場合があります。つまり、可能な限り依存関係を分離するまで、さらにストーリーを分解します。これにより、サプライヤが作業を提供する前にストーリーの一部を実行できる場合があります。

できることの1つは、コードとサードパーティAPIの間にインターフェイスを作成することです。インターフェースにコーディングして、プロジェクトの残りの部分が続行できるようにし、実際のAPIがモックを使用してサンプルデータを返すようにします。その後、実際のAPIが到着したら、インターフェイスの背後にあるコードを変更するだけで、アプリケーションの他の部分には影響しません。APIのサプライヤに、インターフェースが(少なくとも劇的に)変わらないことに同意できる場合にのみ、これを行ってください。


それほど面倒ではない場合、APIを「偽造」することをお勧めしますか?
-JeffO

@JeffO-まあそれは依存します。実際の結果が必要な場合は、問題になる可能性があり、APIが変更されることがわかっています。
ChrisF

2
@JeffO APIを単独で偽造することはありませんが、コーディングできる共通のインターフェースについて同意することは理解できます。サードパーティのコンポーネントが登場しても、コードを直接呼び出すことからコードを保護することは悪い考えではありません。
アダム・リア

プロジェクト管理では、これがリスクの議論です。
ジェイミークレイトン14

12

チームはコミットメントを行うものです。私たちのチームでは、(たとえば)外部の開発者を待っていると感じた場合、ストーリーを取り上げるつもりはないと言うことを学びました。ストーリーは取り上げるのにふさわしい状態ではありません。

外部リソースからの遅延、予期しない、または異なる配信によって、見積もりと優先順位が変更される可能性が非常に高い可能性があります。

すべての情報が得られるまで、チームはストーリーを完成できると考えるほど素朴ではないはずです。彼らができると言うなら、それは期待された形式で遅れて届くか、まったく届かず、皆を失望させました。

耳障りに聞こえますが、私は自分の主張を伝えたいです。


4

スクラムでは、完了の定義があり、ユーザーストーリーの準備ができているという定義があります。あなたのような状況では、すべての利害関係者が理解して同意する準備ができているという定義を持つことが重要です。たとえば、readyの定義に次のような行を含めることは非常に合理的です。

  • ストーリーに必要なすべての外部APIを提供し、テストする必要があります。

製品に価値を追加するためにこのAPIが必要な場合は、このAPIが実際に作業を開始するまで待機する必要があります。それまでの間、製品に価値を付加する他の米国を行うことができます。仮装実装などでこの米国が本当に好きではありません。 。


何もありません準備の定義におけるスクラムフレームワークは。一部の組織が使用する追加機能であり、従来のフェーズゲートである場合もあります。
アランラリマー

2

まだ分​​からないものを待っている場合、明日配達されることを100%確信していても、それを計画することはできません。どうして?あなたがそれを知らないなら、あなたはその複雑さを見積もることさえできず、あなたがそれを見積もることができないなら、あなたはそれを計画することができないからです。

外部企業が従わなければならない「インターフェース」/「契約」を事前に定義した場合、それを計画し、あなたの側でサービスモックを作成できます。開発では、モックされたサービスを使用するため、外部配信に依存しません。モックを使用した開発は、モックに対して開発およびテストされた機能が完了していないため、実際のサービスが提供されるスプリントで計画する必要があります-スプリントの終了時に完了したと見なされるには、実際のサービスでテストする必要があります


2

コミュニケーションと契約

2つのシステムは、方法論自体ではなく、プログラマーによって統合されます。企業が外部システムを統合することを決定した場合、2つ以上のエンティティ間で契約が締結されます。契約は、統合が行われることを保証する必要があります。したがって、企業間の合意が両部門間の技術協力を必要としない場合、問題は開発方法論ではありません。問題はビジネス方法論(基本的には契約)です。

そうは言っても、これらのケースの計画中はリスクと見なさなければならず、チームのスピードがわからないことを考慮すると、これらのマージンに寛大になる必要があります。

プロジェクトマネージャーは、外部チームへの依存関係をどのように管理できますか?

/pm/1400/how-can-a-project-manager-manage-a-dependency-on-an-external-team


1

チームに依存せず、他のタスクを実行できる場合は、準備ができたときにのみ実行することをお勧めします。モックアップWebサービス、スキーマ、インターフェイス、および/または契約を取得した場合でも、まだ分割される可能性があります(マーフィーの法則を覚えていますか?)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.