Her yazılım bir ihtiyaca hizmet etmektedir. Kurumlar ihtiyaçları doğrultusunda geliştirilmiş programları alarak kullanırlar. Ancak ihtiyaçlar her kurum için aynı değildir. Bir çok etmen ihtiyaçların farklılaşmasını sağlamaktadır. Değişik iş yapış biçimleri, kurum kültürleri, çalışanların eğitim seviyeleri ve bunlara benzeyen bir çok etmen aynı sektörde faaliyet gösteren iki firmanın farklı yazılımlara ihtiyaç duymalarını sağlayacaktır. Bu ihtiyaçlar özel olarak geliştirilen yazılımlar ile rahatlıkla karşılanabilir.
Özel yazılım geliştirme süreci paket yazılımları alıp kullanmak gibi kolay olmamaktadır. Öncelikle yazılım firmaları, yazılım isteyen firmanın ihtiyaçlarını tam olarak tespit edip o ihtiyacı çözebilecek en doğru mimariyi oluşturmak durumundadırlar. Bu süreç yazılım geliştirme süreçlerinin en önemli parçasıdır. Hatalı yapılmış bir analiz geliştirilecek olan yazılımın doğru amaca hizmet edememesi anlamına gelir. O nedenle bu sürece yeterince zaman ayırmak son derece önemlidir.