Yazılım sözleşmesinde kaynak kod sahipliği: Hangi maddeler şart?
Yazılım sözleşmesinde kaynak kod sahipliği için şart maddeler: mali hakların devri, deponun sizin hesabınızda olması, veri, hesaplar, lisanslar ve devir.
Bu yazıda
- Kullanım hakkı ile mali hakların devri aynı şey değil
- Sözleşmelerde sık görülen zayıf ifadeler
- Depo ilk günden sizin hesabınızda olmalı
- Veri kimin?
- Barındırma, alan adı ve servis hesapları
- Üçüncü taraf lisansları ve açık kaynak bileşenler
- Kaynak kod emaneti (escrow) ne zaman gerekir?
- Çıkış ve devir maddeleri
- Nereden başlamalı?
Bir yazılım sözleşmesinde kaynak kod sahipliğini güvenceye almak için en az şunlar açıkça yazılı olmalı: size özel yazılan kodun mali haklarının size devredildiği, kod deposunun ilk günden sizin şirket hesabınızda tutulacağı, verinin size ait olduğu, sunucu ve alan adının sizin adınıza açılacağı, üçüncü taraf lisanslarının kimin adına olduğu ve ilişki bittiğinde neyin, nasıl teslim edileceği. Bu maddeler eksikse, parasını ödediğiniz bir yazılım ilişki bozulduğunda elinizden kayabilir. Bu yazı genel bir yol haritasıdır, hukuki danışmanlık yerine geçmez; sözleşmenizi imzalamadan önce bir avukata okutun.
Kullanım hakkı ile mali hakların devri aynı şey değil
Yazılım yaptıran şirketlerin en sık yanıldığı nokta, bedelini ödedikleri yazılımın kendiliğinden kendilerine ait olacağını düşünmeleridir. Türkiye'de bilgisayar programları 5846 sayılı Fikir ve Sanat Eserleri Kanunu kapsamında eser olarak korunur. Kanun, mali haklara ilişkin sözleşmelerin yazılı yapılmasını ve devredilen hakların ayrı ayrı gösterilmesini arar. Yani sözleşmede “yazılım müşteriye aittir” gibi genel bir cümle yerine, hangi hakların devredildiğinin açıkça yazılması gerekir.
Burada iki kavramı ayırmak önemli:
- Kullanım hakkı (lisans): Yazılımı kullanabilirsiniz, ama kodun sahibi tedarikçi kalır. Kodu başka bir geliştiriciye verip değiştirtmeniz, çoğaltmanız ya da başka bir yerde kullanmanız sözleşmenin izin verdiği ölçüde mümkündür; çoğu zaman hiç mümkün değildir.
- Mali hakların devri: İşleme, çoğaltma, yayma gibi haklar size geçer. Kodu istediğiniz ekibe geliştirtebilir, istediğiniz yerde çalıştırabilirsiniz.
Size özel yazılan bir iş yazılımında aradığınız genelde ikincisidir. Ama tamamen makul bir istisna var: tedarikçinin sizin projenizden önce geliştirdiği ve başka projelerde de kullandığı genel araçlar. Bunların haklarını devretmesi beklenmez; bunun yerine size süresiz, devredilebilir ve ücretsiz bir kullanım hakkı tanınması istenebilir. Sözleşmede hangi parçanın size özel, hangisinin tedarikçinin genel aracı olduğu ayrılmalıdır.
Sözleşmelerde sık görülen zayıf ifadeler
Sorun çoğu zaman maddenin hiç olmaması değil, belirsiz yazılmasıdır. Aşağıdaki tablo, taslaklarda sık rastlanan ifadeleri ve bunların yerine neyin aranabileceğini gösteriyor. Kesin metni avukatınızla birlikte belirleyin; amaç, hangi sorunun sorulması gerektiğini görmek.
| Zayıf ifade | Neden riskli | Yerine aranacak |
|---|---|---|
| “Yazılım müşteriye teslim edilecektir.” | Teslim edilenin derlenmiş hali mi, kaynak kod mu olduğu belli değil | Kaynak kodun, kurulum betiklerinin ve dokümanın müşterinin deposunda tutulacağı |
| “Proje bitiminde kaynak kod verilecektir.” | Proje yarıda kalırsa ne olacağı yazmıyor | Kodun proje boyunca müşterinin deposunda biriktiği; ödenen işin haklarının o ana kadar geçtiği |
| “Müşteri yazılımı kullanma hakkına sahiptir.” | Yalnızca kullanım hakkı veriyor olabilir | Size özel yazılan kod için mali hakların devri; hangi hakların devredildiğinin tek tek yazılması |
| “Barındırma tedarikçi tarafından sağlanacaktır.” | Sistem fiilen tedarikçinin elinde kalır | Sunucunun müşteri adına açılması ya da çıkışta taşıma süresinin ve biçiminin yazılması |
| “Gerekli lisanslar tedarikçi tarafından temin edilecektir.” | Lisans tedarikçinin adına kalabilir | Lisansların müşteri adına alınması ve listelenmesi |
Bu ifadelerin hiçbiri kötü niyet göstermez; çoğu, şablon sözleşmelerden kopyalanmış kalıplardır. Ama ilişki bozulduğunda geçerli olan, niyet değil yazılı metindir.
Depo ilk günden sizin hesabınızda olmalı
Hukuki olarak haklar size geçse bile, kod fiilen geliştiricinin hesabında duruyorsa pratikte elinizde değildir. İlişki bozulduğunda “kodu teslim edeceğiz” vaadi bir pazarlık konusuna dönüşebilir.
Bunun basit bir çözümü var: kod deposu (GitHub, GitLab ya da benzeri bir serviste) sizin şirketinizin hesabında açılır, geliştirici oraya davet edilir. Böylece her değişiklik yapıldığı anda sizin hesabınızda durur. Bu teslimde değil, ilk değişiklik yapılmadan önce böyle olmalıdır. Sözleşmede şunlar yazabilir:
- Deponun müşterinin hesabında tutulacağı ve tedarikçiye yalnızca erişim verileceği.
- Kodun proje boyunca düzenli olarak bu depoya gönderileceği; yerel bilgisayarlarda biriktirilmeyeceği.
- Kurulum betikleri, veritabanı şeması ve yapılandırma örneklerinin de depoda yer alacağı.
Veri kimin?
Kod kadar önemli, belki daha önemli olan şey verinizdir. Sözleşmede yazılımın topladığı ve ürettiği bütün verinin size ait olduğu, istediğiniz zaman yaygın bir biçimde, örneğin tam bir veritabanı yedeği olarak teslim edileceği yazılmalı.
Kişisel veri işleniyorsa konu bir adım daha ciddileşir. 6698 sayılı Kişisel Verilerin Korunması Kanunu açısından genelde siz veri sorumlusu, sistemi sizin adınıza işleten tedarikçi ise veri işleyen konumundadır. Bu ilişkinin, tedarikçinin veriye hangi amaçla erişebileceğinin ve güvenlik önlemlerinin ayrıca yazılı olması beklenir. Verinin yurt dışındaki bir sunucuda tutulması ya da yurt dışındaki bir tedarikçinin veriye erişmesi ek yükümlülükler doğurabilir; bu konudaki güncel kuralları KVKK'nın resmi sitesinden ve hukuk danışmanınızdan kontrol edin.
Barındırma, alan adı ve servis hesapları
Bir yazılım yalnızca koddan ibaret değildir. Çalışması için bir sunucuya, bir alan adına, bir veritabanına, e-posta gönderim servisine, belki bir ödeme sağlayıcısına ya da harita servisine ihtiyaç duyar. Bu hesapların her biri geliştiricinin adına açılmışsa, sistem fiilen onun elindedir.
Doğru düzen şu: bütün bu hesaplar sizin şirketinizin adına ve sizin ödeme yönteminizle açılır, geliştiriciye gereken erişim verilir. Sözleşmeye bir hesap listesi eklenmesi faydalıdır: hangi servis, kimin adına, yönetici erişimi kimde, yenileme tarihi ne zaman. Alan adı özellikle önemlidir; sizin adınıza kayıtlı olmayan bir alan adı, e-postalarınızı ve müşteri erişimini de birlikte rehin bırakabilir.
Üçüncü taraf lisansları ve açık kaynak bileşenler
Modern bir yazılım, başkalarının yazdığı pek çok bileşenin üzerine kurulur. Bunlar iki gruba ayrılır.
Ücretli lisanslar ve abonelikler: Tema, eklenti, raporlama aracı, e-fatura entegratörü aboneliği gibi kalemler. Bunların faturası sizin şirketinize kesilmeli ve yenileme tarihleriyle birlikte listelenmeli; aksi halde geliştirici ayrıldığında lisans da onunla gider.
Açık kaynak bileşenler: Laravel gibi çatılar ve kullanılan kütüphaneler kendi lisanslarıyla gelir. Bu bileşenlerin sahibi olmazsınız ve olmanız da gerekmez; size ait olan, onların üzerine yazılmış kendi kodunuzdur. Önemli olan, kullanılan bileşenlerin lisanslarının projenin kullanım biçimine uygun olmasıdır. Bazı lisanslar, yazılımı başkalarına dağıttığınızda kaynak kodu paylaşma gibi koşullar getirebilir. Sözleşmede tedarikçinin kullanılan bileşenleri ve lisanslarını listeleyeceği ve sizin kullanımınızla çelişen bir lisans kullanmayacağı yazılabilir.
Kaynak kod emaneti (escrow) ne zaman gerekir?
Kaynak kod emaneti, kodun bir kopyasının bağımsız bir üçüncü tarafta saklandığı ve belirli durumlarda, örneğin tedarikçinin faaliyetini durdurması ya da desteği bırakması halinde size teslim edildiği bir düzenlemedir.
Emanet, tedarikçinin kodun sahibi olarak kaldığı ve size yalnızca lisans verdiği durumlarda anlamlıdır; örneğin birçok müşteriye satılan bir paket yazılımı kendi işiniz için kritik bir şekilde kullanıyorsanız. Size özel yazılan ve deposu zaten sizin hesabınızda duran bir yazılımda emanet çoğu zaman gereksiz bir masraftır, çünkü kod zaten sizdedir.
Emanet kullanılacaksa iki şeye dikkat edin: emanete bırakılan kodun gerçekten derlenip çalıştırılabildiğinin düzenli olarak doğrulanması ve teslimi tetikleyen durumların açık yazılması. Doğrulanmamış bir emanet, bir gün açıldığında işe yaramayan bir arşiv olabilir.
Çıkış ve devir maddeleri
İyi bir sözleşme, ilişki iyi giderken değil, bittiğinde ne olacağını yazar. Aşağıdaki kontrol listesini sözleşmenizle karşılaştırın:
- Devir paketinin kapsamı yazılı mı: kurulum dokümanı, işletim kılavuzu, ortam değişkenleri ve gizli anahtarların listesi, mimari özet?
- Devir sırasında kayıtlı bir eğitim ya da bilgi aktarım görüşmesi var mı?
- Sözleşmenin herhangi bir nedenle sona ermesi halinde depo, hesaplar ve veri için bir teslim süresi tanımlanmış mı?
- Tedarikçinin elindeki erişimlerin ve kopyaların ne zaman kaldırılacağı yazılı mı?
- Bakım anlaşması projeye şart olarak bağlı mı, yoksa ayrı ve feshedilebilir mi?
- Başka bir ekibe geçişte “devir ücreti” gibi bir kalem var mı?
- Projenin ortasında ayrılırsanız, o ana kadar yapılan ve ödenen işin hakları size geçiyor mu?
Bu maddelerin yazılı olması, tedarikçiye güvenmediğiniz anlamına gelmez. Tam tersine, iki tarafın da ne beklediğini bildiği bir ilişki genelde daha uzun sürer.
Nereden başlamalı?
Elinizde bir sözleşme taslağı varsa, yukarıdaki başlıkları tek tek işaretleyin ve eksik olanları tedarikçiye yazılı olarak sorun. Henüz teklif aşamasındaysanız, bu soruları teklifleri karşılaştırırken sormak daha kolaydır; nasıl yapılacağını yazılım teklifi nasıl karşılaştırılır yazısında anlattık. Sözleşmede aranması gereken maddelerin özetini yazılım yaptırma rehberimizde de bulabilirsiniz.
Kendi projelerimizde bu maddeleri pazarlık konusu yapmıyoruz: özel iş yazılımı işlerimizde depo ilk günden sizin hesabınızda, hesaplar sizin adınıza ve devir paketi teklifte ayrı bir kalem olarak yazılı. Sözleşme taslağınızı ya da projenizi konuşmak isterseniz iletişim sayfamızdan bize ulaşabilirsiniz.

Yazan
Sevan Nerse
LokumTech'in kurucusu. 2018–2022 arasında Akaunting ekibinde Senior Software Developer olarak çalıştı; son beş yıla yakın süreyi İK teknolojilerinde, farklı dönemlerde Tech Lead ve CTO olarak geçirdi.
Hakkımızda