Sertaç Yıldırım saha notları

Ana sayfa → Teknik

Yap mı, Al mı: Maliyet Değil, Sahiplik

Geçen Kasım, 40 dakikalık bir toplantının son cümlesi: “Ayda 1.800 $ vermeyelim, mutabakatı biz yazarız. İki sprint.” Cümle benimdi. On bir ay sonra hesabı yeniden yaptım: iki sprint yedi hafta oldu, sonra her ay bir mühendisin üçte biri ona gitti.

Özet
  • Lisans fiyatı faturanın ilk satırı. Asıl maliyet, üç yıl boyunca o sistemle kimin uğraşacağı.
  • Kendin yazdığında en büyük kalem bakım. Bizde ilk geliştirmenin üç katı çıktı; ilk tahminde sıfırdı.
  • Para hesabı genelde berabere biter. Üç yılda iki taraf arasında ~15 bin $ fark vardı; tahminlerimizin hata payı bundan büyüktü.
  • Kararı beş soru verir. Çekirdek mi, sahibi kim, değişiklik nereden geliyor, çıkış ne kadar sürer, entegrasyon ne kadar geniş.
  • Alıyorsan çıkışı imzadan önce yaz. Veri dışa aktarma, fiyat artış sınırı, çıkış süresi — imzadan sonra pazarlık yok.
  • Sahibini isimle yazamıyorsan yapma. “Ekip bakar” bir isim değil.

Sahadan: iki sprintlik mutabakat

Mutabakat, bir aracı kurumda her sabah yapılan sıkıcı ama hayati iş. Bizim kayıtlarımızdaki müşteri nakitleri ve pozisyonlar, bankaların ve saklama kuruluşunun gönderdiği ekstrelerle satır satır karşılaştırılıyor. Tutmayan her satır, operasyon ekibinin masasına düşüyor.

Bu işi yapan bir SaaS ürünü vardı, teklif ayda 1.800 $. Üç yılda 64.800 $. Toplantıda benim hesabım şuydu: iki mühendis, iki sprint, dört hafta. Mühendis başı aylık maliyeti 6.000 $ alırsak 12.000 $. “Beşte bir fiyatına, üstelik bizim olur.” Kimse itiraz etmedi.

İlk sürüm dört hafta değil, yedi hafta sürdü. Bu kısmı herkes bilir, tahminler hep kayar. Asıl sürpriz sonra geldi. Ocak’tan bu yana dokuz ayda:

  • Üç banka ekstre formatını toplam 7 kez değiştirdi. Her birinde sabah raporu kırıldı.
  • Yeni bir banka eklendi; entegrasyonu 2 hafta sürdü.
  • İki sabah rapor hiç çıkmadı. Operasyon ekibi mutabakatı elle yaptı, ikisi de 3 saatten uzun sürdü.
  • Bütün bu işlerin her biri aynı kişiye gitti: sistemi yazan, emir yönetimi ekibindeki en kıdemli mühendisimiz Burak.

Burak’ın takvimine baktık. Dokuz ayın ortalaması: haftasının yaklaşık üçte biri mutabakata gidiyordu. Emir yönetimi ekibinin yol haritasındaki iki iş bu yüzden bir çeyrek kaymıştı ve kimse sebebini bu tabloya bağlamamıştı.

Hatam şuydu: yap mı al mı sorusunu bir fiyat karşılaştırması olarak sordum. Oysa soru “hangisi ucuz” değil, “üç yıl boyunca bu şeyin sahibi kim olacak”tı. Ben o soruya “biz” demiştim. “Biz” bir isim değil.

Lisans fiyatı faturanın ilk satırıdır. Son satırı, üç yıl sonra o sisteme kimin baktığıdır.

Hesabı doğru yapmak: üç yıl, iki taraf

Hesabı yeniden yaptığımda iki kuralım vardı: süre üç yıl olacak (bir yıllık hesap, bakımı görmez), ve iki taraf aynı kalemlerle hesaplanacak. Satın alınan sistem de bakım ister; sadece bakımın şekli farklıdır.

