Agile Nedir?
Agile (Çeviklik), bir organizasyonun yeni koşullara uyum sağlayabilme ve yeni iş fırsatları yaratmak için yönünü değiştirebilme yeteneğidir.
İlgili Eğitimlerimize Hemen Göz Atın
Neden Agile?
Günümüz dünyasını tanımlayan en önemli kavramlar; olağanüstü değişim hızı, karmaşıklık ve geleceğe dair belirsizlik olarak öne çıkıyor. Dolayısıyla kuruluşların başarısını belirleyen temel faktörler; değişime sürekli uyum sağlamak, karmaşıklığı yalın çözümlerle adreslemek ve belirsizliği deneysel yaklaşımla elde edilecek öğrenimlerle en aza indirgemeye çalışmak olarak özetlenebilir.
Kısaca agility, alışılagelmiş çalışma biçiminde bir paradigma kaymasıdır. Agile kelimesi Türkçe’ye “çeviklik” olarak geçmiştir. Değişen koşullara hızlı adapte olma becerisi olan agile kavramı; çoğu kaynakta metod, metodoloji, yöntem veya proje yönetimi olarak tanımlanmasına rağmen bunların aksine bir düşünme biçimidir.
Dünyanın en uzun süreli çeviklik raporu olan “State of Agile Report”un 14.’sü 2020 Mayıs’ında yayınlandı. Bugüne kadar tüm dünyadan 40 binin üzerinde profesyonelin yanıtladığı ankete göre çevikliğin kuruluşlarda yarattığı en önemli kazanımlar şöyle sıralandı¹
Değişen Öncelikleri Yönetebilme Kabiliyeti - 70% Proje Görünürlüğü - 65% İş - IT Uyumu - 65% Teslimat Hızı / Pazara Ulaştırma Süresi - 60% Takım Morali - 59% Artan Takım Üretkenliği - 58% Proje Riskini Azaltma - 51% Proje Öngörülebilirliği - 50%
Agile Manifesto Nedir?
Agile Manifesto 1990’larda yaşanan endüstri hüsranının sonucu olarak ortaya çıkmıştır. Bu dönemde iş gereksinimleri, müşterilerin istediği uygulamalar ve özellikler ile müşterilerin isteklerine cevap veren teknolojilerin teslimi arasında önemli ölçüde bir gecikme oluşmuş ve bu gecikme çok fazla projenin iptal edilmesine sebep olmuştur. Bu gecikme süresinde, iş gereksinimleri ve müşterilerin istekleri değişmiş ve nihai ürün, güncel ihtiyaçları karşılamakta yetersiz kalmıştır.
Bu dönemde, Waterfall modelinin öncülüğünü yaptığı günün yazılım geliştirme modelleri; hız talebini karşılamakta yetersiz kalmış ve yazılımların hızlı bir şekilde değiştirebilmesinin avantajlarından da yararlanamamıştır.
İçlerinde Jon Kern, Kent Beck, Ward Cunningham, Arie van Bennekum, and Alistair Cockburn’unda bulunduğu 17 kişiden oluşan bir grup, “düşünce liderleri”, önce 2000 yılında Oregon’da bir otelde daha sonra da 2001 yılında Utah’da bir kayak merkezinde buluşarak yazılım geliştirme sürecinde daha üretken ve verimli işler sunabilmek adına beyin fırtınası yaptılar. Toplantılarının sonucunda fikir birliğine vararak Agile Manifesto’yu oluşturdular.
Agile Manifesto’nun Türkçe uyarlaması şu şekildedir:
“Bizler uygulayarak ve başkalarının da uygulamalarına yardım ederek daha iyi yazılım geliştirme yollarını ortaya çıkartıyoruz
Bu çalışmaların sonucunda:
Özetle, sol taraftaki maddelerin değerini kabul etmekle birlikte, sağ taraftaki maddeleri daha değerli bulmaktayız.”²
Agile Manifesto'da Yer Alan Değerler Nelerdir?
Süreçler ve araçlardan ziyade bireyler ve etkileşimlere
Agile Manifesto’nun bu değeri müşterilerle olan iletişime daha fazla önem vermenin üzerinde duruyor. Müşterilerin sormak isteyebileceği birçok şey vardır ve müşterilerden gelen tüm soruların ve önerilerin hızlı bir şekilde ele alınmasını sağlamak ekip üyelerinin sorumluluğundadır.
Kapsamlı dokümantasyondan ziyade çalışan yazılıma
Geçmişte, projenin her aşamasının doğru bir şekilde belgelendirilmesine projenin kendisinden daha fazla odaklanılıyordu. Hatta, uygun bir dokümantasyonun nihai ürün pahasına yapıldığı da çok kez görülmüştür. Çevik değerler, proje ekibinin ilk ve en önemli görevinin müşteriler tarafından belirlenen nihai teslimatları tamamlamak olduğunu belirtir.
Sözleşme pazarlıklarından ziyade müşteri ile işbirliğine
Çevik ilkeler, müşterilerin projenin her aşamasına dahil olmalarını gerektirir. Waterfall yaklaşımı ya da geleneksel metodolojiler müşterilerin sadece projeden önce ve sonra pazarlık yapmasına imkân tanır. Bu hem zaman ve hem de kaynak israfına neden oluyordu. Müşteriler geliştirme sürecinde döngü içinde tutabilirse, takım üyeleri nihai ürünün müşterinin bütün gereksinimlerini karşılamasını sağlayabilir.
Bir plana bağlı kalmaktan ziyade değişime karşılık vermeye
Geçmişteki yönetim metodolojilerinin tersine, çevik değerler projeye başlamadan önce oluşturulan ayrıntılı planlara ve ne olursa olsun plana sadık kalmaya karşıdır. Koşullar değişebilir ve bazen müşteriler nihai ürün için projenin kapsamını değiştirebilecek yeni özellikler talep edebilir. Böyle durumlarda, proje takımları ve yöneticileri yüksek kalitede bir ürün teslim edebilmek ve %100 müşteri memnuniyetini sağlamak adına hızlı bir şekilde değişen yeni şartlara uyum sağlamalıdır.
Agile Manifesto'da Yer Alan Prensipler Nelerdir?
On iki prensip, Agile bakış açısını benimseyen metodolojiler için yol gösterici olmakla beraber değişimin hoş karşılanıp müşterinin işin odak noktası haline geldiği bir kültürü tanımlar.
Agile Manifesto'nun 12 Prensibi³
- En önemli önceliğimiz değerli yazılımın erken ve devamlı teslimini sağlayarak müşterileri memnun etmektir. Müşteriler, sürümler arasında uzun süre beklemek yerine düzenli aralıklarla çalışan yazımı aldıklarında daha mutlu olurlar.
- 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. Bir gereksinim veya özellik talebi değiştiğinde gecikmeleri önleyebilme yeteneği.
- Ç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. Takım, çalışan yazılımın düzenli olarak teslim edilmesini sağlayan yazılım Sprint’leriyle çalıştığı için Scrum bu prensibi yerine getirir.
- İş süreçlerinin sahipleri ve yazılımcılar proje boyunca her gün birlikte çalışmalıdırlar. İş sürecinin sahibi ve teknik ekip uyumlu hale geldiğinde daha iyi kararlar alınır.
- 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. Mutsuz takımlara kıyasla, motive takımların en iyi işlerini teslim etme olasılığı çok daha fazladır.
- Bir yazılım takımında bilgi alışverişinin en verimli ve etkin yöntemi yüzyüze iletişimdir. Geliştirme takımı aynı yerde olduğunda iletişim çok daha başarılı olur.
- Çalışan yazılım ilerlemenin birincil ölçüsüdür. Müşteriye işlevsel bir yazılım sunmak ilerlemeyi ölçen en temel faktördür.
- Çevik süreçler sürdürülebilir geliştirmeyi teşvik etmektedir. Sponsorlar, yazılımcılar ve kullanıcılar sabit çalışma temposunu sürekli devam ettirebilmelidir. Takımlar, çalışan yazılımı teslim edebilecekleri tekrarlanabilir ve sürdürülebilir bir çalışma temposu oluştururlar ve bunu her sürümde tekrarlarlar.
- Teknik mükemmeliyet ve iyi tasarım konusundaki sürekli özen çevikliği artırır. Doğru beceriler ve iyi tasarım; ekibin hızı korumasını, ürünü sürekli iyileştirmesini ve değişimi sürdürmesini sağlar.
- Sadelik, işin özü olmayan işlerin yapılmamasını en üst seviye tutmak elzemdir. Şimdilik işi bitirecek kadar geliştirme.
- En iyi mimariler, gereksinimler ve tasarımlar kendi kendini örgütleyen takımlardan ortaya çıkar. Karar verme gücüne sahip, sahiplik alabilen, diğer takım üyeleriyle düzenli olarak iletişim kuran, yüksek kalitede ürünler sunan fikirlerini paylaşan, yetenekli ve motive takım üyeleri.
- Takım, düzenli aralıklarla nasıl daha üretken ve verimli olabileceğini değerlendirir ve adapte olur. Kişisel gelişim, süreç iyileştirme, gelişen beceriler ve teknikler ekip üyelerinin daha verimli çalışmasına yardımcı olur.
Agile’ın amacı sürekli değişim, artan karmaşıklık ve belirsizliğe rağmen müşteri odaklı olarak kesintisiz değer üretmektir. Müşteri takımlara daima doğrudan ya da dolaylı olarak rehberlik eder. Uçtan uca değer üretebilen takımlar son kullanıcı için yarattıkları etkiyi deneyimledikçe bu yenilikçi çalışma biçimi daha da anlam kazanır ve işte mucizeler tam da bu noktada ortaya çıkmaya başlar.
Daha farklı ve eğlenceli bir bakış açısıyla konuyu incelemek için: https://acm.ist/3ryJTgZ
Ziyaretçi 22.11.2022
10 numara anlatım