Bir yazılım konfigürasyon yöneticisinin (SCM) temel işi, bir yazılım ürününün tüm yaşam döngüsü boyunca değişimi yönetmek ve kontrol etmek için kullanılan işlemleri sağlamak ve yönetmektir. Daha spesifik olarak, SCM, olay değişiklikleri veya revizyonları yapılırken yazılımın tüm geliştirme süreci boyunca güvenilir ve tekrarlanabilir kalmasını sağlar. Çeşitli geliştirme ekipleriyle çalışan bir yazılım yapılandırma yöneticisi, tüm ekiplerin belirli geliştirme yönergeleri çerçevesinde çalışmasını sağlar. Bir yazılım ürününün bütünlüğünü sağlamak için yöneticiler, projenin erken aşamalarında başlatılacak ve tüm geliştirme süreci boyunca birçok kez tekrarlanacak bir "yazılım oluşturma" üretecektir. Bir yazılım konfigürasyon yöneticisi, çok karmaşık bir sürecin evrimini kontrol eder.
Bir programcı bir program oluşturduğunda, bir programın çalışması için gereken tüm komutları içeren bir başlangıç temel kaynak kodu yazılır. Program geliştirilirken, yazılımın işlevlerini geliştirmek veya eklemek için kaynak kodda bazı değişiklikler veya revizyonlar yapılır. Başka bir programcı da değişiklik yaparsa veya bir nedenden dolayı veriler bozulursa, ilk kaynak kodu kaydedilmemişse bile değiştirilebilir veya kaybolabilir. Bir yazılım konfigürasyon yöneticisi, bir yazılım ürününün geliştirilmesinde yapılan tüm değişikliklerin, geliştirmenin tüm aşamaları boyunca belirli standartlara göre yönetilmesini, test edilmesini, belgelenmesini ve depolanmasını sağlar. Yöneticiler genellikle bilgisayar bilimi veya ilgili alanlarda lisans derecesine ihtiyaç duyarlar ve yazılım oluşturma ve yazılım için temel standartları yönetme konusunda uzun yıllara dayanan deneyime sahiptirler.
Pazara yeni yazılım almak, yazılım üreticileri için önemli olduğundan, yazılım geliştirme sürecini daha hızlı hale getirmeye yardımcı olacak bazı süreçler ve araçlar geliştirilmiştir. Genellikle, birkaç geliştirici ekibi aynı anda bir yazılım ürününün ayrı parçaları üzerinde çalışacak. Her geliştirme ekibi, çeşitli yazılım fonksiyonları oluşturmak için orijinal kaynak kodunu oluşturur ve değiştirir. Bu ekipler farklı kaynak kodlarıyla bir araya geldiklerinde, yazılımın düzgün çalışması için her ekibin kodunu diğerleriyle entegre etmek zaman alır. Bunu başarmak için, bir yazılım konfigürasyon yöneticisinin, bu standartların geliştirmenin en erken aşamalarından itibaren karşılanmasını sağlamak için belirli geliştirme standartları oluşturması ve kolaylaştırması gerekebilir.
Bir yazılım konfigürasyon yöneticisinin, tüm bu farklı kaynak kodlarının, yazılımı tasarlandığı gibi çalışmasını sağlamak için birlikte çalışmasını sağlaması gerekir. Bunu yapmak için, yemlik, kaynak kodunu eserler veya dosyalar halinde derlemek için gereken tüm farklı adımları birleştiren bir işlem olan tam otomatik bir günlük yazılım derlemesi oluşturacaktır. Bu dosyalar, yazılımın diğer tüm bileşenleriyle düzgün şekilde tümleştirildiklerinden emin olmak için birkaç sınamadan geçebilmelidir. Bu derleme işlemi, son bileşenler için tüm bileşenler birleştirildiğinde yazılımın düzgün çalışmasını sağlar.


