Özel Yazılım Geliştirme Maliyetini Ne Belirler?
İşletme

Özel Yazılım Geliştirme Maliyetini Ne Belirler?

Fiyat listesi yerine fiyatın arkasındaki yapıyı anlatıyoruz: hangi kalem neden pahalıdır, teklif nasıl hesaplanır ve farklı teklifler aynı kapsamla nasıl karşılaştırılır.

Kısa cevap

Özel yazılımın maliyetini ekran sayısı değil; iş kuralları ve istisnalar, entegrasyonlar, veri taşıma, güvenlik ve erişilebilirlik hedefleri, barındırma ve yayından sonraki bakım belirler. Maliyetin büyük kısmı mühendislik emeğidir; üzerine lisans, barındırma ve bakım gibi sürekli giderler eklenir. Teklifleri toplam rakamla değil, aynı kapsamı, varsayımları ve yayın sonrası yükümlülükleri içerip içermedikleriyle karşılaştırın.

Özel yazılımın maliyetini ne belirler?

Özel yazılımın maliyetini ekran sayısı değil; yazılımın uygulayacağı iş kuralları ve istisnalar, bağlanacağı sistemler, taşınacak veri, güvenlik ve uyum hedefleri ve yayından sonraki işletim belirler. Maliyetin büyük kısmı mühendislik emeğidir: analiz, tasarım, geliştirme, test, dağıtım ve proje yönetimi için harcanan kişi-gün. Buna barındırma ve lisans gibi üçüncü taraf giderleri ile yayından sonra her yıl tekrarlanan bakım eklenir.

Bu yüzden "bir sipariş paneli ne kadar tutar?" sorusunun tek bir cevabı yoktur. Aynı görünen iki panelden biri tek onay adımıyla çalışır ve hiçbir sisteme bağlanmaz; diğeri üç onay katmanı, vekâlet kuralları, ERP entegrasyonu ve denetim kaydı ister. Ekranlar benzer olsa da ikincisinin arkasındaki iş çok daha fazladır. Bu yazıda fiyat vermiyoruz; teklifi oluşturan kalemleri, teklifin nasıl hesaplandığını ve teklifleri nasıl karşılaştıracağınızı anlatıyoruz.

Hangi kalemler maliyeti en çok etkiler?

Maliyeti en çok etkileyen kalemler, keşifte netleşmeyip sonradan ortaya çıkanlardır: istisnalar, entegrasyonlar ve veri. Aşağıdaki tablo, her etkenin maliyeti neden artırdığını ve keşifte sorulması gereken soruyu gösterir.

EtkenMaliyeti neden artırır?Keşifte sorulacak soru
İş kuralları ve istisnalarHer istisna ayrı kod, ayrı test ve ayrı hata senaryosu demektirNormal akış dışında ne olur: iade, kısmi onay, vekâlet, iptal?
Roller ve yetki katmanlarıHer rol, ekran ve veri düzeyinde ayrı yetki kontrolü ve testi gerektirirKim neyi görür, kim neyi onaylar, kim neyi değiştirebilir?
EntegrasyonlarAPI'nin olup olmaması, belgelerin kalitesi, test ortamı ve karşı ekibin erişilebilirliği takvimi belirlerBağlanacak her sistemin API'si, test ortamı ve sorumlu kişisi var mı?
Veri taşımaEski verinin temizlenmesi, eşleştirilmesi ve mutabakatı ayrı bir iştirNe kadar veri taşınacak, ne kadar temiz, kim doğrulayacak?
Güvenlik hedefiDaha yüksek doğrulama seviyesi daha fazla gereksinim ve test demektirHangi güvenlik seviyesini hedefliyoruz, sızma testi yapılacak mı?
ErişilebilirlikHedef seviye tasarımı, bileşen seçimini ve testi etkilerHangi WCAG seviyesi hedefleniyor?
RaporlamaHer rapor bir veri modeli, filtre ve doğrulama işidirHangi raporlar ilk sürümde şart, hangileri sonra gelebilir?
Yük ve kesintisizlik beklentisiEşzamanlı kullanıcı sayısı ve kesinti toleransı mimariyi ve barındırmayı değiştirirAynı anda kaç kişi çalışacak, sistem ne kadar süre kapalı kalabilir?
Barındırma ve ortamlarBulut ya da kurum içi tercih, ortam sayısı, yedekleme ve izleme işletim maliyetini belirlerSistem nerede çalışacak, kaç ortam gerekiyor?
Mobil veya çevrim dışı kullanımAyrı bir uygulama, eşitleme ve çakışma kuralları gerektirirSahada bağlantısız çalışmak gerekiyor mu?
Kurum tarafının erişilebilirliğiKarar ve test gecikmeleri ekibin bekleme süresine dönüşürKararları kim verecek, testlere kim katılacak?
Belgelendirme ve devirSistemin başka bir ekip tarafından devralınabilmesi belge ve eğitim gerektirirKaynak kod, belgeler ve kurulum adımları teslim edilecek mi?

