Günümüzde “Proje Yönetimi” dediğimiz zaman, insanların akıllarına gelen ilk şeylerden biri olan “AGILE”, proje yönetim profesyonellerinin yakından bilmesi gereken bir kavram, bir model. Yapılan araştırmalara göre yazılım projelerinin % 50‘den fazlası başarısızlıkla sonuçlanmaktadır. Bu başarısızlıklarda ya ortaya çıkan ürün müşterinin ihtiyacını karşılamamakta ya da planlanan zamanın, planlanan bütçenin çok ötesinde tamamlanmaktadır.

Benim tanımım çevik ve değişime adapte olup, müşteri ile daha yakın, takım çalışmasının en yüksek düzeyde kullanılarak, sürekli iyileştirmelerle çıkan ürünü parçalar halinde, maksimum fayda ile teslim etmektir. Agile, içerisinde birçok parça barındırdığı için, birkaç kelime ile tüm bileşenlerini ifade etmek gerçekten zordur. Agile Manifesto’dan da bahsetmek, Agile ile bilgilerimizi daha da pekiştirecektir. Bu manifesto;

  • Süreçler ve araçlardan ziyade bireyler ve aralarındaki etkileşimlere,
  • Kapsamlı dokümantasyondan ziyade çalışan yazılıma,
  • Sözleşme pazarlıklarından ziyade müşteri ile işbirliğine,
  • Bir plana bağlı kalmaktan ziyade değişime karşılık vermeye önem vermektedir.

Bu dört kavram bazı şirketler veya kişiler tarafından yanlış anlaşılmaktadır. Agile demek “Dokümansız, müşteri ile oturup onların isteklerini hızlı şekilde yapmak ve değişen taleplerine de anında karşılık vermek” değildir. Waterfall metodundaki zorluğu  yaşayan bazı yazılım ekipleri, bu düşünce ile rahatlamakta ve proje sonunda yine başarısız projeler / ürünler ortaya çıkartabilmektedir.

Waterfall metodundaki zorluk demişken, Waterfall yazılım geliştirmenin Agile yaklaşımına göre bazı dezavantajları olabilmektedir:

  • Değişime karşı yavaş ve zorlu bir yaklaşım,
  • Proje kalite problemleri,
  • Üretilen ürün proje sonunda teslim edildiği için, müşteri ile beklentinin uyuşmadığının geç fark edilmesi,
  • Ürünün pazara çıkışının geç olmasıdır.

“Agile Nedir?” ve “Neden Agile?” sorularını, geleneksel yazılım geliştirme metotlarıyla, kısaca karşılaştırarak cevaplamaya çalıştık. Şimdi “Agile’ı şirketimizde nasıl uygulamalıyız?” kısmına değineceğiz.

Agile yazılım geliştirme için öncelikle hangi metodu seçeceğimizi belirlemeliyiz ve şirketimize uygun olan Agile yöntemine göre, şirket organizasyonumuzu güncellemeliyiz. Agile yazılım geliştirmenin birçok metodu vardır. Bunlar içerisinde en kabul görmüş olanlarından biri, SCRUM’dır. Scrum tanım olarak, basit kuralları olan ve tüm kuralları uyguladığımızda “Kullanıyorum” diyebileceğimiz bir yazılım geliştirme modelidir. Scrum’ın temel çerçevesini uygulayabilmek, bu dönüşümü sağlayabilmek, birçok şirket için zorlu bir süreçtir. Var olan, mevcut görevlerin değişmesi, kaynakların birden çok görev üstlenmesi, yeni kaynaklar alınması, toplu eğitimler verilmesi, danışmanlık sağlanması gibi aşamalar gerekmektedir.

Danışmanlık alma aşaması, bu dönüşümün en önemli aşamalarından biridir. Bu dönüşümler hayatımıza yeni girdiği için, deneyimleyen firmalar ve bireyler de kısıtlı olduğu için, şirketlerin dönüşümü kendilerinin yapmaya çalışması, başarısız dönüşümlerin sayısını arttırmaktadır. Bu nedenle şirketler olabildiğince, bu konuda uzman ekiplerle çalışarak, bu dönüşümleri gerçekleştirmelidir.

Agile dönüşüm için organizasyonel yapıya ek olarak, çalışan kişilerin de yaklaşımlarını yani şirket kültür değişimini yapılması önemlidir. Bunların başlıcaları aşağıdaki gibidir:

  1. Yazılım geliştiriciler sadece belirli bir alanda değil, birçok alanda uzmanlık sağlayabilmeli / kendini geliştirebilmelidir. Agile işleri yönetilebilir parçalara böldüğü için, bu parçalardaki bir işi tek bir yazılım geliştirici tamamlayabilmelidir. Bu iş içerisinde hem analiz kısmı, hem yazılım geliştirme kısmı hem de birim testi olabilir.
  2. Yazılım geliştiricilerdeki sorumluluk arttığı için, takım ruhuna  daha fazla ihtiyaç vardır. Bu ekipler bir yöneticiye ihtiyaç duymadan, kendi kendilerini yönetebilmelidir.
  3. Tüm ekip müşteri ile temas halinde olacağından, iletişim ön plandadır. Müşteriyi anlamak, ihtiyaçlarına hızlı cevap verebilmek için belirli bir adaptasyon süreci gereklidir.
  4. Ekip değişime ve yeniliğe açık hale getirilmeli ve sürekli iyileştirme kültürü benimsemelidir.  “Yaptığınız işi yapmanın, her zaman daha kolay bir yolu vardır.”dan hareketle, bu yolu görebilmek için adım atmalıyız. Adım attığımız zaman, fırsatlar da doğacaktır.

Agile dönüşüm kolay bir süreç değildir. Agile dönüşüm için organizasyonel yapı ve kişileri bir kere değiştirerek, tüm süreci adapte etmemeliyiz. Bu dönüşümü aşama aşama yapmalıyız. Pilot uygulamalarla, şirketimize en uygun olan Agile yaklaşımı bulmalı ve bu yaklaşımı önce şirket kültürünü değiştirerek, sonrasında da Agile yöntemi seçerek ve en son olarak da organizasyonel yapımızı güncelleyecek uygulamalıyız. “En iyi çözümü bulmak” cümlesi, ucu açık bir cümledir. Hiçbir zaman en iyi çözümü bulduk diyerek durmamalı, iyileştirmelerimize sürekli devam etmeliyiz.