İtme ve çekme geliştirme modellerinden farkı nedir?


14

Extreme Programming Explained, Second Edition'ı okuyordum ve bölüm 11 "Kısıtlar Teorisi" bölümünde yazarlar eski ve eski "itme" geliştirme modeli ve XP yolu, "çekme" geliştirme modeli hakkında konuşuyorlar . Oldukça önemli bir konsepte benziyor, ancak sadece çok küçük bir paragraf ve sadece "şelale" ve yinelemeli sürecin illüstrasyonları olan iki resim alıyor, bu resim hakkında resim yazısı hariç spesifik bir şey yok. Aradım ve kitabın geri kalanında bu konuda daha fazla ilerlemiyor. İnternette de bununla ilgili başka açıklama ya da tartışma bulamadım.

Bunlarla ilgili tek fark, birinin "şelale" ve diğerinin yinelemeli olması durumunda , neden itme ve neden çekme?

Bu ikisi arasındaki farkın gerçekten ne olduğunu anlayan ve iyi örnekler veren var mı?



1
Sürekli ve Artımlı konular, kafa karıştırıcı olabilecek bir diğer kavramdır. Örneğin, Kanban sürekli çekmeye bağlıyken XP artımlı bir çekme sistemidir (yani zaman kutulu sprintler yoktur).
Michael

Yanıtlar:


16

İtme ve çekme sistemi arasındaki fark, çalışma birimlerinin, o iş birimini gerçekleştirecek kişiye nasıl atanacağıdır. İtme ve çekme kavramı yazılım geliştirmeye özgü değildir - fikir lojistik ve tedarik zinciri yönetiminden kaynaklanır .

Bir push sisteminde, bir tür görev oluşturulur ve daha sonra bir geliştiriciye atanır. Görev, bir gereksinimin uygulanmasından (veya bir gereksinimi gerçekleştirmek için gereken bir bileşenden) bir belgenin yazılacak hata düzeltmesine kadar herhangi bir şey olabilir. Genellikle bir tür yönetici veya takım lideri olan biri, yapılması gereken iş birimlerini alır ve daha sonra bunları tamamlamak için ekip üyelerine tahsis eder. Basitçe, iş yapacak insanlar üzerine itilir.

Bir çekme sisteminde yapılması gereken görevler, genellikle öncelikli bir sıralama kuyruğu olan bir kuyrukta depolanır. Bir örnek, Scrum'un yapılacak kullanıcı hikayelerini içeren ürün ve sprint biriktirme listeleri olabilir. Şu anda hiçbir şey üzerinde çalışmayan bir geliştirici, kuyruğa gidecek ve üzerinde çalışabilecekleri ve üzerinde çalışabilecekleri en yüksek öncelikli hikayeyi çıkaracak. İşi yapan insanlar işi bir listeden çıkarır ve yaparlar.

İtme ve çekme kavramı, yinelemeli / artımlı ve sıralı geliştirmeyle ilişkili değildir. Yinelemeli / artımlı / çevik teknikler kullanan bir ekip bir itme sistemi kullanabilirken, sıralı geliştirme kullanan bir ekip bir çekme sistemi kullanabilir. Bununla birlikte, tipik olarak, çevik yöntemler (XP, Scrum) kendi kendini organize eden takımları ve dolayısıyla çekme sistemlerini desteklemektedir.

Daha fazla bilgi için, Push vs. Pull in Scrum'daki bu blog gönderisiyle ilgilenebilirsiniz . Kanban da ilgi çekici olabilir - Kanban imalattan gelen bir metodolojidir, ancak tam zamanında gelişimi vurgulayan ve işçilerdeki aşırı yükü azaltan yazılım geliştirmeye uygulanabilir . Kanban, yazılım geliştirmeye uygulanabilecek başka bir üretim konsepti olan Lean ile de ilgilidir ve sıklıkla kullanılır .


Şimdi anladığım kadarıyla, kitapta gerçekten açıklanmadığını, sadece kullanılmış olduğunu görüyorum. Kitaplarımı kısa beğeniyorum, ama bu paragraf sadece işe yaramaz değil, yanıltıcıydı.
michelpm

@michelpm Kitabın sahibi ben değilim, bu yüzden söylediklerinin geçerliliği hakkında yorum yapamam, ama itme ve çekmenin nasıl tanımladığımı başka bir şekilde kullandığımı hiç duymadım. Belki sorunuzu, itme ve çekmeyi tanımlayan bir veya iki paragrafı içerecek şekilde düzenleyebiliyorsanız, bu yanıtı daha da hassaslaştırabilirim.
Thomas Owens

Şelaleyi özellikle itme ile ilişkilendiren görüntüler, şimdi anladığım şey, bu bir kural değil ve modelleri anlamaya gerçekten yardımcı olmuyor. Söylediğin bu değil mi?
michelpm

1
@michelpm Bu bir kural değil. Genellikle, sıralı modeller itilir ve çevik yöntemler çekme eğilimindedir, ancak bu böyle olmak zorunda değildir.
Thomas Owens
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.