Agile: Dönüşüme Açılan Kapı

Onur Yilmaz
Fiba Tech Lab
Published in
4 min readOct 5, 2023

“Agile” kelimesinin Türkçe karşılığı “çevik” veya “hızlı tepki veren” olarak çevrilebilir. Agile, aslen yazılım geliştirme süreçlerinin öncü olduğu bir yönetim ve çalışma yaklaşımıdır. Bu yaklaşım, esneklik, iş birliği, yalınlık, müşteri odaklılık ve sürekli iyileştirme gibi prensiplere dayanır. Yazılım geliştirme, günümüzde hızla değişen ve gelişen teknoloji dünyasında kritik bir rol oynamaktadır. İşletmelerin başarısı ve rekabet avantajı, etkili yazılım geliştirme süreçleri ve yöntemleriyle doğrudan ilişkilidir. Bu bağlamda, yazılım geliştirme metodolojileri önemli bir araçtır.

Yazılım geliştirme metodolojileri, bir projeyi planlama, uygulama, izleme ve değerlendirme sürecindeki adımları belirler. Bu adımlar, projenin başarılı bir şekilde tamamlanmasını sağlamak, süreci izlemek, riskleri yönetmek ve kaynakları etkin bir şekilde kullanmak için oldukça kritiktir.

Özellikle büyük ve karmaşık projelerde, düzenli ve yapılandırılmış bir metodoloji olmadan başarılı sonuçlar elde etmek zordur. Bu nedenle, projeleri küçük parçalara bölmek, önceliklendirmek ve bu parçaları düzenli aralıklarla teslim etmek için metodolojiler önemlidir. Agile kısa aralıklar ile teslimata dayanan zaman sınırlı yinelemeli ve arttırımlı bir yaklaşımdır. Ürünün tamamını son aşamada teslim etmek yerine projenin başından itibaren birikimli ve arttırımlı olarak geliştirir.

Aşağıda bulunan örnekte Osman Hamdi Bey’in Kaplumbağa terbiyecisi tablosunu Arttırımlı, Yinelemeli ve Arttırımlı Yinelemeli yapılsaydı nasıl bir süreç izleneceğine dair bir örnek bulabilirsiniz.

Incremental (Arttırımlı)

Iterative (Yinelemeli)

Iterative and Incremental (Arttırımlı ve Yinelemeli)

Agile metodolojiler, bu bağlamda özellikle değerlidir. Agile, esneklik, iş birliği ve müşteri memnuniyeti odaklı bir yaklaşım sunar. Değişen müşteri ihtiyaçlarına hızlı adapte olabilme, sık aralıklarla çalışabilir ve değerli sonuçları müşterilere erken sunabilme avantajları sunar. Bu sayede müşteri geri bildirimleri alınarak gerekli iyileştirmeler kolayca yapılabilir ve sonuçlar sürekli olarak optimize edilebilir.
Sonuç olarak, yazılım geliştirme ve metodolojileri, başarılı projelerin temelini oluşturur. Doğru metodoloji seçimi ve etkin bir şekilde uygulanması, projelerin başarısını ve müşteri memnuniyetini artırmak için kritik öneme sahiptir.

Agile, yazılım geliştirme süreçlerini esnek, hızlı ve müşteri odaklı bir yaklaşımla yöneten bir metodolojidir. Bu yaklaşım, yazılım projelerinin belirli döngülerde (sprint) küçük, işlevsel parçalara bölünerek geliştirilmesini vurgular. Özellikle belirli zaman aralığında çalışan yazılımın yinelemeli olarak ortaya çıkarılması bu aşamada kritiktir. Çıkan bu ürüne MVP (Minimum Viable Product)yani minimum uygulanabilir ürün adı verilir.

Aşağıda MVP’nin nasıl oluşturulması veya oluşturulmamasına dair güzel bir örnek bulabilirsiniz.

(Kaynak: https://www.educati.ch/mvp-2/)

Agile’in kökeni, 2001 yılında yazılım geliştirme süreçlerini daha etkili ve müşteri odaklı bir şekilde yönetme ihtiyacıyla bir araya gelen yazılım uzmanları tarafından oluşturulan “Agile Manifesto” ile başlar.

Agile Manifesto, 17 kişilik bir yazılım geliştirici grubunun 2001 yılında bir araya gelmesiyle oluşturulmuş ve yazılım geliştirme yöntemlerini tanımlayan ilkeleri içerir.

Agile Manifesto’da yer alan temel prensipler şunlardır:

• Bireyler ve etkileşimler belgeler ve süreçlerden daha önemlidir:
Yazılım geliştirme sürecinde insanlar arasındaki etkileşim ve iş birliği, sıkı kurallar ve belgelerden daha değerlidir.
• Çalışan yazılım, kapsamlı belgelerden daha önemlidir:
Müşteriler için işe yarar bir yazılımın üretilmesi ve sürekli olarak geliştirilmesi, detaylı belgelendirmelerden daha önceliklidir.
• Müşteri iş birliği, sözleşme müzakerelerinden daha önemlidir:
Müşteri ihtiyaçlarını ve geri bildirimleri dikkate alarak yazılımın sürekli olarak uyarlanması, sıkı sözleşmelerden daha önemlidir.
• Değişime yanıt verme, bir takip planını izlemeden daha önemlidir:
Geliştirme sürecinde değişen gereksinimlere ve koşullara hızlı ve esnek bir şekilde uyum sağlamak, sıkı planları takip etmekten daha değerlidir.

Agile, daha sonra çeşitli metodolojilere dönüşmüş ve popülerlik kazanmıştır. Bunlar arasında Scrum, Kanban, eXtreme Programming (XP) ve Lean gibi metodolojiler öne çıkmaktadır. Scrum, belirli zaman dilimlerinde işlerin tamamlanmasına odaklanırken, Kanban, iş akışını görselleştirerek süreci izler. XP ise yazılım kalitesini artırmak için prensipler ve uygulamalar sunar. Lean, israfı azaltmayı ve sürekli değer üretmeyi hedefler.

Bugün, Agile yazılım metodolojisi, çeşitli endüstrilerde ve organizasyonlarda geniş bir şekilde benimsenmiş ve uygulanmıştır. Kullanım alanlarına farklı sektörlerden örnek vermek gerekirse;

- Spotify: Organizasyonel yapısı dahil tamamen Agile olarak kurulmuş ve çalışan müzik uygulaması
- Toyota: Yalın üretim teknikleri ile ürün geliştirme süreçlerinde Agile kullanan otomobil üreticisi
- Lockheed Martin: F35 savaş uçaklarının üretimi dahil bir çok üründe Agile kullanan savunma sanayi firması
- Google, Facebook, Amazon gibi birçok teknoloji şirketi
- EA, Ubisoft ve Epic Games gibi oyun üreticileri

Agile yaklaşımları benimsemiş ve kullanmaktadırlar.

Esneklik, hızlı yanıtlama ve müşteri geri bildirimlerine dayalı bu metodoloji, yazılım projelerinin başarısında kritik bir rol oynamaktadır. Agile metodojilerin başarıya yönelik etkilerini gösteren bir dizi araştırma, rapor ve vaka çalışmaları aşağıda bulunmaktadır;

- State of Agile Report:
https://www.braintrustgroup.com/wp-content/uploads/2023/06/Braintrust-2023-State-of-Agile-Report.pdf

- Agile Project Success and Failure: A Literature Review (A.T.C. Tan et al. 2014)

--

--