AGILE NEDİR?

Dört aşamalı sprint döngüsü diyagramı, dairesel olarak birbirine bağlı düğümler ve eğri akış okları

Agile'ı duyan çoğu yazılım profesyoneli onu "kısa toplantılar, sticky note'lu panolar ve haftalık demo" olarak özetler. Oysa Agile bir toplantı düzeni değil, iş yapma biçimine dair bir zihniyet değişimidir. Bu yanılgı, pek çok ekibin "agile'a geçtik" deyip eski alışkanlıklarla devam etmesinin temel sebebidir. Yazılım, ürün veya proje yönetiminde çalışan herkes için kavramı doğru anlamak artık temel okuryazarlık seviyesindedir. Bu yazı, konuya sıfırdan başlayan okuyucu için pratik bir başlangıç noktasıdır.

Agile'ın Çıkış Hikayesi

2001 yılının Şubat ayında 17 yazılım geliştirici Utah'taki bir kayak merkezinde toplandı. Hepsinin ortak derdi vardı: dönemin yazılım projeleri ağır dokümantasyon, uzun planlama döngüleri ve teslim aşamasında çıkan büyük sürprizlerle anılıyordu. Bu toplantıdan çıkan kısa metin, sonradan Agile Manifesto olarak tarihe geçti.

Manifesto Scrum, XP, Crystal, Lean ve DSDM gibi farklı yöntemlerin temsilcilerini ortak bir paydada birleştirdi. Temel iddiası şuydu: ağır süreç ve dokümantasyondan önce çalışan yazılım gelir; uzun vadeli plan yerine değişime hızlı yanıt vermek belirleyicidir. Metnin orijinal kaynağı hâlâ aynı sade biçimiyle yayında ve dört değer ile on iki ilkenin asıl ifadesini birinci elden okumak isteyenler için başvurulacak yerdir.

Manifesto'nun Dört Değeri

Manifesto dört önceliği ortaya koyar. Sağ tarafta yer alan unsurların değerli olduğunu kabul eder, ancak sol tarafa daha fazla ağırlık verir:

  • Bireyler ve etkileşim — süreç ve araçlardan önce
  • Çalışan yazılım — kapsamlı dokümantasyondan önce
  • Müşteri ile işbirliği — sözleşme pazarlığından önce
  • Değişime yanıt — plana sıkı sıkıya bağlı kalmaktan önce

Bu cümleler süreci, dokümanı veya planı tümüyle reddetmez; sıralamayı belirler. "Biz agile'iz, planlama yapmıyoruz" yanılgısı tam buradan doğar — bu Agile değil, kontrolsüz geliştirmedir.

Şelale ile Agile Arasındaki Fark

Klasik şelale (waterfall) modelinde analiz, tasarım, kodlama, test ve dağıtım birbirini takip eden bağımsız fazlardır. Bir faz tamamlanmadan diğeri başlamaz. Bu yapı inşaat ve klasik mühendislikten miras alınmıştır; orada beton kuruduktan sonra yön değiştirmek mümkün olmadığı için önce her şeyi planlamak şarttır.

Yazılımda durum farklıdır. Gereksinimler zamanla netleşir, müşteri ne istediğini ürünü görmeden tam söyleyemez ve teknik kararların büyük bölümü ancak denenince doğrulanır. Altı ay yazılan dokümana göre geliştirilen ürünün teslimde "hayır, istediğimiz tam olarak bu değildi" yanıtıyla karşılanması yazılım tarihinin en bilinen sahnelerinden biridir. Agile bu sorunu kısa döngülerle çözer: 1-4 haftalık iterasyonlarda çalışan parçalar üretilir, geri bildirim toplanır, yön ayarlanır.

Pratiğe geçmek isteyenler için Agile eğitimi Scrum ve Kanban'ı uygulamalı şekilde ele alır; manifestoyu somut iş ritüellerine dönüştürür.

