プッシュおよびプル開発モデルとの違いは何ですか?


14

私はExtreme Programming Explained、Second Editionを読み、第11章「制約の理論」で著者は古くて時代遅れの「プッシュ」開発モデルとXPの方法、「プル」開発モデルについて話しています。それは非常に重要な概念のように見えますが、非常に小さなパラグラフと、「滝」と反復プロセスの単なるイラストである2つの画像のみを必要とします。私は検索しましたが、本の残りの部分ではそれについてこれ以上説明しません。それについてのさらなる説明や議論もインターネットで見つけることができませんでした。

それらについての唯一の違いが、一方が「ウォーターフォール」であり、もう一方が反復的である場合、それらはなぜプッシュし、なぜプルするのでしょうか?

誰が本当にこれら2つの違いが何であるかを理解し、いくつかの良い例を挙げていますか?



1
連続vs.増分は、問題を混乱させる可能性があるもう1つの基本的な概念です。たとえば、XPはインクリメンタルプルシステムですが、カンバンは連続プルに依存しています(つまり、タイムボックススプリントはありません)。
マイケル

回答:


15

プッシュシステムとプルシステムの違いは、作業単位がその作業単位を実行する人にどのように割り当てられるかです。プッシュとプルの概念は、ソフトウェア開発に固有のものではありません。このアイデアは、物流とサプライチェーン管理に由来します。

プッシュシステムでは、ある種のタスクが作成され、開発者に割り当てられます。タスクは、要件(または要件を実現するために必要なコンポーネント)の実装から、作成するドキュメントのバグ修正まで、何でもかまいません。誰か、通常はある種のマネージャーまたはチームリーダーが、実行する必要のある作業単位を取り、それをチームのメンバーに割り当てて完了させます。単純に、仕事はそれを行う人々に押し付けられます。

プルシステムでは、実行する必要のあるタスクはキュー(多くの場合、並べ替えの優先キュー)に格納されます。例としては、スクラムの製品とスプリントのバックログがあり、これには実行すべきユーザーストーリーが含まれています。現在何も作業していない開発者は、キューに移動し、自分ができる最も優先度の高いストーリーを取り除いて作業します。作業を行っている人々は、リストから作業を引き出して実行します。

プッシュとプルの概念は、反復/インクリメンタル開発とシーケンシャル開発とは関係ありません。反復/増分/アジャイル技術を使用するチームはプッシュシステムを使用できますが、順次開発を使用するチームはプルシステムを使用できます。ただし、通常、アジャイルメソッド(XP、スクラム)は自己組織化チームを支持するため、システムをプルします。

詳細については、スクラムでのプッシュとプルに関するこのブログ投稿に興味があるかもしれません。かんばんにも興味があるかもしれません-かんばんは製造業に由来する方法論ですが、ジャストインタイム開発と労働者の過負荷を軽減するソフトウェア開発適用できます。カンバンは、ソフトウェア開発に適用できる別の製造コンセプトであるリーンにも関連しており、頻繁に使用されます


これで理解できたので、実際には本では説明されておらず、使用されているだけです。私は自分の本が短いのが好きですが、その段落は単に役に立たないだけでなく、誤解を招くものでした。
-michelpm

@michelpm私は本を所有していないので、彼らが言っていることの妥当性についてコメントすることはできませんが、私が説明した他の方法でプッシュとプルを使用したことは聞いたことがありません。質問を編集して、プッシュとプルを説明する1つまたは2つの段落全体を含めることができれば、この答えをさらに絞り込むことができます。
トーマスオーエンズ

特に滝とプッシュを関連付けた画像は、私が理解していることは、それがルールではなく、モデルを理解するのに実際には役立たないということです。それはあなたが言ったことではありませんか?
michelpm

1
@michelpmそうです、それはルールではありません。通常、シーケンシャルモデルはプッシュ型であり、アジャイルメソッドはプル型である傾向がありますが、必ずしもそうである必要はありません。
トーマスオーエンズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.