Agile – FAIL OFTEN, FAIL FIRST

Agile… Kelime anlamı, atik, çevik, zarif hareket… Günümüzde değişim her yerde ve çok hızlı. Çok fazla yeni bilgi, yeni durum ve bunlara bağlı fırsatlar (opportunities) ve tehditler (threats) oluşuyor. Tam da bu nedenden özellikle şirketler için önemli oluyor. Adaptasyon için hızlı hareket, her seferinde kendini geliştiren yükselten ve açık değerlendirmelerde bulunabilen otonom hareket edebilen takımlar gerekiyor. İnsiyatif almak, risk almak, değişimi kabul etmek ve denemekten korkmamak önemli. FAIL OFTEN, FAIL FIRST dedikleri bu! Karmaşık sistemleri gerçekleyebilmenin en güzel yolu deneysel (emprical) metodları kullanmak..

Günümüzde Agile, (1995) 22 yaşında genç bir yazılım geliştirme metodolojisi olarak tanımlanabilir. 1990’ların sonunda 2001’de ise, yazılım dünyasında bu metodolojiye kafa yoran IT’ciler tarafından daha iyi yazılım geliştirmek isteyenlere yol gösterici olacak maddeler toparlanmış ve bu “Agile Manifesto” olarak yayınlanmıştır.

4 madde özetle şu şekilde..

  • Bireyler ve iletişim > Süreçler ve araçlar
  • Çalışan yazılım > Detaylı belgelendirme
  • Müşteri işbirliği > Kesin kurallı sözleşmeler
  • Değişikliklere uyum > Kesin planlar

    agile_manifesto_graphic_lynne_cazaly_c_2015-1024x768
    Manifestoya buradan erişebilirsiniz.

“Peki neden çıktı bu Agile?” sorusuna gelirsek, uzayan (overbudget) veya başarısız (fruitless) sonuçlanan yazılım projeleri oran olarak çok da azımsanmayacak düzeye gelmesi ile doğal olarak ortaya çıkmıştır diyebiliriz. Gartner Institute’in sonuçlarına göre IT projelerinin %51’i bütçesini 2 katı oranında aşıyor ve hedeflenen özelliklerden sadece %75’ine karşılık verebiliyor.

Klasik yaklaşımlarla ilerlettiğimiz yazılım süreçlerinde, 6 ay ve daha uzun süren projeleri genel olarak riskli görebiliriz, çünkü;

  • Yazılım projelerinin bu süre boyunca bütçeyi eritiyor ve henüz piyasadan herhangi bir geribildirim almıyor. Dolayısıyla doğru yönde ilerleyip ilerlemediğini bilemiyoruz.
  • Belki de çok kullanılmayacak bir fonksiyon üzerinde eforumuzun %80’ini harcıyoruz ve bunu göremiyoruz. (Klasik parite kuralı her zaman işler.)
  • Klasik waterfall mantığı ile ilerlediğimizde, piyasadaki değişkenliğe cevap verecek, hızlı atılımı yapabileceğimiz, üzerinde değişiklikler yapabileceğimiz çalışan bir yazılıma ve (onunla uğraşan bir yazılım takımına) sahip olamayabiliyoruz. Projelerin ilk birkaç ayında sadece gereksinim (ister) topladığımız ve analizi oluşturduğumuzu göz önüne alırsak, çoğunlukla yaşanan durum bu.
  • Değişen koşullarla birlikte, gereksinimler de sürekli değişebiliyor ve analiz kısmını tamamladığınız bir projede, başa dönüp tekrar ihtiyaçları gözden geçirmeniz gerekebiliyor.
  • İhtiyacı görüp, çok basit bir şekilde karşılayan rakibiniz, kullanıcıları çok daha hızlı yanına çekebiliyor ve pazarın hedeflenen kitlesi sizden uzaklaşabiliyor.

“Peki Agile metodolojisi neyi yok etmeye çalışır?”

  • Muda (waste) -> Getiri sağlamayacak bir özellik üzerine yapılan eforu engellemeye çalışır.
  • Muri (overload) -> Proje sonuna doğru yaşanan, ya da bir projede daha hızlı ve daha kaliteli iş çıkaran developer’ın (takımdaki her bir kişi) üzerinde aşırı iş yükü olmasını yok etmeye çalışır.
  • Mura (irregular) -> Aşırı yoğun ya da durgun dönemler oluşmasını engelleyerek, düzenli ve takıma en uygun hızda/en verimli şekilde çalışılmasına olanak sağlar.

    muda-muri-mura-so-what-hifi
    Resim Kaynak: https://deejaygraham.github.io

“Peki bunu nasıl yapar?”

Kısa bir özetle, yetkin kişileri bir araya getirip, belirli değerleri benimseyerek takım halinde çalışmalarını, kendilerini ölçümleyerek, self organize ve otonom olarak ilerlemelerini sağlayarak.

“Peki ama hangi değerler ve nasıl?”

Bu sorunun cevabı ise bir sonraki derleme yazımda

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s