Uc yillik toplam sahip olma maliyeti (mutabakat)
# varsayim: muhendis basi tam maliyet 6.000 $/ay, sure 36 ay

ILK TAHMIN (Kasim)
  yap : 2 kisi x 1 ay                          =  12.000 $
        bakim                                  =       0 $   <-- hata burada
  al  : lisans 1.800 $ x 36                    =  64.800 $
  sonuc: "beste bir fiyatina"

GERCEK (Ekim, 9 aylik olcumle)
  yap : ilk surum 2 kisi x 7 hafta (3,5 kisi-ay) =  21.000 $
        bakim 0,3 kisi x 36 ay                   =  64.800 $
        toplam                                   =  85.800 $

  al  : lisans 1.800 $ x 36                      =  64.800 $
        entegrasyon 2 kisi x 3 hafta (1,5 kisi-ay)=   9.000 $
        vendor takibi 0,1 kisi x 36 ay           =  21.600 $
        cikis rezervi (1 kisi-ay)                =   6.000 $
        toplam                                   = 101.400 $

  fark: ~15.600 $ / 3 yil  (yap lehine)
  ilk tahminin hatasi: 12.000 -> 85.800 = ~7 kat

Rakamlara bakınca iki şey görünüyor. Birincisi, kendin yazdığında en büyük kalem ilk geliştirme değil, bakım: 21.000 $’a karşı 64.800 $. İlk tahminde bu satır yoktu, o yüzden yedi kat yanıldık.

İkincisi daha önemli: doğru hesapladığında bile iki taraf arasındaki fark üç yılda ~15 bin $. Bizim tahminlerimizin hata payı bundan büyük. Yani para bu kararı vermiyor. Para hesabı sadece şunu söylüyor: iki seçenek aynı ağırlıkta, karar başka bir yerden gelecek.

Satın alma tarafındaki “vendor takibi” satırını atlama. Satın aldığın sistemin sürüm notlarını okuyan, API değişikliğine uyum sağlayan, olayda destek kaydı açan birisi olacak. Bu satır sıfır değil; bizde 0,1 kişi.

Kararı veren beş soru

Para berabere bitince masada kalan sorular bunlar. Toplantıyı bu tabloyla açıyoruz artık, fiyatla değil:

Soru“Yap”a iten cevap“Al”a iten cevapMutabakatta
Çekirdek iş mi? Bizi rakiplerden ayırıyor mu?Evet, müşteri farkı hissediyorHayır, herkes aynısını yapıyorHayır. Müşteri mutabakatı görmüyor
Üç yıl boyunca sahibi kim, adıyla?Belli bir ekip, bütçesiyleİsim yazılamıyorTek kişi, başka ekipten
Değişiklik nereden geliyor?Bizden: kendi ürün kararlarımızDışarıdan: banka, regülatör, formatDışarıdan: 9 ayda 7 format değişikliği
Vazgeçersek çıkış ne kadar sürer?Önemsiz, zaten bizdeVeri standart biçimde dışarı alınabiliyorVendor CSV ve API ile tam dışa aktarım veriyor
Entegrasyon yüzeyi ne kadar geniş?Sistemin her yerine dokunuyorTek giriş, tek çıkışDar: ekstre girer, fark listesi çıkar

Mutabakat beş sorunun beşinde “al” tarafına düşüyordu. En güçlü sinyal üçüncü satırdı: değişiklik dışarıdan geliyorsa, onu karşılayan işi yüzlerce müşteriye bölen biri zaten var. Biz her banka format değişikliğini tek başımıza ödüyorduk; vendor aynı değişikliği bir kez yapıp bütün müşterilerine dağıtıyor.

Tersi de doğru. Emir yönlendirme kurallarımız, komisyon tarifelerimiz, müşteriye gösterdiğimiz risk uyarıları — bunlar çekirdek, değişiklik bizden geliyor ve sahibi belli. Bunları satın almak, rakibinle aynı ürünü satmayı kabul etmek demek.