To Do, In Progress, Done sütunlu üç kolonlu kanban tahtası, sütunlarda yığılı görev kartları ve akış oku

Scrum: Agile'ın En Yaygın Çerçevesi

Scrum, agile'ın en bilinen ve en çok uygulanan çerçevesidir. Belirli roller, etkinlikler ve çıktı (artifact) seti tanımlar; sınırları net olduğu için yeni başlayan ekipler genellikle buradan girer.

Roller

  • Product Owner — ürün vizyonunu temsil eder, backlog'u önceliklendirir, "ne yapılacağı" sorusunun sorumlusudur
  • Scrum Master — sürecin sağlıklı işlemesinden sorumludur, engelleri kaldırır, ekibi dış gürültüden korur
  • Geliştirme Ekibi — ürünü inşa eden, kendi kendini örgütleyen, çoklu yetkinlikteki yapı

Etkinlikler

Sprint 1-4 haftalık sabit zaman kutusudur. Sprint başında planning, her gün kısa daily standup, sprint sonunda review ve retrospective yapılır. Bu sabit ritim ekibin tempo bulmasını ve sürekli iyileşme kasını çalıştırmasını mümkün kılar.

Kanban: Akış Tabanlı Yaklaşım

Kanban kökenini Toyota üretim sisteminden alır. Yazılıma uyarlandığında işin akışını görselleştiren bir pano kullanılır: To Do, In Progress, Done sütunları. Her sütunda aynı anda bulunabilecek iş sayısı WIP (Work in Progress) limiti ile sınırlandırılır; böylece yarım kalan işler birikmez, akış hızlanır.

Scrum sprint döngüleri etrafında zamana bağlıdır, Kanban ise sürekli akış üzerine kuruludur. Destek ve bakım ekipleri çoğunlukla Kanban'ı tercih eder, çünkü iş geldikçe değerlendirilmesi gereken bir akış vardır. Yeni ürün geliştiren ekipler Scrum'da daha iyi sonuç alır. İkisinin karışımı olan Scrumban da pratikte sık karşılaşılan bir hibrit yapıdır.

Agile Hakkında Yaygın Yanılgılar

Agile çevresinde dolaşan bazı yanlış inanışlar ekiplerin gerçek dönüşümünü engeller:

  • "Agile demek hızlı kod yazmak demektir." Hayır. Agile, doğru ürüne ulaşma olasılığını artırır; hız ikincil bir sonuçtur.
  • "Plan yapmıyoruz." Yanlış. Agile aslında daha sık plan yapar — uzun tek plan yerine kısa ve sürekli güncellenen planlar.
  • "Dokümantasyon yapmıyoruz." Yanlış. Gereken dokümantasyon üretilir; gereksiz olan üretilmez.
  • "Agile = Scrum." Hayır. Scrum agile'ın bir uygulamasıdır; XP, Kanban, Lean gibi başka çerçeveler de aynı şemsiyenin altındadır.
  • "Yöneticiye gerek yok." Yanlış. Yönetici rolü değişir — komuta-kontrol yerine engel kaldırma, koçluk ve stratejik yön ön plana çıkar.

Agile Nerede İşe Yaramaz

Her proje agile için uygun değildir. Kamu ihalesi, sıkı regülasyonlu mühendislik veya hayata kritik gömülü yazılım gibi kapsamın baştan dondurulduğu projelerde şelale daha güvenli olabilir. Müşteri uzak, erişilemez ya da geri bildirim vermeye istekli değilse agile döngüsünün enerjisi sönükleşir. Ekip kendi kendini örgütleyemiyorsa Scrum'ın yüklediği sorumluluk modeli ağır gelir.

Agile bir araç kutusudur, dini bir doktrin değil. Önemli olan kavramı körü körüne uygulamak değil; kuruluşun kültürüne, müşteri profiline ve projenin yapısına göre adapte etmektir. Manifesto'nun ilk satırı boşuna yazılmadı: süreçler ve araçlar değil, bireyler ve etkileşim.