SCRUM'a Karşı Aşırı Programlama | XP ve SCRUM
Yazılım endüstrisinde yıllar boyunca Şelale geliştirme yöntemi, V Modeli, RUP ve diğer birkaç doğrusal, yinelemeli ve birleşik doğrusal yinelemeli yöntemler gibi birçok farklı yazılım geliştirme yöntemi kullanılmıştır. Çevik model (veya daha doğrusu bir grup metodoloji), bu geleneksel yazılım geliştirme yöntemlerinde bulunan eksikliklerin giderilmesi için Agile manifestosu tarafından sunulan daha yeni bir yazılım geliştirme modelidir..
Çevik yöntemler yinelemeli gelişime dayanır ve kullanıcılardan gelen geri bildirimleri ana kontrol mekanizması olarak kullanır. Çevik, geleneksel yöntemlerden daha insan merkezli bir yaklaşım olarak adlandırılabilir. Agile modeli, sistemi çok küçük ve yönetilebilir alt parçalara ayırarak ürünün çalışma versiyonunu çok erken teslim eder, böylece müşteri bazı avantajları erkenden gerçekleştirebilir. Agile'nin test döngüsü süresi geleneksel yöntemlere göre nispeten kısadır, çünkü testler gelişime paralel olarak yapılır. Tüm bu avantajlar nedeniyle, şu anda geleneksel yöntemlere göre Agile yöntemleri tercih edilmektedir. Scrum ve Extreme programlama, Agile yöntemlerinin en popüler varyasyonlarından ikisidir..
SCRUM nedir?
Yukarıda belirtildiği gibi SCRUM, Agile yöntemlerinin ailesine ait artımlı ve yinelemeli bir proje yönetim sürecidir. SCRUM, geliştirme sürecinin başlarında müşteri katılımına yüksek öncelik verilmesine dayanmaktadır. Müşteri tarafından testin mümkün olduğunca erken ve sıklıkla yapılmasını önerir. Test, kararlı bir sürüm elde edildiğinde her noktada yapılır. SCRUM'un temeli, projenin başlangıcından itibaren teste başlamaya ve projenin sonuna kadar devam etmeye dayanır..
SCRUM'un temel değeri, yazılım kalitesinin sadece test ekibinin değil tüm ekibin sorumluluğunda olduğunu vurgulayan “kalite ekibin sorumluluğudur” dur. SCRUM'un bir diğer önemli yönü, yazılımı daha küçük yönetilebilir parçalara ayırmak ve bunları çok hızlı bir şekilde müşteriye teslim etmektir. Çalışan bir ürün teslim etmek son derece önemlidir. Daha sonra ekip yazılımı geliştirmeye ve her büyük adımda sürekli olarak teslim etmeye devam eder. Bu, çok kısa bırakma döngülerine (sprint denir) sahip olmak ve her döngünün sonunda iyileştirme için geri bildirim almak suretiyle elde edilir..
SCRUM, bir geliştirme ekibinin sorunsuz çalışması için birkaç anahtar rol tanımlar. Ürün sahibi (müşteriyi temsil eden ve ürün biriktirmesini tutan), Scrum ustası (scrum toplantıları düzenleyerek, sprint birikimini koruyarak ve grafikleri yakarak) ekibin organizatörü ve koordinatörü olarak görev yaparlar. Bir takım geleneksel rollerden oluşabilir, ancak çoğunlukla kendi kendini yöneten takımlardır. Ana Scrum artefaktları Ürün biriktirme / bırakma biriktirme listesi (istek listesi), Sprint biriktirme listeleri / kusur biriktirme listeleri (her yinelemedeki görevler), Yakma çizelgeleri (kalan çalışma ile tarihe karşılık) şeklindedir. Ana SCRUM törenleri Ürün biriktirme toplantısı, Sprint toplantısı ve Retrospect toplantısıdır.
Aşırı Programlama Nedir?
Aşırı Programlama (kısaltılmış XP), Agile modeline ait bir yazılım geliştirme metodolojisidir. Aşırı programlama, aşamaları çok küçük sürekli adımlarla gerçekleştirir (geleneksel yöntemlere kıyasla). Sadece bir gün veya bir hafta süren ilk geçiş kasıtlı olarak eksiktir. Yazılımın geliştirilmesine yönelik somut hedefler sağlamak için başlangıçta otomatik testler yazılır. Sonra geliştiriciler kodlamayı yapar. Odak çift olarak programlama yapmaktır. Tüm testler geçtikten sonra kodlamanın tamamlandığı kabul edilir. Bir sonraki aşama, aynı programcılar tarafından kodun yeniden düzenlenmesi ile ilgilenen tasarım ve mimarlıktır. Bu aşamanın sonunda eksik (ancak işlevsel) ürün paydaşlara sunulur. Bundan hemen sonra, bir sonraki aşama (bir sonraki en önemli özelliklere odaklanır) başlar.
Extreme Programming ve SCRUM arasındaki fark nedir?
Aşırı Programlama ve SCRUM anlaşılır şekilde çok benzer ve uyumlu metodolojilerdir. Bununla birlikte, bu iki yöntem arasında ince ama önemli farklılıklar vardır. SCRUM sprintleri 2-4 hafta sürerken, tipik XP yinelemeleri daha kısadır (son 1-2 hafta). Genellikle, SCRUM takımları sprintlerde değişikliklere izin vermez, ancak XP takımları iterasyonlardaki değişiklikler için biraz daha esnektir. Örneğin, sprint planlamasından sonra, o sprint öğelerinin seti değişmeden kalır, ancak üzerinde çalışmaya başlamayan bir özellik istendiği zaman XP'deki diğer bazı özelliklerle değiştirilebilir. XP ve SCRUM arasındaki diğer bir fark, XP'de geliştirilen özelliklerin sırasının müşteri tarafından kesinlikle önceliklendirilmesidir, SCRUM ekibi ise öğelerin sırasına karar verir (ürün birikim listesi SCRUM'un Ürün sahibi tarafından önceliklendirildikten sonra)..
XP'nin aksine, SCRUM herhangi bir mühendislik uygulaması oluşturmaz. Örneğin, XP test odaklı geliştirme (TDD), çift programlama, yeniden düzenleme vb. Uygulamalar tarafından yönlendirilir. Ancak, bazıları kendi kendini düzenleyen ekipler üzerinde bir dizi uygulamanın zorunlu tutulmasının olumsuz bir etkiye sahip olabileceğine inanmaktadır ve bu düşünülebilir XP'nin eksikliği. Extreme programlamanın bir başka eksikliği, deneyimsiz ekiplerin otomatik testler veya TDD (veya sadece hackleme) olmadan yeniden düzenleme eğiliminde olmalarıdır. Bu nedenle, bazıları SCRUM'un bakmak için daha iyi olduğunu (sadece odaklanmış zamanlanmış yinelemeler yoluyla büyük iyileştirmeler getirdiğinden) ve XP'nin, yukarıda belirtilen uygulamaların değerini keşfetmiş olmaktan ziyade yukarıda belirtilen uygulamaların değerini keşfetmiş olan biraz olgun takımlar için uygun olduğunu öne sürüyor böyle yaparak).