Agile Metodolojisi

Agile Metodoloji (Çevik Metodoloji): yazılım sistemlerini etkili ve verimli bir şekilde modellemeye ve dokümantasyonunu yapmaya yönelik pratiğe dayalı yöntemlere denir.  Aşırı kuralcı klasik yazılım süreç modellerine tepki olarak ortaya çıkan Agile Manifestosu öncesinde yazılımlar daha yüksek maliyetli ve daha yavaş geliştirilmekteydi. Yazılım geliştirme sürecini hızlandırmak, daha etkin kullanmak ve gerektiğinde dokümante etmek amacıyla ortaya çıkmıştır.

Agile metodolojisinde; Bireyler ve arasındaki etkileşim, kullanılan süreç ve araçlardan daha önemlidir. Portatip ürün, anlaşılır dökümantasyondan daha önemlidir. Müşteri ile ilişki, müşteri sözleşmesinde yazanlardan daha önemlidir. Değişime adapte olmak, yapılan plana ne olursa olsun bağlı olmaktan daha önemlidir.



AGILE(ÇEVİK) Prensipleri

- İlk önceliğimiz kaliteli yazılımı müşteriye teslim edebilmektir. Projenin ilk aşamalarından itibaren sürekli teslimlerle yapılır ve müşterinin yazılımı çok önceden kullanmaya başlayarak değer sağlamasına olanak sağlanır. Günümüzde çevik süreçlere artan ilginin başlıca nedenlerden biri , yapılan yatırımların hızlı geri dönüşünün olmasıdır.

- Değişiklikler projenin iler ki aşamalarında dahi olsa kabul edilir. Amaç müşterinin ihtiyaçlarını karşılayan, onlara yarar sağlayacak, gerçek değer katacak yazılım üretmektir ve ihtiyaçlarda meydana gelen değişiklikler projenin sonraki aşamalarında dahi yazılıma aksettirilmelidir. Test, güdümlü tasarım, kapsamlı otomatik testler, sürekli entegrasyon, basit tasarım gibi pratikler sayesinde değişikliklerin getireceği maliyetler minimuma indirilir ve süreç değişikliklere çabuk adapte hale getirilir.

- Çok kısa aralıklarla yazılım teslimleri yapılır. Bu aralıklar tipik olarak 2-4 hafta arasıdır. Bu sayede sürekli geri beslenim (feedback) sağlanır ve müşterinin tam istediği şekilde yazılım evrimleşerek gelişir.

- Alan uzmanları , yazılımcılar, testçiler günlük olarak birlikte çalışırlar. Farklı roller arasında duvarlar örülmez. Rol bazlı ekipler yerine yazılım özelliklerine(features) göre ekipler oluşturulur.  Analist, yazılım geliştirici vb. aynı ekibin içinde çalışır ve sürekli iletişim halindedir.

- Projeler, "motive birey" odaklı kurulur ve ekip üyelerine kendileri ile ilgili alacakları kararlar konusunda güvenilir. Ekip kendi kendine organize olacak yetkiye sahiptir.

- Yüz yüze iletişim diğer her türlü iletişim yönteminden önde tutulur.

- Projedeki gelişmenin tek ölçüsü o ana kadar geliştirilmiş özellikler ve çalısan yazılımdır.

- Çevik süreçler devam ettirilebilir bir hızı sağlamaya çalışır. Planlamaların sağlıklı olması için ekibin iş teslim hızının üzerinde çok oynanaması gerekir. Örneğin fazla mesailer gibi yöntemlerle ekibin hızını geçiçi olarak arttırmak tercih edilen yöntemlerden değildir.

- Teknik açıdan mükemmel, basit fakat sofistike çözümler oluşturulmasına özen gösterilir.

- Sadelik anlayışı akla gelen baştan savma çözümü uygulamak yerine, anlaşılması ve sonradan değiştirilmesi kolay, maliyeti en düşük ve o an ki gereksinimleri karşılayan çözümü kullanmaktır.

- En etkin çalışan ekipler kendilerini organize edebilen, bu konuda yetkin ekiplerdir. Ekip kendi çalışma yöntemlerini sorgulamakta ve gerekli değişiklikleri yapmakta özgürdür.

- Ekip kısa sürelerle toplanır, çalışma yöntemlerini gözden geçirir ve daha etkili çalışmak için geriye dönük (retrospective) toplantılar yaparak durumları gözden geçirir.

Kaynak: http://www.yazilimheryerde.com , http://ahmetsonmez.net

Yorumlar

Popüler Yayınlar