Uyarlanabilir Yazılım Geliştirme - Giriş
Çevik nedir?
Edebi anlamda "çevik" kelimesi hızlı ve kolay hareket edebilen veya hızlı ve net düşünebilen ve hareket edebilen biri anlamına gelir. İş dünyasında “çevik” planlama ve iş yapma yöntemlerini tanımlamak için kullanılır; burada gerektiğinde değişiklik yapmanın işin önemli bir parçası olduğu anlaşılır. İş "çevikliği", bir şirketin her zaman pazar değişikliklerini hesaba katacak durumda olduğu anlamına gelir.
Yazılım geliştirmede, "çevik" terimi "değişikliklere yanıt verme yeteneği - Gereksinimler, Teknoloji ve İnsanlardan kaynaklanan değişiklikler" anlamına gelecek şekilde uyarlanmıştır.
Çevik Manifesto
Çevik Manifesto, 2001 yılında bir yazılım geliştiricileri ekibi tarafından yayınlandı ve geliştirme ekibinin önemini vurgulayarak, değişen gereksinimleri ve müşteri katılımını barındırdı.
Çevik Manifesto -
Bunu yaparak ve başkalarının yapmasına yardımcı olarak yazılım geliştirmenin daha iyi yollarını ortaya çıkarıyoruz. Bu çalışma sayesinde, değer kazandık -
- Süreçler ve araçlardan ziyade bireyler ve etkileşimler.
- Kapsamlı dokümantasyon yerine çalışan yazılım.
- Sözleşme müzakeresi yerine müşteri işbirliği.
- Bir planı takip etmek yerine değişime yanıt vermek.
Yani sağdaki öğelerde değer varken soldaki öğelere daha çok değer veriyoruz.
Çevikliğin Özellikleri
Çevikliğin özellikleri aşağıdadır -
Çevik Yazılım Geliştirmede Çeviklik, güçlendirilmiş ve kendi kendini örgütleyen çok disiplinli, çapraz fonksiyonlu ekiplerle tüm ekibin kültürüne odaklanır.
Paylaşılan sorumluluğu ve hesap verebilirliği teşvik eder.
Etkili iletişimi ve sürekli işbirliğini kolaylaştırır.
Tüm ekip yaklaşımı gecikmeleri ve bekleme sürelerini önler.
Sık ve sürekli teslimatlar, hızlı geri bildirim sağlayarak ekibin gereksinimlere uyum sağlamasını sağlar.
İşbirliği, uygulamada farklı bakış açılarını zamanında birleştirmeyi, hata düzeltmelerini ve değişiklikleri barındırmayı kolaylaştırır.
İlerleme, şeffaflığı vurgulayan sabit, sürdürülebilir ve öngörülebilirdir.
Çevik Metodolojiler
Çevik yöntemlerin ilk uygulamaları arasında Rational Unified Process, Scrum, Crystal Clear, Extreme Programming, Adaptive Software Development, Feature Driven Development ve Dynamic Systems Development Method (DSDM) bulunmaktadır. Agile manifestosu 2001'de yayınlandıktan sonra artık bunlara toplu olarak Agile metodolojileri deniyor.
Bu eğitimde Çevik Metodolojiyi öğreneceğiz - Adaptive Software Development.
Uyarlanabilir Yazılım Geliştirme nedir?
Uyarlanabilir Yazılım Geliştirme, belirleyici uygulamaları karmaşık sistemler ve karmaşık ortamlar bağlamında bırakarak uyarlanabilir uygulamalara doğru bir harekettir. Uyarlanabilir Yazılım Geliştirme, karmaşık sistemler oluşturmak için bir teknik olarak işbirliği ve öğrenmeye odaklanır. Hızlı Uygulama Geliştirme (RAD) ve Evrimsel Yaşam Döngülerinin en iyi uygulamalarından geliştirilmiştir. Daha sonra Uyarlanabilir Yazılım Geliştirme, Planlama'nın yerini spekülasyon alarak yönetime uyarlanabilir yaklaşımları içerecek şekilde genişletildi.
Jim Highsmith, 2000 yılında Uyarlanabilir Yazılım Geliştirme üzerine bir kitap yayınladı. Highsmith'in sözleriyle -
“Uyarlanabilir Yazılım Geliştirme, evrimsel model gibi döngüseldir, aşama adları Spekülasyon yapın, işbirliği yapın, gittikçe karmaşıklaşan sistemlerin öngörülemeyen alanını yansıtmayı öğrenin. Uyarlanabilir gelişme, evrimsel mirasının ötesine, iki temel yolla gider. Birincisi, determinizmi açıkça ortaya çıkışla değiştirir. İkincisi, Yaşam Döngüsündeki bir değişikliğin ötesinde, yönetim tarzındaki daha derin bir değişikliğe gidiyor. "