
Agile ile Yazılım Yönetimi
Herkese merhaba bu yazıda Agile yani çevik yazılım geliştirme metodolojisini incelemeye çalışacağız
Agile nedir?
Agile bir yazılım geliştirme sürecinde müşterinin istekleri ile ürünün gelişimini paralel olarak işleyen proje geliştrime metodolojisidir.
Nasıl yani?
Yazılım projelerini %50’sinden fazlası zaman,maliyet,kapsam açısından başarısız olarak görülüyor. Peki bu başarızlığa sebep olan faktörler nelerdir dersiniz, şu aşağıdaki fotoğrafa bir bakalım
Fotoğrafta normal bir projenin adımlarını net bir şekilde görmekteyiz. Peki tamam şimdi sırayla tekrar edelim bir proje aldık gereksinimleri belirledik tasarımı yaptık ve ona göre kodunu yazdık sıra test aşamasına geldi. Testi başlattık bir ne olsun istersiniz müşterinin isteklerinde bir kaç değişme oldu. Peki çözüm nedir, projeyi en baştan tasarlamak. Sizce mantıklı mı? HAYIR!
Peki ne yapacağız? Tabi ki Agile metodunu kullanacağız
Bu metodu anlatmaya başlamadan önce şunu belirtmem gerekiyor. Yapacağımız projeler eğer kurumsal bazda ise bu projeleri daha önce ki yazımda yazdığım SOLID prensiplerine uygun olarak nesne yönelimli programlama teknikleri ile yazmalıyız. Eğer her şeyi fonksiyonlara bırakırsak bizi Agile’de kurtaramaz.
Yazılımlar çeşitli vesilelerle belirili sürelerle güncellenmeye ihtiyaç duyarlar. Bu güncellemeleri yapacak iş gücü projeleri her zaman sıfırdan yazmak yerine ellerinde ki projenin üzerine koyarak ilerlerler. Yani projeyi sürekli olarak sürdürürler. Agile’ de buradan gelir.
Agile’nin tarihi 2.Dünya savaşından sonra batılıların doğululardan aldığı kaizen modeline ve toplam kalite yönetimine dayanır. Şuradan Agile manifestosu okuyabilirsiniz.
Kazien: Belirli bir zaman diliminde müşteri memnuniyetinin arttırılması ve rekabet güçlerinin etkilenmesi amacıyla süreçlere yönelik, çalışan, süreç, zaman ve teknolojide yavaş yavaş; fakat çok sayıda hızlı bir gelişme sağlamayı ve maliyetlerde bir düşmeyi ifade eden bir kavramdır.
Toplam Kalite Yönetimi:Müşteri ihtiyaçlarını karşılayabilmek için kullanılan insan, iş, ürün ve/veya hizmet kalite gereksinimlerinin, sistematik bir yaklaşımla ve tüm çalışanların katkıları ile sağlanmasıdır
Yukarıdaki 2 modeli yazılım projeleri için birleştirip ismini Agile koymuşlar.
Agile ile yönetilen projeler yukarıdaki şelale şeklinde değilde dairesel şekilde adımları vardır. Projenin her adımında adımlar tekrar edilir ancak bu adımlar projenin geneli kadar büyük olmadığı için bu olay hızlıca yapılır. Yani özyinelemeli olarak büyük işleri parçalara bölerek işler bitirilir :).

Fotoğrafta da görüleceği üzre dairesel şekil aslında projede parçalara bölünmüş küçük bir projeyi temsil etmektedir. Yani proje içinde proje yapmak diyebiliriz. Bu küçük parçaların gereksinimlerin hesaplanmasından test aşamasına kadar süreçleri yapıp ana projeye güvenli şekilde entegre edebiliriz. Bu durumda proje üzerinde herhangi bir değişiklik istendiğinde ilgili birim değişikliği yapıp projeye tekrar entegre edebilir.
Daha sonra ki yazılarda küçük projelerin ana projeye eklenme yollarından biri olan servis teknolojilerini inceleyeceğiz.