Değişiklik senden geliyorsa yap. Dışarıdan geliyorsa, o değişikliği senin yerine yüz müşteriye bölen birini bul.

Nasıl bozuluyor: yaparken

Kendin yazmanın klasik bozulması bizim yaşadığımız: sistem bitmiyor, sahipsiz kalıyor. Kimse ona “ürün” demiyor, dolayısıyla yol haritası yok, bütçesi yok, nöbeti yok. Ama her sabah çalışması gerekiyor. O boşluğu da sistemi en iyi bilen kişi dolduruyor — kendi ekibinin işinden çalarak.

İkinci bozulma, “bizim olur” cümlesinin gizli varsayımı: istediğimiz zaman istediğimizi ekleriz. Doğru, ekleyebiliriz. Ama dokuz ayda mutabakata tek bir yeni özellik eklemedik. Bütün zaman dışarıdan gelen değişikliğe yetişmeye gitti. Esneklik, kullanmak için zamanın varsa değerli.

Üçüncü bozulma sessiz olanı: nöbet. Mutabakat sabah 06:30’da çalışıyor ve rapor 08:00’e kadar operasyonun masasında olmalı. Rapor çıkmadığı iki sabah da ilk telefon Burak’a gitti, çünkü başka kimse sistemi tanımıyordu. Bir kez izindeydi; operasyon ekibi onu tatil yerinden aradı. Hiçbir nöbet listesinde adı yoktu, ama fiilen sistemin tek nöbetçisiydi. Kendin yazdığın her sistem, bir gün birinin telefonunu çaldırır. O telefonun kimde olduğunu yazmadıysan, cevabı en iyi bilen kişi verir — her seferinde.

Nasıl bozuluyor: alırken

Satın almanın da kendi bozulması var ve bunu da yaşadık. İki yıl önce müşteri bildirimleri (e-posta ve SMS şablonları) için bir platform aldık. Fiyatı iyiydi, entegrasyonu bir haftaydı. Sözleşmeyi okuyan tek kişi satın almaydı; mühendislik tarafında kimse “buradan nasıl çıkarız?” diye sormadı.

İkinci yılın yenilemesinde fiyat %40 arttı. Çıkmayı düşündük ve o zaman gördük: 140 şablonumuz yalnızca vendorun panelinde duruyordu, dışa aktarma API’si yoktu. Çıkış tahmini 6 hafta çıktı. Zammı ödedik. Pazarlık gücümüz imzadan önce vardı, sonra yoktu.

Alırken imzadan önce
  • Veriyi standart biçimde dışa aktarmayı dene, dokümana güvenme
  • Yenilemede fiyat artışına yazılı üst sınır
  • Çıkıştan sonra veriye ne kadar süre erişim var?
  • Müşteri verisi nerede duruyor, yurt dışına çıkıyor mu?
  • Vendor çökerse biz ne yapıyoruz — elle yedek yol var mı?
Yaparken kendine yalan söyleme
  • Bakımı sıfır saymak
  • “Ekip bakar” demek, isim yazmamak
  • Sahibini başka bir ekibin kıdemlisinden “ödünç” almak
  • “Esnek olur”u, esnekliği kullanacak zaman olmadan hesaba katmak
  • Tek yıllık hesap yapmak

Batık maliyet: yazdığını atmak

Tabloyu çıkarınca karar netti: mutabakatı satın alıyoruz. Toplantıda en çok zorlanılan nokta rakam değil, duygu oldu. “Yedi hafta emek verdik, çalışıyor, atacak mıyız?”

Burada ayrımı net yapmak gerekiyor. Harcanan 21.000 $ geri gelmeyecek; hangi yolu seçersek seçelim harcandı. Karar ileriye dönük üç yılın kararı. İleriye baktığında kendi sistemimizi tutmak parayla hâlâ ucuz: bakım 64.800 $, satın almak 101.400 $. Yani satın alarak üç yılda ~36 bin $ fazla ödüyoruz. Bunu bilerek seçtik, çünkü kendi sistemimizin bedelini Burak’ın zamanıyla, yani emir yönetimi ekibinin yol haritasıyla ödüyoruz. O ekibin işi çekirdek; mutabakat değil. Çekirdek işin en kıdemli mühendisini çekirdek olmayan bir işe bağlamak, tabloda satır olarak görünmeyen en pahalı kalemdi.