Güvenlik ve erişilebilirlik hedefi maliyeti nasıl değiştirir?

Güvenlik ve erişilebilirlik "dahil" ya da "hariç" kalemler değil, seviyesi seçilen gereksinimlerdir; seviyeyi yazmazsanız her tedarikçi farklı bir seviyeyi fiyatlar. OWASP'ın web uygulamaları için yayımladığı Uygulama Güvenliği Doğrulama Standardı (ASVS) 5.0 üç seviye tanımlar. Birinci seviye, gereksinimlerin yaklaşık %20'sini kapsayan asgari başlangıç noktasıdır. İkinci seviyeye uyum için gereksinimlerin yaklaşık %70'inin karşılanması gerekir. Üçüncü seviye ise en yüksek güvenceyi göstermek isteyen uygulamalar içindir. Standart, uygulamaların çoğunun ikinci seviyeyi hedeflemesi gerektiğini söyler ve seviyenin uygulamanın hassasiyetine ve kullanıcı beklentisine göre seçilmesini önerir. Teklif isterken hedef seviyeyi yazmak, iki teklifin aynı güvenlik işini fiyatlayıp fiyatlamadığını görmenin en kısa yoludur.

Erişilebilirlik için de durum aynıdır. W3C'nin WCAG 2.2 önerisi A, AA ve AAA olmak üzere üç uyum seviyesi tanımlar. Hedef seviye tasarım sistemini, bileşen seçimini ve test planını etkiler; kararın yazılım yazıldıktan sonra değil, tasarımdan önce verilmesi işi azaltır. Kamuya açık bir müşteri portalı ile küçük bir iç ekip aracı farklı hedefler isteyebilir; önemli olan hedefin teklif öncesinde yazılı olmasıdır.

Yazılım teklifi nasıl oluşturulur?

Teklif; kapsamın iş kalemlerine bölünmesi, her kalem için efor tahmini, belirsizlik payı ve üçüncü taraf giderlerinin toplanmasıyla oluşur. Tedarikçiler arasındaki asıl fark, bu adımların ne kadar açık yazıldığıdır. Sağlıklı bir teklif şu katmanları görünür kılar:

  1. Kapsam ayrıştırması: Modüller, iş akışları ve entegrasyonlar ayrı satırlar hâlinde.
  2. Efor tahmini: Her satır için rol bazında (analiz, tasarım, geliştirme, test, dağıtım) kişi-gün ya da kişi-hafta.
  3. Ortak işler: Proje yönetimi, kod incelemesi, test otomasyonu, ortam kurulumu, belgelendirme ve kabul testleri. Bu kalemler teklifte görünmüyorsa ya başka satırlara dağıtılmıştır ya da hiç yapılmayacaktır.
  4. Belirsizlik payı: Netleşmemiş kalemler için açıkça yazılmış bir aralık ya da risk payı.
  5. Üçüncü taraf giderleri: Barındırma, lisanslar, ücretli servisler (harita, SMS, e-posta, ödeme) ve bunların kimin hesabından ödeneceği.
  6. Varsayımlar ve kapsam dışı: Teklifin hangi koşullar doğruysa geçerli olduğu ve neyi içermediği.

