Çevik ve Geleneksel Yazılım Geliştirme Metodolojisi
Günümüzde yazılım endüstrisinde kullanılan çok sayıda farklı yazılım geliştirme metodolojisi vardır. Şelale geliştirme yöntemi, en eski yazılım geliştirme yöntemlerinden biridir. Şelale metodolojisinden sonra gelen V-Model, RUP ve diğer birkaç doğrusal, yinelemeli ve birleşik doğrusal yinelemeli yöntem, şelale yönteminin birçok sorununu ortadan kaldırmayı amaçladı. Tüm bu önceki metodolojilere Geleneksel Yazılım Geliştirme Metodolojileri denir. Çevik model, geleneksel modellerde bulunan eksiklikleri gidermek için tanıtılan daha yeni bir yazılım geliştirme modelidir. Agile'ın ana odak noktası, sistemi çok küçük ve yönetilebilir alt parçalara bölerek mümkün olduğunca erken testleri dahil etmek ve ürünün çalışan bir sürümünü çok erken yayınlamaktır.
Geleneksel Yazılım Geliştirme Metodolojisi Nedir?
Şelale yöntemi, V-Model ve RUP gibi yazılım metodolojilerine geleneksel yazılım geliştirme metodolojileri denir. Şelale metodolojisi, en eski yazılım geliştirme modellerinden biridir. Adından da anlaşılacağı gibi, ilerlemenin birkaç aşamadan (gereksinim analizi, tasarım, geliştirme, test etme ve uygulama) bir şelaleye benzer şekilde yukarıdan aşağıya aktığı sıralı bir süreçtir. V-Model, Waterfall yazılım geliştirme modelinin bir uzantısı olarak kabul edilir. V-Model, Şelale modelinde tanımlanan fazlar arasındaki aynı ilişkileri kullanır. Ancak (Şelale modeli gibi) doğrusal olarak inmek yerine, V-Modeli çapraz olarak aşağı iner ve daha sonra (kodlama aşamasından sonra) yukarı doğru hareket ederek V harfinin şeklini oluşturur. RUP (Rational Unified Process), geliştirme organizasyonu tarafından ihtiyaçlarına göre özelleştirilebilen uyarlanabilir bir süreç çerçevesidir (tek bir somut süreç değil). Şelaleye biraz benzer, başlangıç, detaylandırma, yapım ve geçiş gibi sabit aşamaları vardır. Ancak şelalenin aksine, RUP yinelemeli bir süreçtir.
Çevik Nedir?
Agile, çevik manifestoya dayalı çok yeni bir yazılım geliştirme metodolojisidir (veya daha doğrusu bir grup metodolojidir). Bu, geleneksel yazılım geliştirme metodolojilerindeki bazı eksiklikleri gidermek için geliştirilmiştir. Çevik yöntemler, geliştirme döngüsünün başlarında müşteri katılımına yüksek öncelik vermeyi temel alır. Müşteri tarafından testlerin mümkün olduğunca erken ve sıklıkla dahil edilmesini önerir. Kararlı bir sürüm kullanıma sunulduğunda her noktada test yapılır. Agile'ın temeli, teste projenin başlangıcından başlayıp projenin sonuna kadar devam etmeye dayanır. Scrum ve Extreme programlama, Çevik yöntemlerin en popüler varyasyonlarından ikisidir.
Agile'ın temel değeri, yazılımın kalitesinin tüm ekibin (sadece test ekibinin değil) sorumluluğunda olduğunu vurgulayan “kalite ekibin sorumluluğudur” dur. Agile'ın bir diğer önemli yönü, yazılımı daha küçük yönetilebilir parçalara bölerek müşteriye çok hızlı bir şekilde teslim etmesidir. Çalışan bir ürün sunmak son derece önemlidir. Ardından ekip, yazılımı geliştirmeye ve her büyük adımda sürekli olarak teslim etmeye devam eder. Bu, çok kısa sürüm döngülerine (Scrum'da sprintler denir) sahip olarak ve her döngünün sonunda iyileştirme için geri bildirim alarak elde edilir. Önceki yöntemlerde geliştiriciler ve testçiler gibi ekibin çok fazla etkileşimi olmayan katkıda bulunanlar, artık Çevik model içinde birlikte çalışıyor.
Çevik ve Geleneksel Yazılım Geliştirme Metodolojisi arasındaki fark nedir?
Çevik yöntem, geleneksel yaklaşımlardan bazıları gibi yinelemeli geliştirmeye dayalı olsa da, Çevik ve Geleneksel metodolojilerin temel farklılıkları vardır. Geleneksel yaklaşımlar planlamayı kontrol mekanizması olarak kullanırken, Çevik modeller ana kontrol mekanizması olarak kullanıcılardan gelen geri bildirimleri kullanır. Çevik, geleneksel yöntemlerden daha insan merkezli bir yaklaşım olarak adlandırılabilir. Çevik model, geleneksel metodolojilere kıyasla ürünün çalışan bir sürümünü çok erken sunar, böylece müşteri bazı faydaları erkenden fark edebilir. Agile'ın test çevrim süresi, geleneksel yöntemlere göre nispeten kısadır, çünkü testler geliştirmeye paralel olarak yapılır. Çoğu geleneksel model, Çevik modelden çok katı ve nispeten daha az esnektir. Tüm bu avantajlarından dolayı şu anda geleneksel metodolojilere göre Agile tercih edilmektedir.