Yazılımın geliştirme süreci uzun soluklu bir iştir. Önyüz ve arkayüz kodlarının ihtiyaçlar doğrultusunda yazılıp yazılımın canlıya alınması yalnızca bir başlangıçtır. Sonrasında da yazılımda sürekli iyileştirmeler yapılması (teknik destek) ve yazılımın durumunun analiz edilmesi gerekirse bu analizler doğrultusunda geliştirmelere devam edilmesi gerekir. Günümüz koşullarında sürekli yenilenen altyapılar, hızla değişen bilgi ve kavramlar, kullanıcının alt yapısına göre sürekli güncelleme gerektirebilir. Bu durum aslında yazılım ve uygulamaların statik bir ürün olmadığını, sürekli kendini yenileyen ve gelişmekte olan canlı bir organizma olduğunu göstermektedir. Yazılım maliyeti denince akla dar anlamıyla ilk geliştirme maliyeti gelse, geniş anlamıyla yazılım maliyeti; bu canlı organizmanın doğumundan ölümüne kadar yapılması gereken tüm harcamaları ifade eder.
Yazılım Maliyeti Yalnızca Geliştirme Maliyeti Değildir
Yazılım talebinde bulunan kurum, kuruluş veya bireyler; bilgi eksikliklerinden, bütçe kısıtlarından, yanlış yönlendirmelerden dolayı çoğunlukla yazılım maliyeti hesaplarken yalnızca ilk geliştirme maliyetini düşünmektedir. Odak noktası o anki sorunun çözülmesi olunca gelecekteki sorunlar ötelenmekte ve toplamda çok daha maliyetli senaryolarla karşılaşılmaktadır.
Gelecekte o yazılıma bir özellik eklenmek istendiğinde, güvenlik ve performans iyileştirmeleri talep edildiğinde tedarikçi yüksek ücret talep edebilmekte veya sistemin iyileştirmelere uygun olmayacak şekilde tasarlandığı gün yüzüne çıkabilmektedir. Dolayısıyla yazılım maliyeti hesaplarken geliştirme sonrasındaki bakım ve teknik destek, barındırma, güncelleme, yedekleme, ek geliştirme vb maliyetlerini de düşünmek gerekir.
Yazılımda Esneklik, Temiz Kod ve Açık Kaynak Yazılım Tercihi, Yazılım Maliyetini Düşürür
Açık kaynak kod veya özgür yazılım, yazılımın mülkiyetinin tedarikçiye değil size ait olması anlamına gelir. Kapalı kaynak kod yazılım, tedarikçi bağımlılığı (vendor lock) anlamına gelir ki bu durum size çok fazla seçenek bırakmaz. Ya tedarikçinin geliştirme sonrasındaki destek ve ek geliştirme için talep ettiği yüksek ücretlere teslim olursunuz, yada yazılımı yeniden geliştirilmeye çalışırsınız. Geliştirme sürecinde öngörülemeyen bu durum tüm sürecin çok fazla maliyetli olması anlamına gelir. Çözüm ise mülkiyetinin size ait olacağı, dünyada binlerce, milyonlarca geliştirici tarafından kullanılan/geliştirilen açık kaynak / özgür yazılım sistemlerdir. Tedarikçinizden memnun kalmadığınız anda dışarıdaki tedarikçilerden kolaylıkla destek alabilirsiniz.
Esneklik ve temiz kod konusu da fazla düşünülmeyen ama yazılımın geleceği için hayati bir konudur. Salt anı kurtarmak açısından yapılan yüzeysel talepler ve proje için belirlenen düşük bütçeler, yazılımcının zorunlu olarak bazı sorunları halının altına süpürmesine -sizden gizlemesine-, yazılımın altyapısını esnek ve dinamik olmayacak şekilde tasarlamasına ve geliştirmesine sebep olur. Esnek olmayan ve temiz kod prensibi ile geliştirilmeyen yazılımların ilk geliştirme sonrası teknik destek maliyetleri çok yüksek olabilir.
Yazılım Maliyeti Hesaplaması
Maliyet; ister bir işletme kurun, ister bir inşaat yapın, isterseniz bir yazılım geliştirin, tüm projeler ve çalışmalar için önemli bir unsurdur. Yazılım maliyetini hesaplayabilmek için (burada ilk geliştirme maliyetini kastediyoruz), geliştirilme sürecindeki emeği ve geliştirmede etkili olan unsurları, ihtiyaçları göz önünde bulundurmak gereklidir.
Projeyi hayata geçirebilmek için gerekli olan;
- kaynaklar,
- proje süresi (zaman),
- görev alacak ekip (personel sayısı) / iş gücü,
- ekipmanlar,
- projenin türü (temel-özel),
- projenin büyüklüğü,
- pazarlama stratejileri,
- yazılım gereksinimleri ve
- sunulacak hizmetler
gibi etkenler işin maliyetini belirleyici unsurlardır. Bunlara ek olarak yazılımın varsa lisans bedeli, ofis giderleri, işin alınması için yapılan satış e - pazarlama faaliyetleri donanım amortisman maliyetleri, firmanın kar oranı proje maliyetlerinde hesaba katılır.
Yazılım maliyet hesabı için de birçok yöntem vardır. En sağlıklısı projenin gereksinimleri en iyi şekilde tanımlandıktan sonra bu gereksinimlere dönük iş kalemlerinin tespit edilmesi ve her iş kaleminin geliştirme süresinin tahmin edilmesidir. Bu tahmin genelde aynı iş kaleminin önceki projelerde ortalama ne kadar zaman aldığı verisi üzerinden yapılır. Tüm iş kalemlerinin tahmini süresinden projenin kaç insan saat / insan ay tutacağı belirlenir.
Saat veya süre hesabında temel olarak alınan emek zamanının, hangi seviye geliştiricinin emek zamanı olduğu da önemlidir. Örneğin junior seviye bir geliştirici bir işi 5 saatte yaparken, orta seviye bir geliştirici 3 saatte, senior seviye bir geliştirici 1 saatte yapabilir. Diğer taraftan geliştirici maaşları deneyim ve seviye arttıkça artar (2020 kariyer.net verilerine göre yazılım uzmanı ortalama maaşları 5880 TL, kıdemli yazılım uzmanı maaşları da ortalama 9850 TL'dir). Yazılımın emek maliyeti hesaplandıktan sonra diğer giderler eklenerek yazılım maliyeti çıkarılır. Yazılım teklifi, maliyete kar eklenerek oluşturulur.
Sonuç olarak bir kurumun satın alacağı yazılımın maliyet hesabını doğru referanslarla yapılması çok önemlidir. Bunun için kendi bünyesindeki uzmanlarla detaylı bir analiz yaptırması veya yazılım danışmanlık hizmeti alması gerekir. Aksi halde çoğu kez olduğu gibi
- ya düşük bütçeler belirleyip merdivenaltı firmalarla profesyonel olmayan hizmet alımları yapar ve bunun sonucunda istediği yazılımı elde edemez
- veya bir yazılıma ederinden fazlaücret biçerek veya yazılımda gereğinden fazla fonksiyon talep ederek parasını çöpe atar.
Yazılım maliyeti hesaplaması zor bir iştir ve deneyim gerektirir. Binbiriz olarak deneyimli ekibimizle, projenin maliyet hesabının yapılması ve gerekli teknik şartnamenin oluşturulması için nitelikli yazılım danışmanlığı hizmeti veriyoruz. Bu konudaki ihtiyaçlarınız için uzman ekibimizle iletişime geçebilirsiniz.
Dijitalleşme İhtiyaçlarınız için
Projelerinizin doğru çözümlerle başarıya ulaşması için bizimle iletişime geçin!