Çevik Geliştirme

Çevik Geliştirme

Çevik Geliştirme Nedir?

“Çevik Geliştirme” birçok tekrarlı ve ilerleyen yazılım geliştirme methodları için birleştirici bir addır. En popüler çevik metodolojiler Aşırı Programlama (XP), Scrum, Crystal, Dinamik Sistem Geliştirme Metodu (DSDM), Lean Development, and Feature­Driven Development (FDD) gibi metodolojilerdir. Çevik yöntemlerin her biri kendi içerisinde tekil olsa da, ortak vizyon ve çekirdek değerleri paylaşırlar. Hepsi temel olarak, başarılı bir şekilde yazılım sistemlerinin iyileştirilmesi ve sunulmasını sağlayan tekrar ve sürekli geri bildirimin birlikte çalışmasından oluşur. Yine hepsi yazılım ve projeler için sürekli planlama, sürekli test, sürekli entegrasyon ve diğer tipteki sürekli ilerleme yöntemlerini içerir. Hepsi basite indirgenmiştir (klasik şelale stili ile karşılaştırıldıklarında) ve kalıtsal olarak uyarlanabilirdirler. Önemli olarak, hepsi insanları birlikte çalışmaları için geliştirme ve kararları hızlı ve etkin bir şekilde birlikte almaları için geliştirme üzerine odaklanmıştır.

Çevik Geliştirmenin Gelişimi

Çevik geliştirme tarafından geliştirilen birçok bireysel prensip ve pratiklerin geçmişi yıllar hatta on yıllar öncesine dayanır. Bahsedilen bu en iyi pratiklerin yanında, çevik yöntemlerin, takımlara, çalışan ve test edilmiş yazılımlarını hızlı planlama ve teslim etmede yol gösteren çeşitli müşteri, yönetim ve bazı durumlarda, mühendislik paketlenmiş pratikleri ve prensipleri de vardır. Her bir çevik yöntem, eski ve yeni fikirleri parça toplamından kesinlikle daha fazla olan iyileştirme yöntemlerine kombine eder. Çevik geliştirme ile alakalı bir çok pratiğin geçmişi çok eski olsa da, ortalama bir yazılım geliştirme takımı bazı prensip ve pratikleri henüz yeni yeni uygulamaktadır. Hatta, bugün hala, ortalama bir yazılım geliştirme takımı tekrarlı geliştirme yapmaz, yazılım teslimatını artan bir şekilde gerçekleştirmez ve sürekli planlama ya da otomatik test uygulamaz. Bugün bu pratikler, özellikle eski yıllara nazaran, daha iyiyi yapma adına hızlı değişen trendlere daha kolay anlaşılacak ve uyarlanacak şekilde kombine edilmiştir. Çevik yöntemler, yeni iş yapma yollarıyla birlikte, yazılım toplululuklarının içerisinde az biraz da olsa karşıtlığa sebep olmuştur. Ancak proje içerisinde ve sonrasındaki var olduklarında, yüksek kalitede yazılım sistemlerinin, geleneksel süreçlere nazaran daha kısa zamanda teslim edilmesini sağlamaktadırlar. Eğer bir yazılım geliştirme uzmanı iseniz, çevik geliştirme teori ve pratiklerlerine aşina olmayı kesinlikle kendinize borç bilmelisiniz.

Çevik Geliştirmenin Detayları

Çevik geliştirmenin prensip ve değerleri takımlara hedeflerini gerçekleştirebilmeleri için süreç artışını kırmaları ve basit tekniklere odaklanmalarına yardım edecek şekilde oluşturulmuştur. “Hedef” nedir? Yazılım geliştiricinin ve günlük geliştirme takımının amacı çalışanlara ve müşterilere mümkün olan en büyük değeri vermektir. Ancak projelerimiz ya batar ya da değer üretemez. Çevik teknikteki anahtar beş sırayı konvansiyonel yazılım geliştirme methodolojisindeki (şelale yöntemi) ardıl beş sırayı bir haftalık döngü halinde birleştirmektir. Bunu, sistem geliştirmeyi geliştirmecilere geliştirme süreci sırasında test etme ve gözden geçirme imkanı veren birbirini tekrar eden döngüler (tekrarlı) ve küçük parçalar şeklinde yapmakla sağlar. Hız ve düşük maliyet ve esneklik anahtar faydalardır. Çevik sürece dahil olanlar değişimden korkmazlar. İsteklere olan değişiklikleri iyi şeyler olarak görürler, çünkü bu değişiklikler takımın müşteriyi memnun edecek şeyler öğrendiğinin göstergesidir. Çevik takım üyeleri projenin bütün kademelerinde birlikte çalışırlar. Her bir üyesinin bütüne katkı sağlamasına izin verilir. Tek bir takım üyesi yalnız mimariden ya da müşteri isteklerinden ya da testlerden sorumlu olmaz. Takım bu sorumlulukları paylaşır ve bu sorumluluklara her bir takım üyesinin etkisi vardır. Birçok çevik süreç mevcuttur: SCRUM, Crystal, Behavior­ Driven Development (BDD), Test Driven Development (TDD), Feature ­Driven Development (FDD), Adaptive Software Development (ADP), Extreme Programming (XP) ve daha birçok … Ancak, büyük orandaki çoğunluk başarılı çevik takımlar kendi çevikliklerini bu çevik süreçlerin uyarlaması olarak oluşturmuştur. However, the vast majority of successful agile teams have drawn from all these processes to tune their own particular flavor of agility. Bu uyarlamalar, SCRUM pratiklerinin XP kullanan birden fazla takımın yönetilmesi için kullanıldığı, SCRUM ve XP kombinasyonunun bir araya gelmesi şeklinde gözükür.