Agile
Çevik Yazılım Geliştirme
- Türkçe karşılığı
- çevik
- Okunuşu
- ecıl ya da ecayl
Günlük kullanımda iki ad da yaygın.
Kısaca
Agile, çalışan yazılımı küçük ve sık parçalar halinde teslim eden ve planları düzenli geri bildirime göre ayarlayan bir yazılım geliştirme yaklaşımıdır.
Agile yazılım geliştirme nedir?
Agile (çevik), ekiplerin çalışan yazılımı erken ve sık teslim etmesi, ardından öğrendiklerine göre yönünü ayarlaması gerektiği fikrine dayanan bir yazılım geliştirme yaklaşımları ailesidir. Terim, ağır ve dokümana dayalı süreçlere daha hafif bir alternatif isteyen 17 uygulayıcının 2001'de yazdığı Çevik Yazılım Geliştirme Manifestosu'ndan gelir. Tek bir yöntem değil, bir değerler ve ilkeler bütünüdür; bu yüzden ekipler onu Scrum, Kanban ve Extreme Programming (XP) gibi framework'ler aracılığıyla uygular.
Uygulamada bir Agile ekip büyük bir hedefi kullanıcı hikâyeleri (user story) gibi küçük iş parçalarına böler ve bunlardan birkaçını, çoğunlukla bir ila dört hafta süren her kısa döngüde tamamlar. Her döngünün sonunda ekip sonucu kullanıcılara veya paydaşlara (ürüne ilgi duyan kişilere) gösterir, geri bildirim toplar ve sonra yapılacakların önceliklerini yeniden belirler. Retrospektif adı verilen düzenli değerlendirme toplantıları, ekibin yalnızca ürünü değil, kendi çalışma biçimini de geliştirmesini sağlar.
Yararlı bir benzetme, basılı harita yerine GPS ile araba kullanmaktır. Basılı harita yola çıkmadan önce tüm rotayı sabitler; GPS ise konumunuzu sürekli denetler ve bir yol kapandığında rotayı yeniden hesaplar. Agile de aynı şekilde çalışır: ekip kullanıcıları, teknolojiyi ve pazarı daha iyi öğrendikçe planın değişmesi beklenir.
Agile çoğunlukla Scrum ile karıştırılır, ama Scrum Agile değerlerini izleyen yalnızca bir framework'tür; Kanban bir diğeridir. Ayrıca sıklıkla, gereksinimlerin, tasarımın, geliştirmenin ve testin uzun ardışık aşamalarda gerçekleştiği ve çalışan yazılımın ancak sona doğru ortaya çıktığı Waterfall modeliyle karşılaştırılır. Agile, plansız ya da dokümansız olmak demek değildir; daha küçük adımlarla planlamak ve gerçekten yararlı dokümantasyon yazmak demektir.
Önemli noktalar
- Agile, tek bir kesin süreç değil, bir zihniyet ve ilkeler bütünüdür.
- Agile Manifesto bireyleri ve etkileşimleri, çalışan yazılımı, müşteriyle iş birliğini ve değişime yanıt vermeyi değerli görür.
- İş küçük artışlar halinde teslim edilir; böylece geri bildirim erken gelir.
- Scrum, Kanban ve Extreme Programming, Agile'ı uygulamaya geçirmenin popüler yollarıdır.
- Agile ekipler yine de plan yapar; yalnızca planı sık sık gözden geçirir.
Sık sorulan sorular
Agile ile Scrum arasındaki fark nedir?
Agile, yazılımı yinelemeli olarak geliştirmeye yönelik geniş bir değerler ve ilkeler bütünüdür. Scrum ise bu fikirleri tanımlı roller, sprint gibi olaylar ve product backlog gibi çıktılarla uygulayan belirli bir framework'tür.
Agile ile Waterfall arasındaki fark nedir?
Waterfall bir projeyi uzun ardışık aşamalarda yürütür; bu yüzden kullanıcılar çalışan yazılımı ancak sona doğru görür. Agile ise kısa planlama, geliştirme ve gözden geçirme döngülerini tekrarlar; böylece ekip erken geri bildirim alır ve yönünü erkenden değiştirebilir.
Agile yalnızca yazılım ekipleri için midir?
Hayır. Agile yazılımda başladı ama kısa döngüler, sık geri bildirim ve sürekli iyileştirme fikirleri bugün pazarlama, tasarım, donanım ve daha birçok alanda kullanılıyor.
Sık karşılaştırılanlar
- Agile vs WaterfallAgile çalışan yazılımı kısa döngülerle teslim eder ve planı geri bildirime göre uyarlar; Waterfall ise gereksinimden yayına sabit aşamalarla ilerler.
- Agile vs ScrumAgile, yazılımı küçük ve sık adımlarla, geri bildirimle geliştirmeyi savunan değerlerdir; Scrum ise bunu roller ve sprint'lerle uygulayan bir çerçevedir.
İlgili sayfalar
- ScrumEkipler ve Süreç, s. 21Scrum, küçük bir ekibin tanımlı roller, olaylar ve çıktılarla ürünü sprint denen sabit uzunluklu döngülerde teslim ettiği bir Agile framework'üdür.
- KanbanEkipler ve Süreç, s. 11Kanban, işi sütunlardan oluşan bir panoda görselleştiren ve iş akışının düzgün ilerlemesi için aynı anda devam eden iş sayısını sınırlayan bir Agile yöntemidir.
- SprintEkipler ve Süreç, s. 25Sprint, bir Scrum ekibinin tek hedefe doğru çalışıp kullanılabilir bir ürün artışı ürettiği, bir ay veya daha kısa, çoğunlukla iki haftalık sabit dönemdir.
- User StoryEkipler ve Süreç, s. 29User story, bir özelliğin kullanıcının bakış açısından, kimin neyi neden istediğini açıklayan kısa ve sade bir dille yazılmış tanımıdır.
- RetrospektifEkipler ve Süreç, s. 20Retrospektif, ekibin her sprint sonunda nasıl çalıştığını değerlendirip bir dahaki sefer için somut iyileştirmelerde anlaştığı toplantıdır.
- DevOpsDevOps ve Bulut, s. 13DevOps, yazılım geliştirme ile BT operasyonlarını birleştirerek yazılımın daha hızlı ve güvenilir sunulmasını sağlayan bir kültür ve pratikler bütünüdür.
- SDLCEkipler ve Süreç, s. 23Yazılım geliştirme yaşam döngüsü (SDLC), bir yazılımın geçtiği aşamalar dizisidir: planlama, tasarım, geliştirme, test, yayın ve bakım.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin