Son yıllarda özellikle yazılım dünyasında sıkça karşılaştığımız bir terim olan Agile (Çevik), proje yönetimlerinde giderek yaygınlaşan proje yönetimi metodolojilerinden biridir. Kelime anlamı Türkçede çevik olan Agile kelimesinin kökeni, İngilizcede çeviklik anlamına gelen Agility kelimesidir. Agility/çeviklik, değişen koşullara hızlı ve kolay cevap verme kabiliyeti demektir.
Yazılım dünyasında önde gelen bir grup mühendisin, müşterilerinde gerçekleştirdiği çeşitli yazılım projelerinin başarısızlıkla sonuçlanması üzerine, ekibin bir çözüm arayışına girmesi ve Agile Proje Yönetimini geliştirmeleri ile ortaya çıkar. Bu yöntem, ilk etapta “Agile/Çevik Yazılım Projeleri Yönetimi” olarak ortaya çıksa da, zamanla yazılım dışındaki sektörlerdeki projelerin yönetimlerinde de uygulanarak, proje yönetimi metodolojileri arasında “Agile Proje Yönetimi” olarak yerini almıştır.
Tek bir cümleye sığdıramayacağımız dört farklı değeri, farklı metodolojileri ve bu metodolojilerin prensiplerinden oluşan, kapsayıcı bir çerçevedir. Agile Proje Yönetimi manifestosu ve prensiplerinin temelde hizmet ettiği ilke, değişen koşullara hızlı ve kolay cevap vermeye dayanır. Bu bağlamda, Agile Proje Yönetimi metodolojilerinin her birinde, belli aralıklarla (minimum iki haftada bir) baştan sona tekrarlayan bir döngü vardır.
Ana projeyi, bir nevi alt projeciklere bölerek, elimizde her zaman çalışan minimum özellikli bir yazılım olmasını sağlayan bu döngüyü, yazılım projelerinde geleneksel olarak kullanılan Waterfall (Şelale) proje yönetimi yönteminden farklı kılan nedir?
Waterfall (Şelale) proje yönetimi yöntemi geleneksel proje yönetimi yöntemidir. Fazları sırasıyla:
Agile proje yönetimi metodolojilerinde, Waterfall(Şelale) yönteminde sıraladığımız beş adım, müşteri ile birlikte fiziksel olarak da aynı çalışma ortamında çalıştığımız ve herkesin hizalı olduğu bir yapıda, birkaç haftada bir yapılan canlı geçişleri ile sürekli tekrarlanır. Böylece, projenin başladığı süreden sonra birkaç haftadan itibaren elimizde müşterinin ihtiyaçlarına ilk etapta minimum düzeyde cevap veren, çalışan bir yazılım olur.