Agile proje yönetimi proje planlama ve yönetim süreçlerinde yinelemeli süreç yaklaşımıdır. Bu yöntem proje sürecini sprint ya da yinelemeli hareket denilen parçalara bölme işidir.
Faal proje yönetimi yazılım geliştirmekte olan proje gruplarının, değişen ihtiyaçlara adapte ederken hızlı ve iş birliği içinde çalışmasına olanak tanır. Aynı zamanda geri dönütlerin bu gruplara hızlı ulaşmasını sağlayarak her bir sprintte ve üretim sürecinde değişiklik yapabilmelerine olanak sağlar.
Agile projesi küçük bölümler halinde tamamlanır. Agile yazılım projesinde yinelemeli hareket tek bir geliştirme döngüsü anlamına gelir. Her bir bölüm veya tekrarlı hareket, projenin birkaç temsilcisinin de olduğu proje grubu tarafından gözden geçirilir ve kritiği yapılır. Bu aşamada kritik sonucu elde edilen içgörüler, projede bir sonraki adımın ne olması gerektiğini belirlemek için kullanılır.
Agile proje yönetimi, küçük gruplar halinde çalışmaya, süreçleri görselleştirmeye ve geri bildirim almak için son kullanıcılarla iş birliği yapmaya odaklanır. Sürekli sürümler de bir odak noktasıdır çünkü bunlar normalde her yinelemede geri bildirimi alınmasını içerir.
Agile proje yönetimine başlamanın temel faydası, proje boyunca ortaya çıkan sorunlara yanıt verebilmesidir. Bir projede doğru zamanda gerekli değişikliği yapmak, kaynak israfını önleyebilir ve başarılı bir projenin zamanında ve bütçe dahilinde teslim edilmesine yardımcı olabilir.
Agile Proje Yönetimi Metodolojisi Nedir?
Agile proje metodolojisi, projeleri küçük parçalara ayırır. Bu proje parçaları, genellikle birkaç günden birkaç haftaya kadar süren sprintlerde tamamlanır. Her bir sprint, ilk tasarım aşamasından test ve kalite güvencesine aşamasına kadar devam eder.
Agile metodolojisi, ekiplerin bölümleri tamamlandıkça yayınlamalarına olanak tanır. Bu sürekli sürüm programı, ekiplerin bu bölümlerin başarılı olduğunu göstermelerine ve başarısız olursa kusurlarını hızlı bir şekilde düzeltmelerine olanak tanır. Bunun, proje boyunca sürekli iyileştirme olduğu için büyük ölçekli başarısızlık olasılığını azaltmaya yardımcı olduğuna inanılmaktadır.
APY Nasıl Çalışır?
Agile ekipleri, yinelemelerinde hızlı geri bildirim, sürekli bağdaştırma ve kalite güvencesi için en iyi uygulamaları inşa eder. Ürünlerin piyasaya sürülmesini ve kullanılmasını hızlandırmak için adımları otomatikleştiren teknolojiyi kullanarak sürekli düzenleme ve sürekli entegrasyon gibi uygulamaları benimser.
Ek olarak, Agile proje yönetimi, ekipleri işlerinde ilerlerken sürekli olarak zamanı ve maliyeti değerlendirmeye teşvik eder. İlerlemeyi izlemek için Gantt çizelgeleri ve proje kilometre taşları kullanmak yerine yaptıkları çalışmayı ölçmek için hız, iş bitirme ve işe başlama çizelgeleri kullanmaktadırlar.
Agile proje yönetimi, bir proje yöneticisinin varlığını veya katılımını gerektirmez. Pozisyonun bütçeyi, personeli, proje kapsamını ve diğer kilit unsurları yönettiği Waterfall modeli gibi geleneksel proje teslim metodolojilerinde başarı için bir proje yöneticisi gerekli olsa da APY kapsamında proje yöneticisinin rolü takım üyeleri arasında dağıtılır.
Agile Proje Metodolojisi
Örneğin, ürün sahibi proje hedeflerini belirlerken, ekip üyeleri zamanlamayı, ilerleme raporunu ve kalite ölçüm görevlerini bölüşür. Belirli Agile farklı yaklaşımlar, başka yönetim katmanları ekler. Örneğin, Scrum yaklaşımı, önceliklerin belirlenmesine yardımcı olan ve projenin tamamlanmasına kadar rehberlik eden bir Scrum Master’ı gerektirir.
Proje yöneticileri, Agile proje yönetiminde yine de var olabilir. Pek çok kuruluş, proje yöneticilerini özellikle daha büyük ve daha karmaşık Agile projeleri için kullanmaya devam etmektedir. Bu kuruluşlar genellikle proje yöneticilerini daha çok bir koordinatör olarak görevlendirirler ve ürün sahibi, genel olarak projenin tamamlanması sorumluluğunu üstlenir.
İşin proje yöneticilerinden Agile ekiplere kayması göz önüne alındığında, Agile proje yönetimi, ekip üyelerinin bir sistem içinde nasıl çalışacaklarını bilmelerini ister. Birbirleriyle ve kullanıcılarla iş birliği yapabilmelidirler. Projeleri yolunda tutmak için iyi iletişim kurabilmeleri gerekir. Ve teslimat programlarına ayak uydurmak için doğru zamanda doğru eylemleri yapmakta kendilerini rahat hissetmeliler.
Agile Değerler ve İlkeler
Agile proje yönetimi, dört temel değer ve on iki ana ilkeden oluşur. Dört ana değer, APY’nin son kullanıcıya değer sağlayan işlevsel bir yazılım oluşturma hedefiyle işbirlikçi ve insan odaklı olduğuna açıklık getirmeye yardımcı olur. Bu dört değer aşağıdaki gibidir:
- Bireyler ve kurdukları etkileşimleri, kullanılan süreçler ve araçlardan daha değerli olmalıdır.
- Çalışan bir yazılım oluşturmak, detaylı belgeler üretmekten daha değerli olmalıdır.
- Müşteri iş birlikleri, müzakere sözleşmelerinden daha değerli olmalıdır.
- Değişikliklere cevap verebilmek, belirlenmiş bir planı takip etmekten daha değerli olmalıdır.
Agile proje yönetiminin 12 ilkesi şu şekildedir:
- Yazılımın erken ve sürekli teslimi, müşteri memnuniyetini sağlamak için birincildir.
- Ekipler, geliştirme sürecinin herhangi bir noktasında, hatta geç aşamalarda bile gereksinimleri değiştirebilmelidir.
- Çalışan yazılımın kısa aralıklarla sürekli olarak oluşturulmasına ve dağıtılmasına öncelik verilmelidir.
- Geliştiriciler, proje boyunca son kullanıcılar ve proje paydaşlarıyla birlikte çalışmalıdır.
- Ekip üyelerinin bulundukları ortam onları motive etmelidir.
- Mümkünse geliştirici ekip yüz yüze bilgi aktarımında bulunmalıdır.
- İlerleme öncelikle çalışan yazılım oluşturmada kaydedilen ilerlemeyle ölçülmelidir.
- Geliştiriciler, sürdürülebilir bir geliştirme için sabit bir tempoyu korumalıdır.
- İyi bir tasarım sağlamak için yazılımın kalitesine sürekli dikkat gösterilmelidir.
- Tasarımda sadeliğe odaklanarak yapılan iş maksimize edilmelidir.
- Takımlar, en iyi yazılımı üretmek için kendi kendini organize etmelidir.
- Takımların düzenli aralıklarla nasıl daha etkili olabilecekleri üzerine düşünmeleri gerekmektedir.
APY’nin 5 aşaması
APY sürecinde yer alan beş ana aşama vardır:
- Hayal edin: Proje ve genel ürün ilk olarak bu aşamada kavramsallaştırılır ve son müşterilerin ihtiyaçları belirlenir. Bu aşama aynı zamanda proje üzerinde ve projenin paydaşları ile kimin çalışacağını da belirler.
- Üzerine düşünün: Bu aşama, ürün için ilk gereksinimlerin oluşturulmasını içerir. Ekipler, nihai ürünün neler içermesi gerektiği ile ilgili birlikte beyin fırtınası yapılması gerekir. Ardından proje zaman çizelgesini de içeren kilometre taşları belirlenmelidir.
- Keşfedin: Proje, proje kısıtlamaları dahilinde kalmaya odaklanarak çalışır, ancak ekipler aynı zamanda proje gereksinimlerini karşılamak için alternatifleri de araştıracaktır. Ekipler tek bir kilometre taşı üzerinde çalışır ve bir sonraki aşamaya geçmeden önce tekrar tekrar kontrol eder.
- Adapte olun: Teslim edilen bulgular gözden geçirilir ve ekipler gerekirse uyumlandırma yapar. Bu aşama, müşteri ve personel bakış açılarına göre ortaya çıkan değişikliklere veya düzeltmelere odaklanır. Projenin her bölümünün son kullanıcı gereksinimlerini karşılaması için sürekli geri bildirim verilmelidir. Proje her tekrarda gelişmelidir.
- Kapanış: Teslim edilen sonuçlar gözden geçirilir ve ekipler gerekirse uyumlandırma yapar. Nihai proje, güncellenmiş gereksinimlere göre test edilir. Süreçte karşılaşılan hatalar veya sorunlar, gelecekte benzer sorunlarla karşılaşmamak için gözden geçirilmelidir.
APY’nin Tarihçesi
21. yüzyılda, özellikle yazılım geliştirme projeleri ve diğer bilgi teknolojileri girişimleri için Agile proje yönetimi metodolojisinin kullanımında hızlı bir artış ortaya çıktı.
Bununla birlikte, sürekli gelişim kavramı 20. yüzyılın ortalarına kadar uzanır ve on yıllar boyunca farklı liderler tarafından çok iyi bir şekilde uygulanan çeşitli biçimler almıştır. Örneğin, James Martin’in Hızlı Yinelemeli Üretim Prototiplemesi vardır, bu yaklaşım 1991 tarihli Hızlı Uygulama Geliştirme kitabına ve aynı adı taşıyan HUG yaklaşımına temel teşkil eden bir yaklaşımdır.
Son yıllarda gelişen özel bir Agile proje yönetimi çalışma alanı Scrum’dır. Bu metodoloji, başarılı bir yazılım sistemi sunmak için gereken özelliklerin, işlevselliklerin ve düzeltmelerin öncelikli bir listesi olan bir ürün birikimi oluşturmak için bir geliştirme ekibiyle birlikte çalışan bir ürün sahibine sahiptir. Ekip daha sonra parçaları hızlı artışlarla teslim eder.
Scrum dışında Agile sistemleri arasında Lean, Kanban ve Extreme Programming (XP) bulunur.
Agile Proje Yönetiminin Avantajları
Agile proje yönetiminin savunucuları, metodolojinin aşağıdakiler de dahil olmak üzere çok sayıda fayda sağladığını söylüyor:
Daha fazla özgürlük: Proje yönetimi, tasarımcıların güçlü yanlarını kullanabilecekleri modeller üzerinde çalışmalarına olanak sağlar.
Kaynakların verimli kullanımı: Bu, minimum israfla hızlı yazılım dağıtımı sağlar.
Daha fazla esneklik ve uyarlanabilirlik: Geliştiriciler daha iyi uyum sağlayabilir ve gerekli değişiklikleri yapabilir.
Sorunların hızlı tespiti: Bu, daha hızlı düzeltmeler ve projelerin daha iyi kontrol edilmesini sağlar.
Kullanıcılarla artan iş birliği: Bu, kullanıcı ihtiyaçlarını daha iyi karşılayan ürünlerin ortaya çıkmasını sağlar.
Diğer proje yönetimi yöntemlerinden farkları: APY, Waterfall gibi geleneksel proje yönetimi yöntemleriyle karşılaştırıldığında, geliştirmenin başlangıcında açıkça tanımlanmış hedefler ve süreçler gerektirmez.
Agile Proje Yönetiminin Dezavantajları
Agile proje yönetiminin aşağıdakiler de dahil olmak üzere bazı potansiyel dezavantajları da vardır:
Tutarsız sonuçlar: Bir projenin başlangıcında önceden belirlenmiş eylem planı kısıtlı olduğu için projede sapmalar olabilir.
İlerlemeyi ölçmek zordur: Plan dışı projeler daha az öngörülebilir sonuçlara yol açar.
Zaman kısıtlayıcıları: Agile sistemi, hızlı karar almaya dayanır; bu nedenle sorunları analiz etmesi uzun zaman alan kuruluşlar için uygun değildir.
İletişim uğraştırıcı olabilir: Mümkün olan en iyi ürünü yapmak için ekipler veya son kullanıcılar arasındaki sürekli iş birliği olmalıdır.
APY ve Waterfall
Agile proje yönetimi, Waterfall metodolojisinin zıttıydı ve öyle olmaya devam ediyor. Waterfall metodolojisi, projelere, iş başlamadan önce tüm gereksinimleri bir araya getirerek girişimlerin başladığı katı bir sıralı yaklaşım sunar. Sonraki adımlar, ihtiyaç duyulan kaynakları belirlemek, bütçeleri ve zaman çizelgelerini oluşturmak, asıl işi yapmak, test etmek ve ardından tüm iş tamamlandığında projeyi bir bütün olarak teslim etmektir.
Bu yaklaşımda kabul edilen sorunlara yanıt olarak, 2001 yılında 17 yazılım geliştiricisi, Agile yazılım geliştirmenin 12 ilkesini özetleyen Agile Manifesto’yu yayınladı. Bu ilkeler bugün bile Agile proje yönetimine rehberlik etmeye devam ediyor.
Agile Proje Yönetimi Örnekleri
Ekipler genellikle uygulamak için aşağıdaki APY yöntemlerinden birini veya ikisini seçer:
Scrum: Scrum, ekip çalışmasını, sorumluluğu ve iyi tanımlanmış bir hedefe doğru yinelemeli ilerlemeyi vurgulayan bir proje yönetimi sistemidir. Bu sistem, görülebilen veya bilinebilen bir öncül ile başlar. Bundan sonra, ekipler ilerlemeyi izler ve süreci gerektiği gibi ayarlar. Scrum, günlük scrumlar, sprintler, sprint planlama toplantıları, sprint incelemeleri ve sprint retrospektifleri gibi süreçleri içerir. Scrum rolleri, ürün sahibini, Scrum Master’ı ve Scrum geliştirme ekibini içerir. Bu roller, Scrum’ın üç ayağı vardır: şeffaflık, denetim ve uyum.
Extreme Programming (XP): XP, kısa geliştirme döngülerinde sık sürümler yoluyla yazılım kalitesinin iyileştirilmesini vurgulayan ve yeni müşteri gereksinimlerini benimsemek için kontrol noktaları sunan Agile bir yazılım yöntemidir. XP, beklenen değişiklikler, çiftler halinde programlama, kod netliği, kod inceleme ve birim testi gibi geliştirme uygulamalarına ve gerekli olana kadar özellikleri programlamamaya odaklanır.
Feature-Driven Development (FDD): FDD kısa yinelemeler ve sık sürümler ile tanınan müşteri merkezli bir yazılım geliştirme metodolojisidir. Scrum’a benzer olmasına rağmen FDD, proje işletme sahibinin ilk tasarım toplantılarına ve yineleme retrospektiflerine katılmasını gerektirir. FDD süreci, bir model geliştirmeyi, bir özellik listesi oluşturmayı, her bir özelliği planlamayı ve her bir özelliği tasarlamayı ve oluşturmayı içerir.
Lean Software Development(LSD): LSD yazılım geliştirme, yazılım geliştirme sürecinde verimliliği optimize etmeyi ve israfı en aza indirmeyi vurgulayan bir kavramdır. Süreç, israfın ortadan kaldırılmasını, kalitenin oluşturulmasını, öğrenmenin teşvik edilmesini, deneme yükümlülüklerinin ertelenmesini ve sürecin optimize edilmesini içerir.
Adaptive Software Development (ASD): ASD, belirli bir plana bağlı kalmanın aksine, proje boyunca sürekli öğrenmeye odaklanan, erken yinelemeli bir Agile yazılım geliştirme biçimidir. Asd’de bir spekülasyon veya planlama aşaması, bir işbirliği aşaması ve bir öğrenme aşaması vardır.
Kanban: Kanban, bir süreç boyunca ilerlerken işi yönetmek ve takip etmek için kullanılan görsel bir sistemdir. Üretimde Kanban, müşterinin siparişiyle başlar ve üretimi aşağı yönde takip eder. Çalışma öğeleri bir Kanban panosunda temsil edilir ve ekip üyelerinin her bir işi aynı anda görmelerini sağlar.
Sibel Güney
AB Proje Yönetimi Blog Yazarı