Belirsizlik payının neden kaçınılmaz olduğunu yazılım tahmini literatüründeki "belirsizlik konisi" açıklar. Construx'un aktardığına göre, projenin ilk fikir aşamasında yetkin tahminciler bile gerçekleşen sonuçtan dört kat yukarı ya da dört kat aşağı sapabilir; en yüksek ve en düşük tahmin arasındaki fark on altı kata çıkar. Koni kendiliğinden daralmaz; kapsam, gereksinimler ve arayüz tasarımı gibi belirsizliği ortadan kaldıran kararlar verildikçe daralır. Alıcı için sonuç nettir: Keşif yapılmadan verilen kesin bir rakam ya yüksek bir risk payı içerir ya da proje ilerledikçe yeniden konuşulur.

Fiyatlama modeli de riski kimin taşıdığını belirler:

ModelNe zaman uygun?Alıcının dikkat edeceği nokta
Sabit kapsam, sabit fiyatKapsam ayrıntılı ve değişme olasılığı düşükseTedarikçi belirsizliği fiyata ekler; her değişiklik ayrı bir talep ve fiyattır
Zaman ve malzemeKapsam keşifle şekillenecek, öncelikler değişebilecekseBütçe kontrolü alıcıdadır; düzenli efor raporu ve öncelik toplantısı şarttır
Aşamalı teklifÖnce keşif, sonra dar bir ilk sürüm, sonra diğer aşamalarHer aşama sonunda devam kararı alıcıdadır; kabul ölçütleri yazılı olmalıdır
Üst sınırlı zaman ve malzemeEsneklik istenirken bütçe tavanı da gerekiyorsaTavana yaklaşıldığında neyin kapsamdan çıkacağı önceden konuşulmalıdır

Karşılaştırılabilir teklif için tedarikçiye ne vermelisiniz?

Karşılaştırılabilir teklif almanın en etkili yolu, her tedarikçiye aynı kısa ihtiyaç belgesini vermektir; belge ne kadar netse tekliflerdeki belirsizlik payı o kadar küçülür. Uzun bir şartname gerekmez; çoğu proje için şu başlıklar yeterli bir başlangıçtır:

  • İş problemi ve başarı ölçütü: Yazılım neyi değiştirecek ve bunu neyle ölçeceksiniz?
  • Kullanıcılar ve roller: Kimler, kaç kişi, hangi yetkilerle kullanacak?
  • Bugünkü akış: Mevcut tablolar, formlar, ekran görüntüleri ve bilinen istisnaların listesi.
  • Entegrasyon envanteri: Bağlanacak sistemler, API durumları, test ortamları ve sorumlu kişiler.
  • Veri: Taşınacak verinin kaynağı, yaklaşık hacmi, örnek kayıtlar ve kişisel veri içerip içermediği.
  • İşlevsel olmayan hedefler: Güvenlik ve erişilebilirlik seviyesi, eşzamanlı kullanıcı sayısı ve kesinti toleransı.
  • Barındırma kısıtları: Bulut mu, kurum içi mi; verinin nerede tutulması gerektiği.
  • Takvim kısıtları: Gerçek bir son tarih varsa nedeni; örneğin bir mevzuat değişikliği ya da sezon başlangıcı.
  • Yayın sonrası beklenti: Bakımı kim yapacak, destek hangi saatlerde gerekecek?

Bütçe aralığınızı paylaşmak da işe yarar: Tedarikçi aynı problemi farklı bütçelerle nasıl çözebileceğini, neyin ilk sürüme girip neyin sonraya kalacağını önerebilir. Bu belge aynı zamanda keşif görüşmesinin girdisidir; eksik kalan başlıklar keşifte birlikte tamamlanır.

Teklifleri nasıl karşılaştırmalı?

Teklifleri toplam rakamla değil; aynı kapsamı, aynı varsayımları ve aynı yayın sonrası yükümlülükleri içerip içermedikleriyle karşılaştırın. En düşük toplam çoğu zaman en çok kalemin dışarıda bırakıldığı tekliftir. Bu bir kusur değil, farklı bir varsayımdır; ama görünür olmalıdır. Aşağıdaki çalışma sayfasını her teklif için doldurun:

