Rehber · Sözleşme

Kaynak Kod Teslimi: Sözleşmeye Yazılması Gereken 6 Madde

Bir yazılım projesinde en pahalı hata, projenin kötü yazılması değil; sizden başka kimsenin dokunamayacağı şekilde teslim edilmesidir. Bu yazı, sözleşmeye eklenmesi gereken altı maddeyi ve her birinin neden gerekli olduğunu açıklıyor.

1. Kaynak kodun mülkiyeti

Sözleşmede açıkça yazmalı: ödeme tamamlandığında, projeye özel yazılan kodun ve veritabanı şemasının tüm hakları müşteriye geçer. 'Kullanım hakkı' ile 'mülkiyet' aynı şey değildir. Kullanım hakkı verilen bir yazılımı başka bir ekibe devredemezsiniz.

2. Erişimlerin devri

Kod tek başına yetmez. Alan adı, hosting/sunucu, veritabanı, e-posta servisi, Git deposu, CI/CD, ödeme sağlayıcısı, SMS/e-posta servisi, analitik, arama konsolu. Her biri ayrı bir hesaptır ve her birinin yöneticisi sizde olmalıdır. Proje tesliminde bu hesapların listesi ve sahiplik durumu yazılı olarak devredilmelidir.

3. Üçüncü taraf lisansların listesi

Projede kullanılan açık kaynak kütüphaneler ve ticari bileşenler listelenmeli. Bazı lisanslar ticari kullanımda ek yükümlülük doğurur; bazıları yıllık ücretlidir. Teslimden sonra 'bu bileşenin lisansı bitmiş' sürpriziyle karşılaşmak istemezsiniz.

4. Dokümantasyon ve kurulum

Kurulum adımları, ortam değişkenleri, yedekleme prosedürü, dağıtım (deploy) süreci. Bu dört başlık yoksa, yeni bir geliştirici projeyi ayağa kaldırmak için günler harcar — ya da hiç kaldıramaz.

5. Veri sahipliği ve çıkış hakkı

Veritabanındaki verinin sahibi müşteridir. Sözleşmede 'talep üzerine verinin makine okunabilir formatta (SQL dökümü/CSV) teslim edileceği' yazmalı. Ayrıca tedarikçi değiştiğinde eski tedarikçinin veriye erişiminin kapatılacağı belirtilmeli.

6. Devralma (handover) maddesi

En çok atlanan ve en kritik madde. Şunu tanımlamalı: taraflardan biri ayrılmak istediğinde, 30 gün içinde kod, dokümantasyon ve erişimler devredilir; devir için makul bir destek süresi (ör. 20 saat) sağlanır ve bunun bedeli önceden bellidir. Bu madde olmadan, tedarikçiyle yaşanan bir anlaşmazlık projeyi rehin alır.

Madde metinleri nasıl yazılır?

Yukarıdaki altı başlık, sözleşmede tek bir cümleyle geçiştirilmemeli. Aşağıdaki kalıp cümleler başlangıç noktası olarak kullanılabilir; her biri avukatınız tarafından kendi sözleşme yapınıza uyarlanmalıdır.

Devralma gerçekte nasıl işler?

Bir projeyi devralan ekip, ilk üç gününde şu dört soruya cevap arar: proje yerelde nasıl çalıştırılır, ortam değişkenleri nerede, veritabanı nasıl geri yüklenir, dağıtım hangi adımlarla yapılır. Bu dördünün cevabı dokümanda yoksa, devralma süresi haftalara çıkar.

Pratik bir çözüm: teslimattan önce, hiç projeye dokunmamış bir geliştiriciye "sadece dokümantasyonla projeyi ayağa kaldır" görevi verin. Ne kadar sürede başardığı, dokümanın gerçek kalitesini ölçer. Bunu bir kabul kriteri olarak sözleşmeye yazmak, teslim kalitesini görünür kılar.

Kod deposu ve erişim listesi

Devir sırasında kontrol edilmesi gereken erişim listesi:

Bu listenin tamamı müşteride değilse, proje teknik olarak teslim edilmemiştir — sadece çalışıyor görünüyordur.

Neden bu kadar önemli?

Bir yazılımı kaybetmenin en yaygın yolu, onu kötü yazan ekip değildir. En yaygın yol, erişimin tek bir kişide kalmasıdır. O kişi ayrıldığında, şirket elinde çalışan ama dokunamadığı bir sistemle kalır. Altı madde, bu senaryoyu baştan engellemek için yazılır.

Teslim anında yapılacak kontrol

Teslim günü tek bir belge imzalamak yerine, aşağıdaki kontrolleri yapın ve sonucu teslim tutanağına yazın:

Bu altı kontrol on dakika sürer. Atlanması halinde ortaya çıkacak maliyet ise genellikle haftalarla ölçülür.

Sık yapılan hatalar

Depoyu tedarikçinin hesabında bırakmak. Proje çalışır, ama sahiplik belirsizdir. Gizli anahtarları koda gömmek. Anahtar koddaysa, depoyu devralan herkes veritabanına erişir. Yedekleme var demekle yetinmek. Geri dönüş denenmemiş yedek, yedek değildir. Teslimi tek e-postayla geçiştirmek. Tutanaksız teslim, sonraki anlaşmazlıkta ispatsızdır.

Kontrol listesi

Bu altı madde, sözleşmeyi uzatmaz; sadece projenin üç yıl sonra da sizin kontrolünüzde kalmasını sağlar.

Sık sorulan sorular

Kaynak kod bana ait olmazsa ne olur?

Yazılımı kullanmaya devam edersiniz ama değiştiremez, başka ekibe devredemez, kendi sunucunuza taşıyamazsınız. Pratikte yazılımın sahibi siz değil, tedarikçiniz olur.

Kod GitHub'da dursa yeterli mi?

Hayır. Depo kime ait, kim push yetkisine sahip, geçmiş kimin hesabında? Depo sahipliği ve erişim listesi de devredilmelidir.

Açık kaynak kütüphaneler sorun çıkarır mı?

Hayır, ama lisans listesi sözleşmede olmalı. Bazı lisanslar ticari kullanımda ek yükümlülük getirir.

Devralma maddesi neden gerekli?

Tedarikçiyle yollar ayrıldığında yeni ekibin projeyi devam ettirebilmesi için gereken dokümantasyon ve erişimleri tanımlar. Bu madde yoksa proje fiilen kilitlenir.

Projenizi konuşalım →