Ana içeriğe atla

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

Bu blogdaki popüler yayınlar

CSS üstte sabit duran menü yapımı

Sitenin en üstünde sabir şekilde duran menüler ile birçok site ve blog’da karşılaşıyoruz. Benzer bir menüyü sizde sitenize eklemek istiyorsanız basitçe özel hazırlanan bu örneği de kullanabilirsiniz. HTML Kodu: < html > < head >      < meta charset = "utf-8" >      < title >Yusuf Akdin</ title >      < link rel = "stylesheet" type = "text/css" href = "style.css" > </ head > < body >      < div class = "ust" >          Üst taraftaki sabit menü      </ div >      < div class = "orta" >          Site İçeriği      </ div > </ body > </ html > CSS Kodu: html,body{      margin :  0 ;      padding :...

Apple Bilgisayarlarının Hızının Sırları: Donanım, Yazılım ve Mühendislik İnovasyonunun Gücü

Apple bilgisayarlarının hızını ve performansını anlamak için, hem donanım hem de yazılım düzeyinde incelemeler yapmak gerekir. Apple, bilgisayarlarının hızını artırmak için birkaç temel faktörü bir araya getiriyor. Apple bilgisayarlarının hızının arkasında birçok mühendislik çözümü bulunuyor. Donanım ve yazılım arasındaki mükemmel entegrasyon, Apple Silicon işlemcilerin verimli ARM mimarisi, yüksek performanslı bellek ve özel yazılımlar sayesinde Apple bilgisayarları, yüksek işlem gücü, düşük enerji tüketimi ve hızlı uygulama performansı sunuyor. Apple’ın, donanım ve yazılım alanlarındaki özelleştirmeleri, kullanıcıların en verimli deneyimi yaşamasını sağlayarak, hız ve performans konusunda diğer markalarla kıyaslandığında önemli bir avantaj elde etmelerine olanak tanıyor. 1. Donanım ve Apple Silicon İşlemciler Apple'ın hızının en önemli nedenlerinden biri, kendi işlemcilerini üretmeye başlamasıdır. 2020 yılında Apple, Intel işlemciler yerine kendi geliştirdiği Apple Silicon seris...

Katmanlı ve Çok Katmanlı Yazılım Mimarisi

Çok katmanlı yazılım mimarisi nedir? sorusundan önce katmanlı yazılım mimarisi nedir? onu inceleyelim. Katmanlı Yazılım Mimarisi Yazılım projelerinin ilk aşamada iş yükü olarak görünse de, sürdürülebilirlik açısından çok daha az maliyetli ve kullanım kolaylığı sağlayan bazı temel yapı taşları vardır. Bunlardan biri de kuşkusuz katmanlı mimari oluşturulmasıdır. Peki katmanlı mimarinin bize kazanımları nelerdir ve neye göre nasıl oluşturulur temel olarak bir inceleyelim. Katmanlı mimarinin en büyük yararı, kodlarımızı daha küçük yapılara bölerek kolay kontrol edilebilirlik ve güncellenebilirlik sağlar . Ayrıca verilerimizin güvenliğini de en yüksek seviyede korur. Örneğin bir web projesi için, tüm veritabanı işlemlerimizi, butonların arkasına yazılan bir sorgu olarak yaparsak, tasarım değişikliğinde tüm kodları tekrardan yazmamız gerekir. Ya da çıkan her hangi bir sorun anında, katmanlı mimaride sadece sorunlu kısmı inceleyecekken, monolithic adı verilen tek katmanlı yazılımda t...