Yazılım Geliştirme Metodolojisi (SDM), bir kodun oluşturulması ve farklı araçların kullanılması yoluyla bir programın yaratıldığı bir araçtır. Bu temelde, gelişimin zamanında ve makul bir bütçe dahilinde tamamlanmasını sağlamak için sürecin kendisine ve nasıl yönetildiği ile ilgilidir. Oluşturulan programın niteliğine ve kullanılan araçlara bağlı olarak, yazılım geliştirme metodolojisinin alabileceği çeşitli formlar vardır. Bununla birlikte, genel olarak, SDM, görevlerin yönetilebilir unsurlara bölünmesini ve sayısız, genişleyen yinelemelerden geçen bir süreci sağlama gereği ile yönetilir.
Genellikle yeni bir program oluşturma sürecini düzenlemek için kullanılan bir yazılım geliştirme metodolojisi içinde kullanılabilecek birçok farklı çerçeve vardır. Tek bir SDM oluşturmak için birden fazla çerçeve birlikte kullanılabilir ve daha sonra bir SDM ailesinde sayısız metodoloji birleştirilebilir. Bir yazılım geliştirme metodolojisinin kullanımı çoğu zaman bir geliştiriciler takımı için yeni yazılımın oluşturulmasında en iyi uygulamaları oluşturur ve teşvik eder. Kalkınma sırasında bakılacak bir SDM olmadan, süreç kolayca kaotik hale gelebilir ve hem finansal kaynaklar hem de zaman açısından israfa yol açabilir.
En yaygın ve basit yazılım geliştirme metodolojilerinden biri "şelale" modeli olarak adlandırılır. Bu SDM'nin kullanılabilmesinden önce, belirli bir süreç için özel hedefler belirlenmeli ve tüm gelişim döngüsü farklı unsurlara bölünmelidir. Daha sonra tek bir elemana yaklaşılabilir ve her biri "şelale" konseptini oluşturan aşağı doğru bir alayı olarak görselleştirilen bir dizi adımdan geçirilir. Bu tür yazılım geliştirme metodolojisi birçok durumda kullanılmaz, çünkü yeni yöntemler yerini almıştır, ancak bir SDM'nin nasıl yapılandırılması gerektiğinin temel bir örneği olarak hizmet vermeye devam etmektedir.
“Spiral” model, sürecin iki önemli öğesini tek bir görselleştirmede yakalamayı başardığından, popüler bir yazılım geliştirme metodolojisi haline geldi. Genel olarak, bir spiral, merkezde başlayan ve daha büyük olan ancak aynı dairesel şekilde geçen eşmerkezli halkalarda dışarı doğru hareket eden tek bir çizgidir. Bir programın her elemanı küçük başladığından ve geliştirme sırasındaki büyüklüğü arttığından, yazılım geliştirme modeli olarak kullanılır. Bu olurken, aynı zamanda farklı yinelemeler boyunca gelişim, değerlendirme ve analiz gibi sayısız aşamadan geçer. Tüm bunlar, spiral gibi, tekrarlanan adımlardan geçerken dışa doğru genişleyen tek bir birleşik işlem yaratır.