KalemTeklifte ne yazmalı?Eksikse ne olur?
Kapsam ve kapsam dışıModül ve akış listesi; açıkça dışarıda bırakılanlarBelirsiz kalan her iş sonradan değişiklik talebine dönüşür
VarsayımlarEntegrasyonların hazır olup olmadığı, test ortamını kimin sağlayacağı, verinin durumuVarsayım tutmazsa takvim ve bütçe değişir
Kabul ölçütleriHer aşamanın hangi testle kabul edileceği"Bitti" tanımı tartışmaya açık kalır
TestOtomatik test, kabul testi, yük ve güvenlik testiSorunlar canlıda bulunur
Güvenlik ve erişilebilirlik hedefiASVS ve WCAG seviyesiTeklifler farklı işleri fiyatlıyor olabilir
Veri taşımaHangi verinin, kimin doğrulamasıyla taşınacağıTaşıma ayrı bir proje olarak geri döner
Barındırma ve hesaplarSunucuların ve bulut hesaplarının kimin adına açılacağıTedarikçi değişince erişim sorunu çıkar
Kaynak kod ve fikri mülkiyetKodun ve belgelerin kime ait olacağıDevir ve genişletme zorlaşır
Açık kaynak lisanslarıKullanılan bileşenler ve lisanslarıLisans yükümlülükleri sonradan ortaya çıkar
Garanti ve bakımYayından sonra hata düzeltmenin kapsamı ve bakım anlaşmasının içeriğiBakım ayrı ve beklenmedik bir kalem olur
Değişiklik yönetimiKapsam değişikliğinin nasıl fiyatlanıp onaylanacağıHer değişiklik bir pazarlığa dönüşür
Ödeme takvimiÖdemelerin aşama kabulüne bağlanmasıÖdeme ile teslim arasındaki bağ kopar

Çalışma sayfası dolduktan sonra boş kalan satırları her tedarikçiye yazılı olarak sorun ve teklifi aynı kapsamla yeniden isteyin. Çıkış, devir ve fikri mülkiyetle ilgili sorular için tedarikçi seçimi yazımızdaki maddeler, yapay zekâ dışındaki yazılım projelerine de uygulanır.

Teklifte görünmeyen maliyetler nelerdir?

Teklifte çoğu zaman görünmeyen maliyetler yayından sonra başlar: bakım, barındırma ve işletim, üçüncü taraf lisans ve servisler, bir de kurumun kendi zamanı. Bunları teklif aşamasında ayrı satırlar hâlinde istemek, ilk yılın sonunda sürprizle karşılaşmamanın yoludur.

  • Bakım ile işletimi ayırın: Yazılım bakımına ilişkin uluslararası standart ISO/IEC/IEEE 14764, bakım sürecini ve bakım türlerini tanımlar; yedekleme, kurtarma ve sistem yönetimi gibi işletim işlerini ise kapsamına almaz. Teklifte de iki ayrı soru sorun: Hataları, güvenlik ve bağımlılık güncellemelerini kim yapacak? Sunucuyu, yedeği ve izlemeyi kim işletecek?
  • Barındırma tek bir rakam değildir: Bulutta maliyet kullanıma göre oluşur. AWS'nin Well-Architected maliyet optimizasyonu ilkeleri, yalnızca hafta içi mesai saatlerinde kullanılan geliştirme ve test ortamlarını kullanılmadıkları saatlerde kapatmanın bu ortamlarda yaklaşık %75 tasarruf potansiyeli taşıdığını örnekler (haftada 168 yerine 40 saat). Ortam sayısı, çalışma saatleri, yedeklerin saklanma süresi, kayıt (log) hacmi ve dışarı veri aktarımı barındırma kaleminin asıl belirleyicileridir.
  • Lisans ve servisler: Kullanıcı başına ücretlenen bileşenler, ticari arayüz veya raporlama kütüphaneleri, harita, SMS, e-posta ve ödeme servisleri kullanım arttıkça büyür. Kurum içi kurulumda veritabanı ve işletim sistemi lisansları da eklenir.
  • Açık kaynak yükümlülükleri: Açık kaynak ücretsizdir ama koşulsuz değildir. Örneğin GNU AGPL v3 lisansının 13. bölümü, değiştirilmiş bir sürümü ağ üzerinden kullananlara kaynak kodu sunma yükümlülüğü getirir. Teklifle birlikte kullanılan bileşenlerin ve lisanslarının listesini isteyin.
  • Kurumun kendi zamanı: Ürün sorumlusunun kararları, kullanıcıların kabul testleri, veri sahiplerinin doğrulaması ve bilgi işlem ekibinin erişim işleri teklifte görünmez ama takvimi doğrudan etkiler.
  • Çıkış maliyeti: Kod, hesaplar ve belgeler sizde değilse, tedarikçi değiştirmek yeni bir projeye dönüşür.

