İ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 .