Uyarlanabilir Yazılım Geliştirme - Kavramlar

Bu bölümde, Uyarlanabilir Yazılım Geliştirme'nin çeşitli kavramlarını anlayacağız.

Karmaşık Uyarlamalı Sistemler (CAS) Teorisi

Santa Fe enstitüsündeki Brian Arthur ve meslektaşları, Fizik, Biyoloji, Evrim ve Ekonomi anlayışında devrim yaratmak için Karmaşık Uyarlanabilir Sistemler (CAS) teorisini kullandılar.

Brian Arthur, yirmi yılı aşkın süredir, ana akım iktisatçıları, azalan getiri, denge ve deterministik dinamikler gibi temel varsayımların hakim olduğu görüşlerinin artık gerçekliği anlamak için yeterli olmadığına ikna etmeye çalışarak doruğa ulaştı. Yeni dünya, artan getiri, istikrarsızlık ve neden ve sonucu belirleyememe durumlarından biridir.

İki dünya davranış, stil ve kültür açısından farklılık gösterir. Onlar için -

  • Farklı Yönetim Teknikleri
  • Farklı Stratejiler
  • Farklı Anlayış

Karmaşık Yazılım Geliştirme

Yazılım Uygulamaları kapsamının patlamasıyla, yazılım geliştirme kuruluşları bile yukarıda bahsedildiği gibi benzer çelişkiler yaşamaktadır.

  • Bir Dünya, kararlılık ve öngörülebilirliğin temellerine dayanan yönetim uygulamalarından türetilen Deterministik gelişme ile temsil edilir (Arthur'un terimleriyle azalan getiri anlamına gelir)

  • İkinci Dünya, düşüşten artan geri dönüş ortamlarına doğru öngörülemeyen, doğrusal olmayan ve hızlı hareket eden endüstriler tarafından temsil edilmektedir.

Bu ikinci dünyanın sorunlarını ele almak için Jig Highsmith, Belirleyici Yazılım Geliştirmeden farklı bir Adaptif Yazılım Geliştirme çerçevesi sundu.

Uyarlanabilir Yazılım Geliştirme, karmaşık sistemleri ele almaya odaklanır -

  • Geliştirme yaşam döngüsü için Uyarlanabilir Yazılım Geliştirme.

  • Geleneksel proje yönetimi uygulamalarından farklı bir zihniyet gerektiren Uyarlanabilir Yönetim Teknikleri.

Bu eğitimde, bu iki uygulamayı da anlayabilirsiniz.

Uyarlanabilir Yazılım Geliştirme (ASD) iki perspektife dayanmaktadır -

  • Bu bölümün ilk bölümünde verildiği gibi, Karmaşık Uyarlanabilir Sistemler (CAS) teorisine dayalı kavramsal perspektif.

  • Dayalı Pratik Perspektif

    • Deterministik yazılım geliştirme metodolojilerinde yılların tecrübesi.

    • Hızlı Uygulama Geliştirme (RAD) teknikleri hakkında danışmanlık, uygulama ve yazma; ve yüksek teknoloji yazılım şirketleriyle ürün geliştirmelerini yönetmek için çalışmak.

Bu bölümde, Uyarlanabilir Yazılım Geliştirme'nin kavramsal perspektifini anlayacaksınız.

Karmaşık Uyarlamalı Sistemler (CAS) Kavramları

Karmaşık Uyarlamalı Sistemler (CAS) teorisinin birçok kavramı vardır. Uyarlanabilir Yazılım Geliştirme, bu kavramlardan ikisine dayanmaktadır -

  • Emergence
  • Complexity

Çıkış

Karmaşık yazılım ürünü geliştirme projelerinde, sonuçlar doğal olarak tahmin edilemez. Ancak bu tür ortamlardan her zaman başarılı ürünler ortaya çıkar.

Bu, Karmaşık Uyarlamalı Sistemler (CAS) teorisinde gösterildiği gibi Ortaya Çıkma ile olabilir. Basit bir örnekle, kuşların sürü davranışıyla anlaşılabilir.

Bir kuş sürüsünü gözlemlediğinizde, şunu fark edersiniz -

  • Her kuş dener

    • Diğer kuşlar da dahil olmak üzere ortamdaki diğer nesnelerle minimum mesafeyi koruyun.

    • Çevresindeki kuşlarla hızları eşleştirin.

    • Çevresindeki kuş kütlesinin algılanan merkezine doğru ilerleyin.

  • Grup için hiçbir davranış kuralı yoktur. Tek kural, bireysel kuşların davranışları ile ilgilidir.

  • Bununla birlikte, kuş sürüsü olarak ortaya çıkan bir davranış vardır. Hatalı kuşlar yetişmek için acele ettiğinde, sürü engellerin etrafından ayrılır ve diğer tarafta düzelir.

Bu, Uyarlanabilir Gelişimdeki en zor zihinsel model değişikliklerinin gerekliliğini gösterir - Bu bireysel özgürlüğü yönetme ve organize etme yollarından, yaratıcı yeni bir düzenin kendiliğinden örgütlenmeden beklenmedik bir şekilde ortaya çıktığı fikrine kadar.

Gelişmenin yanı sıra yönetim açısından da ortaya çıkış en önemli kavramdır.

Karmaşıklık

Yazılım Geliştirme bağlamında, Karmaşıklık şununla ilgilidir:

  • Geliştiriciler, müşteriler, satıcılar, rakipler ve hissedarlar gibi bir ekibin bireyleri, sayıları ve hızları.

  • Boyut ve teknolojik karmaşıklık.

Uyarlanabilir Yazılım Geliştirme Uygulamaları

Uyarlanabilir Yazılım Geliştirme, yazılım yönetimi uygulamalarına farklı bir bakış açısı sunar. Aşağıdaki bölümlerde, her ikisi de gereksinimleri toplamak için sonuçları olan iki önemli uygulamayı anlayabilirsiniz - Kalite ve RAD.

Tüm uygulamaların ayrıntılarını bu öğreticide Uyarlanabilir Yazılım Geliştirme Uygulamaları bölümünde bulabilirsiniz.

Kalite

Karmaşık bir ortamda, "İlk seferde doğru yap" şeklindeki asırlık uygulama işe yaramaz çünkü başlangıçta neyin doğru olduğunu tahmin edemezsiniz. Doğru değeri üretmek için bir hedefe sahip olmanız gerekir. Bununla birlikte, karmaşık ortamda, kapsam (özellikler, performans, kusur seviyeleri), zamanlama ve kaynaklar gibi değer bileşenlerinin kombinasyonları ve permütasyonları o kadar geniştir ki hiçbir zaman optimum bir değer olamaz. Bu nedenle odak noktası, rekabetçi pazarda en iyi değeri sunmaya geçmektir.

RAD Uygulamaları

RAD Uygulamaları genellikle aşağıdakilerin bir kombinasyonunu içerir -

  • Evrimsel Yaşam Döngüsü
  • Müşteri Odak Grupları, JAD Oturumları, Teknik İncelemeler
  • Zaman Kutulu Proje Yönetimi
  • Sürekli Yazılım Mühendisliği
  • Savaş odaları olan özel takımlar

RAD projelerinin doğasında uyarlanabilir, ortaya çıkan bir tadı vardır. Birçok BT kuruluşu RAD'ye karşıdır. Bununla birlikte, Microsoft ve diğerleri, RAD ile karşılaştırılabilir teknikler kullanarak inanılmaz derecede büyük ve karmaşık yazılımlar ürettiler çünkü bu, temel dünya görüşleri hakkında soruları gündeme getiriyor.

RAD uygulamaları ve Microsoft süreci, Uyarlanabilir Geliştirme uygulamasının örnekleridir. Onlara bir etiket vermek (yani, Uyarlanabilir Gelişim) ve artan bir bilimsel bilgi birikimi olduğunu fark etmek (yani, CAS teorisi) neden işe yaradıklarını açıklar. Bu, bu uygulamaların daha kapsamlı kullanımı için bir temel oluşturmalıdır.