Varsayımsal örnek: iki teklif arasındaki fark nereden geliyor?

Bu örnek varsayımsaldır ve rakam içermez. Bir dağıtım şirketi, bayilerin sipariş verdiği ve siparişlerin ERP'ye aktarıldığı bir bayi portalı için iki teklif alıyor. A teklifinin toplamı B'den belirgin biçimde düşük. Çalışma sayfası doldurulunca tablo değişiyor:

KalemTeklif ATeklif BYapılacak
ERP entegrasyonu"ERP API'si hazır" varsayımıyla tek yönlü aktarımİki yönlü aktarım, hata durumunda tekrar deneme ve mutabakat raporuA'ya ERP'nin bugünkü durumunu ve mutabakat ihtiyacını yazılı olarak iletin
Veri taşımaKapsam dışıAktif bayi ve ürün verisinin taşınmasıTaşımanın kimde kalacağını netleştirin
Güvenlik hedefiBelirtilmemişASVS 2. seviyeİki tedarikçiden de aynı seviyeyi fiyatlamasını isteyin
TestManuel kabul testiOtomatik testler ve kabul testiHangi iş kurallarının otomatik testle korunacağını sorun
BarındırmaTedarikçinin hesabında, aylık ücretleMüşterinin bulut hesabında, kurulumu tedarikçi yapıyorHesap sahipliğini ve çıkış koşullarını karşılaştırın
BakımBelirtilmemişKapsamı yazılı ayrı bir bakım anlaşmasıA'dan bakım kapsamını ve fiyatlama yöntemini isteyin

Bu tabloda A'nın düşük toplamı bir kalite göstergesi değil, kapsam farkıdır. A'nın dışarıda bıraktığı kalemlerin bir kısmını alıcı yine ödeyecektir: ayrı bir teklifle, kendi ekibinin zamanıyla ya da canlıya çıktıktan sonra ortaya çıkan sorunlarla. Doğru karşılaştırma, iki tedarikçiye de aynı kapsamı, aynı güvenlik hedefini ve aynı barındırma modelini yazılı olarak verip teklifleri yenilemektir. B yine daha pahalı kalabilir; ama artık aynı işi karşılaştırıyorsunuzdur.

Maliyeti kaliteyi düşürmeden nasıl azaltırsınız?

Maliyeti kalıcı olarak azaltmanın yolu eforu kısmak değil, belirsizliği ve gereksiz kapsamı azaltmaktır:

  • İlk sürümü daraltın: En değerli tek iş akışını uçtan uca çalıştıran bir ilk sürüm, her şeyi biraz yapan bir sürümden daha az risklidir.
  • Standart süreçte hazır bileşen kullanın: Kimlik doğrulama, ödeme veya bildirim gibi alanlarda kendi çözümünüzü yazmak ancak gerçek bir gerekçeyle anlamlıdır.
  • Entegrasyonları erken açın: Test ortamı erişimi ve karşı sistemin sorumlusu proje başlamadan belli olsun.
  • Karar vericiyi ayırın: Karar ve test gecikmeleri ekibin bekleme süresine, bekleme süresi de maliyete dönüşür.
  • Güvenlik seviyesini riske göre seçin: Her uygulama en yüksek seviyeyi gerektirmez; ama seçilen seviye yazılı olmalıdır.
  • Ortamları kullanıma göre çalıştırın: Geliştirme ve test ortamlarını mesai dışında kapatmak barındırma giderini düşürür.
  • Değişiklik payı ayırın: Kullanıcılar yazılımı gördükçe yeni ihtiyaçlar çıkar; baştan ayrılan bir pay, her değişikliğin krize dönüşmesini önler.

