Agile Vs Waterfall

Agile  yaklaşımda en önemli faktörler değişime hızlı adapte olması ve çözümler sağlaması, müşterinin devamlı projeye dahil edilmesi, proje ekibi ile birlikte sık toplantılar yapılması ve ekibin kendi kendini organize etmesidir.

Agile, en yaygın olan Scrum metoduyla özdeşleşen yaklaşımların,  Waterfall metotlardan daha üstün olduğu iddia edilemez. Önemli olan doğru yerde, doğru metodu uygulayabilmektir.
Yeniliklere/değişen teknolojilere ayak uydurmadaki zorluklar, Waterfall metodun dezavantajlı, Agile ın avantajlı yönü olarak değerlendirilse de
güçlü bir kurumsal hafıza için, detaylı dokümanların olması da waterfall metotların Agile a karşı yarattığı üstünlüktür.

İsterlerinin ne olduğunun tam anlaşılmadığı; analiz, yazılım, test süreçleri planlamasının önceden yapılmasının güç olduğu, bulanık bir proje ise, projenin başındaki isterler analiz edildikçe değişebileceğinden, agile yöntemle ilerlemek daha doğru olabilir.

Yapılacak işin çok net olduğu projelerde ise, Agile yöntem yerine Waterfall metotla ilerlemek daha doğru olur. Müşteri isteklerinin projenin başında net olmaması, waterfall metodlarda olumsuz sonuçlar doğurabilir.

Waterfall metotlarda resmin bütünü görülerek ilerlenirken, agile da iteratif ve katmadeğerli olarak ilerlenir. Çoğu zaman, müşteriler büyük resmi göremediklerinden, isterlerinin tamamını projenin başında iletemezler. Maliyeti nedeni ile ertelenen müşteri talebi de, müşterinin istemediği şekilde prod’a çıkılması sonucu, müşteri memnuniyetsizliğine neden olur.

Waterfall metotlarda her bir sürecin çıktısı diğerine girdi oluşturur. Yazılım geliştirme süreci; analiz, tasarım, yazılım, test, sürüm ve bakım aşamalarından oluşur. Her bir basamakta da, ilgili basamakta tamamlanması gereken aktiviteler tamamlandıktan sonra bir sonraki basamağa geçilir. Tasarıma geçmeden analiz aşamasında her bir isterin sistemde nasıl karşılanacağının belirtilmesi gerekir. Tasarım, kodlama veya test aşamalarında, oluşabilecek CR’lar, tasarımı da değiştirebileceğinden maliyeti fazla olur. Waterfall metodlarda değişikliklerin yönetilmesi maliyetlidir. Agile metotta ise müşteriden gelecek CR’lar her bir sprint'te handle edilerek ilerleneceğinden maliyet ve istek değişikliği yönetimi de mümkün olur.

Agile ya da waterfall metotla ilerleme kararı verilirken, 

•Projedeki gereksinimlerin netliği,
•Müşteri rolünü üstelenmiş kişilerin proje içindeki tavrı, tecrübesi
•Kaynakların yetkinliği,
•Organizasyonda ast – üst ilişkisinin hakim olup olmadığı
•Eleman sirkülasyonu 

gibi temel konular dikkate alınmalıdır.

Neden Agile?
Agile(Çevik) Proje Yönetimi yaklaşımında her bir proje, iterasyon adı verilen proje fazlarına ayrılmıştır ve her bir faz sonunda çalışan bir ürün ortaya çıkar.

İlk iterasyon fazında; minimum özellikte fakat olmazsa olmaz gereksinimlerin yer aldığı bir ürün çıkarmak hedeflenir. İlk olarak müşterinin en önemli gereksinimlerine odaklanılır. Her bir iterasyonda diğer gerekli özellikler eklenerek; proje sonucunda nihai ürüne ulaşırsınız. Ama her iterasyonda çalışır bir ürün çıkarma hedefiyle ilerlenir, nihai ürünün çalışmayan bir parçası değil. Agile çevik yaklaşımın en güzel yanlarından biri de, her bir iterasyon sonrasında test yapıldığı için; hataları erkenden tespit edip önlemler alabilirsiniz. Hata ne kadar erken tespit edilirse, bu hatanın projeye olan maliyeti o kadar az olacaktır. Waterfall modelinde test, ürünün tamamlanmasını takiben projenin sonunda yapılır.

Agile çevik proje yönetimi, waterfall şelale modeli, iterasyon ve aşamalı gelişim modeli
Agile metodolojisinin diğer güzel yanlarından birisi her iterasyon sonrasında, kullanıcılardan geri dönüşler alırsınız ve bu müşteri ihtiyaçları doğrultusunda bir sonraki iterasyonda bu geliştirmeleri uygularsınız. Değişiklikleri uygulamak, waterfall (şelale) modeline göre çok daha kolaydır. Değişim, Agile için olmazsa olmazdır. Agile proje yönetim yaklaşımı değişime açıktır. Waterfall modelinde, değişiklik talepleri detaylı olarak değerlendirilir; değişime direnç şelale modelinde daha fazladır. Çünkü müşterinin ürün ile etkileşime; ürünün geliştirmesi tamamlandıktan sonra geçer. Bu aşamada gerçekleşecek değişikliklerin maliyeti, ilk fazlara oranla daha yüksektir. Bu durum değişime direnci arttırır.

