Agile Nedir?

Agile, belirsiz bir ortamda dahi başarılı olabilmek için değişime karşılık verebilme ve geliştirme yapabilme esnekliği, kapasitesi ve yeteneğidir.

Agile,

  • Değişime hızlı karşılık verebilmeyi
  • Kendi kendisine organize olabilen ve çapraz fonksiyonlu takımlar oluşturabilmeyi
  • Projelerin bir bütün olarak bitmesini beklemek yerine projeleri değer üreten ve test edilebilir parçalar halinde pazara çıkmayı
  • Teslim edilen her proje parçasından kaliteden ödün vermemeyi
  • Müşteri için değer üretmeye odaklanmayı
  • Çalışanların mutluluğunu arttırmayı
  • Sürekli gelişen ve tüm bunları bir yaklaşım ve hareket biçimi olarak benimsemiş bir kültür oluşturmayı
  • İletişimin arttırılmasını ve şeffaflığı

temel alan bir yaklaşım biçimidir. Çeviklik ancak pratikle kazanılabilen bir beceri, yaklaşım ve kültür olarak ifade edilebilir.

Agile yazılım geliştirme, Agile Manifesto’da vurgulanan değer ve prensipleri baz alarak bir dizi metot ve uygulamayı altında toplayan bir şemsiyedir.

Pazara Çıkış Süresi

Değişim ürün geliştirmenin bir gerçeğidir ve değişime hızlı karşılık verebilmek riski azaltacağı gibi pazara çıkış süresini de kısaltacaktır.

Sürekli Gelişim

Gelişim, takımın belirleyeceği iyileştirme noktaları ve çözüme kavuşturacağı problemler olmadan gerçekleşmeyecektir.

İteratif Yaklaşım

İletişimi ve işbirliğini, gözlem ve adaptasyona dayalı iterasyonlar ile güçlendirmek takımların üretkenliğini arttırır.

Çevik Manifesto

Yazılım geliştirme gurusu 17 kişi, 2001 yılında Amerika’da 2 gün süren bir toplantı yaptılar. Toplantıya katılan 17 yazılım geliştirme ustası, bu toplantıyla ortaya çıkan çevik Manifesto'dan önce geleneksel yöntemlerde yaşadıkları sorunlara kendi çözümlerini birbirlerinden bağımsız olarak bulmaya çalışıyorlardı.

2 gün süren toplantının sonucunda Çevik Manifesto'yu yayınladılar. Çevik Bildiri, 4 değerden ve 12 ilkeden oluşmaktadır.

Çevik Değerler

Süreçler ve araçlardan ziyade bireyler ve etkileşimlere

Kapsamlı dökü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

Çevik Prensipler

En önemli önceliğimiz değerli yazılımın erken ve devamlı teslimini sağlayarak müşterileri memnun etmektir.

Değişen gereksinimler yazılım sürecinin son aşamalarında bile kabul edilmelidir.
Çevik süreçler değişimi müşterinin rekabet avantajı için kullanır.

Çalışan yazılım, tercihen kısa zaman aralıkları belirlenerek
birkaç haftada ya da birkaç ayda bir düzenli olarak müşteriye sunulmalıdır.

İş süreçlerinin sahipleri ve yazılımcılar
proje boyunca her gün birlikte çalışmalıdırlar.

Projelerin temelinde motive olmuş bireyler yer almalıdır. Onlara ihtiyaçları olan ortam ve destek sağlanmalı, işi başaracakları konusunda güven duyulmalıdır.

Bir yazılım takımında bilgi alışverişinin en verimli ve etkin yöntemi yüzyüze iletişimdir.

Çalışan yazılım ilerlemenin birincil ölçüsüdür.

Çevik süreçler sürdürülebilir geliştirmeyi teşvik etmektedir.
Sponsorlar, yazılımcılar ve kullanıcılar sabit tempoyu sürekli devam ettirebilmelidir.

Teknik mükemmeliyet ve iyi tasarım konusundaki sürekli özen çevikliği artırır.

Sadelik, yapılmasına gerek olmayan işlerin mümkün olduğunca arttırılması sanatı, olmazsa olmazlardandır.

En iyi mimariler, gereksinimler ve tasarımlar kendi kendini örgütleyen takımlardan ortaya çıkar.

Takım, düzenli aralıklarla nasıl daha etkili ve verimli olabileceğinin üzerinde düşünür ve davranışlarını buna göre ayarlar ve düzenler.

Neden Agile ?

The Standish Group’un 2015 yılında 10.000’in üzerinde projenin takibi ile oluşturulan Chaos Report’una göre Agile pratikler ile ilerlenilen yazılım projeleri %9 oranında başarısızlık ile sonuçlanırken, waterfall ile yönetilen projeler ise %29 oranında başarısızlıkla sonuçlanmıştır.
Aynı raporda projelerin başarısızlıkla sonuçlanmasının başlıca nedenleri şu şekilde sıralanmıştır:
  • Belirsiz/tamamlanmamış gereksinimler
  • Değişen gereksinimler
  • Kaynak yetersizliği
  • Gerçekçi olmayan beklentiler
  • Yönetim desteğinin olmaması
  • Kullanıcının projeye dahil edilmemesi

Günümüz dünyası gereksinimleri hızlı değişmektedir, teknoloji değişir,müşteri değişir, piyasa koşulları değişir, gereksinimler değişir, finansal durum değişir, rakipler değişir… özetle her şey değişir.

Bu nedenle Agile Manifesto’da bir plana bağlı kalmaktan ziyade değişime karşılık vermenin daha önemli ve öncelikli olduğu vurgulanmıştır. Agile pratikler uygulandığında değişime hızlı karşılık verebilmenin yanı sıra, iteratif yaklaşımı nedeniyle risklerin erken görülebilmesi kaliteyi arttırır ve pazara çıkış süresini kısaltır. Sonuç olarak üretkenlik artar.