Uyarlanabilir yazılım geliştirme, yazılım sistemlerinin oluşturulması için bir tasarım prensibidir. İlke, yazılım sistemlerinin hızlı bir şekilde oluşturulmasına ve evrimine odaklanmaktadır. Yazılımın bittiği bir zaman asla olmaz; Yeni sürümler arasında sadece kararlı dönemler var. Uyarlanabilir yazılım geliştirme, hızlı uygulama geliştirme yönteminden doğdu. Bu iki yöntem yapıya benzer, ancak hızlı uygulama geliştirme, projenin bitiminde bir süre izin verirken, uyarlamalı yazılım geliştirme de mümkün değildir.
Uyarlanabilir yazılım geliştirmenin odağı bilgisayar kodundadır. Yazılımı elden önce planlamak yerine, geliştiriciler kafalarında temel bir fikir edinir ve işe giderler. Parçaların değiştirilmesi veya yeni bir sisteme adapte edilmesi gerektiğinde, kodlayıcılar basitçe yapar. Programın bir düzeltme ekine ihtiyacı varsa, birileri sadece yapar.
Genel olarak, ön planlama adımlarının eksikliği, geliştiricilerin yazılımı çok hızlı bir şekilde yapmalarını sağlar. Bu, bazen gereken işlevleri yerine getirmeyen bir yazılımla sonuçlanmasına rağmen, bu genellikle bir sorun değildir. Bu süreçte gelişim döngüsü o kadar kısadır ki, ek özelliklere sahip yeni bir sürüm çok hızlı bir şekilde ortaya çıkabilir. Bu işlem veya hızlı prototipleme, hem uyarlanabilir yazılım geliştirme hem de hızlı uygulama geliştirme işleminin temel taşıdır.
İki yöntemin farklı olduğu nokta, nihai bitiş noktasındadır. Uyarlanabilir yazılım geliştirme için, gerçek bir uç nokta yoktur, yalnızca yazılımın artık gerekli olmadığı veya kodun daha yüksek nesil bir uygulamaya aktarıldığı bir zaman yoktur. Öte yandan, hızlı uygulama geliştirme, yazılımın hatasız olduğu ve alıcının gereksinimlerini karşıladığı bir süre için bir projenin sona ermesini sağlar.
Uyarlanabilir yazılım geliştirme, her biri bir program kodlaması etrafında dönen üç adımdan oluşur. İlk adım spekülasyondur. Bu aşamada kodlayıcılar, yazılımın gerçek doğasını ve kullanıcıların gereksinimlerini anlamaya çalışır. Bu aşama projeye rehberlik etmek için hata ve kullanıcı raporlarına dayanır. Hiçbir rapor mevcut değilse, geliştiriciler, alıcı tarafından belirtilen temel gereksinimleri kullanır.
İşbirliği aşaması, bireysel geliştiricilerin her birinin ne yaptığını ve bölümlerini nasıl birleştireceklerini sağlamlaştırdıkları zamandır. Bu aşama genellikle tamamen kurum içidir. Geliştiricilerin, yazılımın bu bölümünü yönetmek için herhangi bir ek bilgiye veya dış girdilere ihtiyacı yoktur.
Son adım öğrenmedir. Öğrenme aşamasında, yazılımın en yeni sürümü kullanıcılara açıklanır. Bu, projenin ilk aşamasında kullanılan hata ve kullanıcı raporlarını oluşturur ve döngü kendini tekrar eder.