Mevcut bir sistemi yenilemeyi düşünüyorsanız, sıfırdan yazmak ile aşamalı yenilemek arasındaki maliyet ve risk farkını uygulama modernizasyonu karar rehberimizde ele aldık.

Hatson Tech teklifini nasıl hazırlıyor?

Sabit bir fiyat listemiz yok. İlk görüşme ve keşif ücretsizdir; keşifte iş kurallarını, kullanıcı rollerini, bağlanacak sistemleri ve veriyi çıkarıyoruz. Ardından pilotun ve sonraki her aşamanın teklifini; kapsamı, teslimatları, kabul ölçütlerini ve dayandığımız varsayımları gösteren yazılı bir belge olarak veriyoruz. Kapsam değişirse fiyat da ancak yazılı bir değişiklikle güncellenir; kullanılan açık kaynak kütüphaneler ve lisansları ayrıca belirtilir. Çalışma şeklimizin ayrıntıları özel yazılım geliştirme sayfamızda. Teklif istemeden önce kapsamı netleştirmek isterseniz, ilk görüşmede bu yazıdaki çalışma sayfası üzerinden birlikte ilerleyebiliriz.

Önemli çıkarımlar

  • Maliyeti ekran sayısı değil; istisnalar, entegrasyonlar, veri ve kalite hedefleri belirler.
  • Keşiften önce verilen kesin rakam ya yüksek bir risk payı içerir ya da sonradan yeniden konuşulur.
  • Güvenlik (ASVS) ve erişilebilirlik (WCAG) seviyesini teklif istemeden önce yazın.
  • Teklifleri toplamla değil, aynı kapsam ve varsayımlarla karşılaştırın.
  • Bakım, barındırma, lisans ve kurumun kendi zamanını ayrı satırlar hâlinde isteyin.

Sıkça sorulan sorular

Özel yazılım için neden tek bir fiyat verilemiyor?

Çünkü benzer görünen iki sistem arasındaki fark ekranlarda değil, iş kuralları, entegrasyonlar ve veridedir. Ayrıca proje başında tahminler çok belirsizdir: Construx, ilk fikir aşamasındaki tahminlerin iki yönde de dört kata kadar sapabileceğini anlatır. Bu belirsizlik keşifte verilen kararlarla azalır.

Sabit fiyat mı, zaman ve malzeme mi daha iyi?

Kapsam ayrıntılı ve değişmeyecekse sabit fiyat öngörülebilirlik sağlar, ama tedarikçi belirsizliği fiyata ekler. Kapsam keşifle şekillenecekse zaman ve malzeme ya da aşamalı teklif daha adildir; bu durumda düzenli raporlama ve yazılı kabul ölçütleri şarttır.

Yayından sonra hangi maliyetler devam eder?

Hata düzeltme, güvenlik ve bağımlılık güncellemeleri gibi bakım işleri; sunucu, yedek ve izleme gibi işletim işleri; barındırma ve kullanımla büyüyen lisans ve servis ücretleri. Bunları teklifte ayrı satırlar hâlinde isteyin.

En düşük teklifi seçmek riskli mi?

Tek başına değil, ama en düşük toplam çoğu zaman en çok kalemi dışarıda bırakan tekliftir. Teklifleri aynı kapsam, güvenlik hedefi, veri taşıma ve bakım varsayımlarıyla yeniden isteyip öyle karşılaştırın.

Açık kaynak kullanmak maliyeti düşürür mü?

Çoğu zaman lisans ücretini ortadan kaldırır, ama lisans koşulları geçerlidir. Örneğin GNU AGPL v3, değiştirilmiş bir sürümü ağ üzerinden kullananlara kaynak kodu sunma yükümlülüğü getirir; kullanılan bileşenlerin listesini isteyin.

Hatson Tech'in fiyat listesi var mı?

Hayır. İlk görüşme ve keşif ücretsizdir; keşiften sonra pilot ve sonraki her aşama için kapsamı, kabul ölçütlerini ve varsayımları gösteren yazılı bir teklif veriyoruz.

Tüm yazılar