Agile Yaklaşımı:
Avantajları
Planlamanın döngüler halinde daha kısa sürede yapılması

  • Müşteri ihtiyaçlarına daha esnek bir şekilde cevap verilebilmesi ve proje üzerinde etkisinin daha az olması
  • Projede ekip ruhunun daha güçlü olması
  • Ürünün son teslimden önce müşteri tarafından görülerek test edilmesi dolayısıyla ürünün kabul edilmemesi riskinin azaltılması
  • Müşterinin proje ekibi ile devamlı işbirliği içinde olması gerektiği için projeye olan bağlılığın artması ve ürünün sahiplenilmesi
  • Projede liderliği sadece proje yönetim ekibinin değil, çeşitli proje üyelerinin de insiyatif alarak kullanabilmesi

Dezavantajları

  • Planlamaya az zaman ayrılmasının daha kapsamlı projelerde ürünün tüm tasarımının göz önüne alınması gerektiğinde yetersiz kalabilmesi
  • Çok sayıda kaynak, Agile proje toplantılarında katılım sayısının en fazla 9 olması gerektiğini savunurken büyük projelerde ekip sayısının daha fazla olması ve bunun karar verme sürecini uzatması
  • Agile yaklaşımını ilk defa kullanacak organizasyonlar için, yönetim kademeleri ve proje ekibinin yeni yöntemler konusunda eğitim almasının masraflı olması
  • Ekibin devamlı bir arada olmasının farklı lokasyonlarda çalışan ekipler için zor ve masraflı olması

Ürün tasarımı ve ekibin büyüklüğü nedeniyle oluşan sorunlara daha ileri yöntemler olan Disciplined Agile ve Scaled Agile Framework çözüm getirebiliyor.


Neden Waterfall?
Avantajları
Projenin başında detaylı bir proje planı yapılarak uygulanması

  • Proje yönetim ve ekip rollerinin belli olması, belirsizliğin azalması
  • Firmanın klasik yöntemlere aşina olması ve genel olarak proje teknikleri ile ilgili olarak eğitim ihtiyacının Agile tekniklere göre daha az olması
  • Projede müşteri kaynak ihtiyacının daha az olması

Dezavantajları

  • Müşteri ihtiyaçlarına esnek olarak cevap verememesi ve kapsam kaymasının proje maliyetini artıracağı ve süreyi uzatacağı için kabul görmemesi
  • Müşterinin ürünü projenin sonlarına doğru, geliştirme aşamasından sonra gördüğünde çok sayıda değişiklik isteğinin çıkabilmesi
  • Ürün, kullanıcılar tarafından yeterince sahiplenilmediği için kullanımında direnç gösterilmesi
  • Müşteri ihtiyaçlarına cevap verilmediği ölçüde projede başarısızlık olasılığının yükselmesi

Agile proje yöntemlerinin kullanılabilmesi için şirket kültürünün bu değişime hazır olması ve proje ekibinin bu doğrultuda eğitim almış olması mutlaka gereklidir. Ayrıca Üst Yönetim’in desteği de her projede olduğu gibi çok önemlidir; proje ekibine hızlı karar almak için inisiyatif verilmiş olmalıdır.

Agile manifesto, 4 temel değer üzerine odaklanmaktadır:

  1. İş süreçleri ve araçlardan ziyade bireyler ve bireyler arasındaki etkileşim değerlidir.
  2. Kapsamlı bir dokümantasyon sürecinden ziyade, çalışan bir yazılım ortaya koymak daha önemlidir.
  3. Müşteri ile işbirliği yapmak, sözleşme görüşmelerinden daha önemlidir.
  4. Değişime cevap vermek, mevcut planı izlemekten daha önemlidir.

Agile Çevik Proje Yönetimi uygulamasının temelinde yatan 12 Prensip:

  1. Değerli yazılımın erken ve devamlı teslimi yaparak müşteriyi memnun et.
  2. Değişime açık ol şöyle ki; yazılımın son aşamasında bile değişen gereksinimleri kabul et.
  3. Çalışan yazılım sık ve tercihen kısa aralıklarla müşteriye sunulmalıdır.
  4. İşin sahibi ve yazılımcılar birlikte çalışmalıdır.
  5. Bireyleri motive et, ihtiyacı olan ortam ve desteği sağla ve işin başarıya ulaşacağı konusunda şüphelerin olmadığından emin ol.
  6. Yüz yüze iletişim, bilgi alışverişinde en etkin yöntemdir.
  7. Çalışan yazılım = (eşittir) ilerlemek.
  8. Agile süreçleri, sürdürülebilir geliştirmeyi destekler. Sponsorlar, kullanıcılar ve geliştirmeciler proje boyunca sabit tempoda bir çalışma düzeni kurmalılar.
  9. Teknik mükemmeliyet ve iyi tasarım olmazsa olmazdır.
  10. Sadelik ya da gereksiz işten kaçınma sanatı agile bir parçasıdır.
  11. Takımlar, kendi kendini organize edebilmelidir.
  12. Son aşama derinlemesine düşünmedir. Takım, düzenli aralıklarla nasıl daha etkili ve verimli olacağının üzerine düşünmeli ve davranışlarını buna göre düzenlemedir.

“Çeviklik, değişime adapte olma ve cevap verebilme yeteneğidir. Çevik organizasyonlar, değişimi fırsat olarak görürler, tehdit olarak değil…” Jim Highsmith

Sevgiler

Gülcan Berber, BT Yönetici, Eğitmen

Yorum ekle


Güvenlik kodu
Yenile

Gülcan Berber

Gülcan Berber

BT yönetici, Eğitmen