Geçiş Ocak’ta. Bu sefer sözleşmede dışa aktarma formatı, üç yıllık fiyat üst sınırı ve çıkıştan sonra 90 gün veri erişimi yazılı. Dışa aktarmayı imzadan önce kendi verimizle denedik.

Ne izlemeli?

Karar bir kez verilip unutulmuyor. İki yönde de yanılmışsan bunu ancak ölçerek görürsün:

NeNeden
Sistem başına aylık bakım saatiKendin yazdığın her şeyin gerçek fiyatı; ilk tahmindeki “0”ı yakalar
Dışarıdan gelen zorunlu değişiklik sayısı / çeyrekYüksekse sistem çekirdek değil, dış dünyaya yetişme işi
Bakımı yapan kişi sayısıBir ise sistem değil, bir kişi var; o kişi izne çıkınca ne olacağını bil
Vendor kaynaklı olay sayısı ve tespit süresiSatın aldığın şey çöktüğünde bunu senden önce müşteri mi fark ediyor?
Son dışa aktarma testinin tarihiÇıkış yolunu yılda bir denemediysen, çıkış yolun yok demektir

Bende işe yaramayanlar

  • Puanlı karar matrisi. On iki kriter, ağırlıklar, toplam puan. Herkes istediği sonucu çıkaracak şekilde ağırlığı ayarladı. Beş düz soru, puanlı on iki kriterden daha dürüst çıktı.
  • “Önce alalım, sonra yazarız.” Geçici olarak alınan sistem geçici kalmıyor; sadece çıkış maliyeti her ay biraz daha büyüyor. Alıyorsan kalıcı alıyormuş gibi al.
  • Kararı satın almaya bırakmak. Satın alma fiyatı ve sözleşmeyi iyi okur. Entegrasyon yüzeyini, dışa aktarmanın gerçekten çalışıp çalışmadığını ve bakımı kimin yapacağını okuyamaz. O kısım mühendisliğin işi.

Kontrol listesi

Yap mı al mı toplantısından önce
  • Hesap üç yıllık mı, yoksa ilk yılın fiyatı mı?
  • “Yap” tarafında bakım satırı var mı, sıfırdan büyük mü?
  • “Al” tarafında entegrasyon ve vendor takibi satırı var mı?
  • Bu iş bizi rakiplerden ayırıyor mu, yoksa herkes aynısını mı yapıyor?
  • Üç yıl boyunca sahibinin adını yazabiliyor muyum? Hangi ekipten?
  • Değişiklik bizden mi gelecek, dışarıdan mı?
  • Veriyi dışa aktarmayı kendi verimizle denedim mi?
  • Sözleşmede fiyat artış sınırı ve çıkış süresi yazılı mı?
  • Batık maliyeti ileriye dönük hesaptan çıkardım mı?

Sonuç

Geçen Kasım “beşte bir fiyatına” dediğimde yanlış olan rakam değildi, soruydu. Doğru soruyu sorsaydım cevap aynı toplantıda çıkardı: çekirdek değil, değişiklik dışarıdan geliyor ve sahibinin adını yazamıyoruz.

Yap mı al mı, bir satın alma kararı gibi görünüyor ama aslında bir sahiplik kararı. Yaparsan sahibi sensin: bakımıyla, nöbetiyle, üç yıl sonraki format değişikliğiyle. Alırsan sahibi vendor, ama çıkış kapısının anahtarı senin cebinde olmalı.

Test şu: bu sistemin üç yıl sonraki sahibinin adını şimdi yazabilir misin? Yazamıyorsan ne yaptığını değil, kimi yakacağını seçiyorsun.