Özel Yazılımda Kaynak Kod Kime Ait? Sözleşmede Bakılacak 7 Madde
Özel Yazılımda Kaynak Kod Kime Ait? Sözleşmede Bakılacak 7 Madde
Mersin'de bir tekstil üreticisisiniz. Toptancı müşterileriniz için özel bir B2B sipariş platformu geliştirdiniz. İki yıl sorunsuz çalıştı. Sonra yazılımcı firma kapandı. Sistemde kritik bir hata çıktı, kimse müdahale edemiyor. Müşterileriniz sipariş veremiyor.
Soruyorsunuz: "Kaynak kodlar bende mi?" Eski faturaları karıştırıyorsunuz. Sözleşmede "yazılım hizmeti" yazıyor, başka bir şey yok. Aslında elinizde ne olduğunu bilmiyorsunuz.
Bu senaryo, özel yazılım geliştirme sözleşmelerinde en sık karşılaşılan felaketin başlangıcıdır. Fiyata bakılır, teslimat süresine bakılır, ama asıl soru hiç sorulmaz: İş bittiğinde ben neye sahip oluyorum?
Çoğu işletme sahibi yazılım satın aldığını düşünür, oysa aslında hizmet almıştır. Araba aldığınızda anahtarlar size verilir. Yazılımda ise "anahtar" kaynak koddur — ve çoğu zaman teslim edilmez, hatta sözleşmede bahsedilmez bile.
Bu yazıda, özel yazılım sözleşmesi hazırlarken kaynak kod mülkiyeti ve tedarikçi bağımlılığı konusunda kontrol edilmesi gereken 7 kritik maddeyi adım adım inceleyeceğiz. Her madde, gerçek projelerde karşılaşılan sorunlardan yola çıkıyor ve somut, sözleşmeye yazılabilir ifadeler içeriyor.
1. Kaynak Kod Teslimi: Tam Sahiplik mi, Kullanım Hakkı mı?
Kaynak kod, yazılımın orijinal metin halidir. Onu elinde bulunduran, yazılımı değiştirebilir, geliştirebilir, başka bir ekibe emanet edebilir. Kaynak kod olmadan, yazılımı geliştiren firmaya sonsuza kadar bağımlısınız.
Özel yazılım sözleşmelerinde üç tür mülkiyet modeli vardır:
Tam Mülkiyet Devri (Full Ownership)
Proje bittiğinde tüm kaynak kod, yorum satırları ve geliştirme notlarıyla birlikte size teslim edilir. Telif hakkı size aittir. İstediğiniz ekiple çalışabilir, yazılımı satabilir veya lisanslayabilirsiniz.
Sözleşmede şöyle yazmalı:
"Proje teslim tarihinde, yazılımın tüm kaynak kodları (frontend, backend, veritabanı şemaları ve migrations dahil) müşteriye GitHub/GitLab deposu üzerinden devredilir. Tedarikçi, telif hakkını müşteriye devreder ve kod üzerinde hiçbir gelecek hak talebinde bulunmaz."
Kullanım Hakkı (License to Use)
Kaynak kod size verilir ama telif hakkı tedarikçide kalır. Siz sadece kullanabilir ve değiştirebilirsiniz, satamaz veya lisanslayamazsınız. Daha ucuz ama riskli bir modeldir.
Kaynak Kod Emaneti (Escrow)
Kaynak kod üçüncü bir aracı firmada saklanır. Tedarikçi iflas ederse veya desteği bırakırsa, kod size açılır. Maliyetli ama bazı durumlarda makul bir uzlaşmadır.
Sık karşılaşılan bir durum: Bir otel zincirinin rezervasyon yazılımı geliştirilir. Sözleşmede kaynak kod tesliminden bahsedilmemiştir. Birkaç yıl sonra tedarikçi firma satılabilir, yeni sahipler bakım ücretini kat kat artırabilir. Otel başka bir ekiple çalışmak istese bile kaynak kodu alamadığı için sıfırdan yazılım yaptırmak zorunda kalabilir.
2. Veritabanı Şeması, Kurulum Kılavuzu ve API Dokümanları
Kaynak kodu alıp başka bir ekibe verdiğinizde, o ekibin yazılımı kurabilmesi ve anlayabilmesi gerekir. Bunun için üç şey şart:
Veritabanı Şeması ve Migration Dosyaları
Veritabanı yapısını gösteren şema ve zaman içinde yapılan değişiklikleri izleyen migration dosyaları. Yoksa, veri yedekleme ve aktarma imkansız hale gelir.
Kurulum ve Deployment Dokümanı
Yazılımın nasıl sunucuya kurulacağı, hangi bağımlılıkların yükleneceği, hangi environment variable'ların tanımlanacağı. Doküman yoksa, başka bir ekip yazılımı ayağa kaldıramaz.
API ve Teknik Dokümanlar
Her modülün, fonksiyonun ve API endpoint'in ne yaptığına dair açıklama. İyi dokümante edilmiş bir sistemin bakımı hem size hem yeni geliştiriciye çok daha ucuza mal olur.
Sözleşmede şöyle yazmalı:
"Teslimat paketine şunlar dahildir: tam kaynak kod, veritabanı şema dosyaları ve migrations, sunucu kurulum kılavuzu, API dokümanları (Swagger/Postman formatında), kullanılan üçüncü taraf kütüphanelerin listesi ve versiyonları."
Örnek senaryo: Bir lojistik firması araç takip yazılımı yaptırabilir. Yazılımcı sadece kaynak kodu teslim edip kurulum dokümanı vermezse, birkaç ay sonra sunucu değişikliği gerektiğinde kimse sistemi ayağa kaldıramayabilir. Eski yazılımcıdan pahalı danışmanlık hizmeti almak gerekebilir.
3. Verinin Mülkiyeti ve Dışa Aktarma Hakkı
Yazılım size ait olsa bile, veri başka bir konudur. Müşteri bilgileri, siparişler, loglar — bunların sahibi kimdir ve siz ne zaman dışa aktarabilirsiniz?
Bazı tedarikçiler yazılımı kendi sunucularında barındırır (SaaS model) ve veriyi kendi sistemlerinde tutar. Sözleşme bittiğinde size CSV veya Excel olarak veri verirler — ama bu format genellikle eksik veya kullanışsızdır.
Sözleşmede şöyle yazmalı:
"Yazılım içinde tutulan tüm verinin (müşteri bilgileri, transaksiyonlar, loglar, yüklenen dosyalar) mülkiyeti müşteriye aittir. Müşteri, istediği zaman tüm veriyi SQL dump, JSON veya API yoluyla tam ve eksiksiz olarak dışa aktarma hakkına sahiptir. Tedarikçi, sözleşme sonunda tüm müşteri verisini 7 gün içinde siler ve silme onayı yazılı olarak müşteriye bildirilir."
Bu madde, tedarikçi bağımlılığının en tehlikeli türünü engeller: veri rehinesi. Bazı tedarikçiler, sözleşme yenilenmezse veriyi teslim etmekten kaçınır veya fahiş ücret talep eder.
4. Kullanılan Teknolojilerin Yaygınlığı ve Dokümantasyon Kalitesi
Bazı yazılımcılar çok yeni, çok niş veya kendi geliştirdikleri teknolojileri kullanır. Siz o yazılımcıdan ayrıldığınızda, başka kimse sisteme dokunmaya cesaret edemez.
Örneğin, bir yazılımcı PHP yerine kendi geliştirdiği obscure bir framework kullandıysa, o framework'ü bilen başka yazılımcı bulmak çok zordur. Ya da çok yeni çıkmış, Türkçe dokümantasyonu olmayan bir teknoloji seçmişse, bakım maliyeti katlanır.
Sözleşmede Teknoloji Listesi ve Onay Maddesi
Sözleşmede şöyle yazmalı:
"Projede kullanılacak tüm teknolojiler (programlama dili, framework, veritabanı, frontend kütüphaneleri) projenin başında yazılı olarak müşteriye bildirilir ve onaylanır. Tedarikçi, yaygın olarak kullanılan, topluluk desteği olan ve dokümantasyonu güncel teknolojileri tercih eder. Niş veya experimental teknolojiler müşteri onayı olmadan kullanılamaz."
Bu madde, tedarikçinin sizi kasıtlı veya kasıtsız olarak kendi tekeline kilitlemesini engeller.
Örnek senaryo: Bir gıda şirketi stok yönetim yazılımı yaptırabilir. Yazılımcı yaygın olmayan, çok yeni bir teknoloji kullanırsa, iki yıl sonra o teknolojiyi bilen yazılımcı bulmak zor olabilir. Şirket yazılımı daha yaygın bir teknolojiye çevirmek zorunda kalabilir — uzun süre ve ciddi maliyet kaybıyla.
5. Üçüncü Taraf Lisans ve Abonelikler: Kimin Adına, Kim Ödüyor?
Modern yazılımlar düzinelerce üçüncü taraf servise bağlıdır: SMS API, ödeme gateway, harita servisi, bulut depolama, analytics, vb.
Kritik soru: Bu servislerin abonelikleri kimin adına açılıyor ve kim ödüyor?
Eğer tedarikçi kendi hesabıyla bu servisleri açtıysa ve siz onun üzerinden kullanıyorsanız, tedarikçi ile aranız bozulduğunda yazılımınız anında durur. Örneğin SMS servisi, ödeme gateway hesabı tedarikçiye aittir — tedarikçi hesabı kapatırsa, müşterileriniz SMS alamaz, ödeme yapamaz.
Sözleşmede şöyle yazmalı:
"Projede kullanılan tüm üçüncü taraf servisler (API'ler, SaaS araçlar, bulut hizmetleri) müşterinin kendi hesabı ve kredi kartıyla açılır. Tedarikçi sadece entegrasyon yapar, abonelik ve ödeme sorumluluğu müşteriye aittir. Tedarikçi, kullanılan tüm servislerin listesini ve tahmini aylık maliyetlerini projenin başında müşteriye bildirir."
Bu madde, yazılım teslim edildikten sonra operasyonel bağımsızlık sağlar.
Tipik bir durum: Bir e-ticaret sitesinde ödeme gateway entegrasyonu yazılımcının kendi hesabıyla yapılabilir. Yazılımcı ile anlaşmazlık çıktığında, hesap kapatılırsa site ödeme alamaz hale gelir ve günlük ciddi kayıplar yaşanabilir.
6. Bakım ve Destek Kapsamının Yazılı ve Sınırlı Tanımı
Çoğu sözleşmede "bakım ve destek" muğlak bir şekilde yazılır: "Tedarikçi gerekli desteği verir." Bu ifade hiçbir şey ifade etmez.
İyi bir sözleşme, bakım ve destek kapsamını somut ve ölçülebilir şekilde tanımlar:
Ücretsiz Hata Düzeltme Süresi
D'Cloud Software olarak verdiğimiz tek garanti budur: Teslimattan sonraki 15 gün içinde bulunan hataları ücretsiz düzeltiriz. Bu süre sınırlı ve somuttur. "Lifetime destek" gibi belirsiz vaatler vermeyiz.
Bakım ve Geliştirme Sonrası Nasıl Olur?
15 günden sonra bakım ve yeni özellik ekleme için iki model vardır:
- Aylık bakım paketi: Sabit ücret, belirli saat/iş kapsamı.
- Proje bazlı: Her yeni iş için ayrı teklif.
Sözleşmede şöyle yazmalı:
"Teslim tarihinden itibaren 15 gün boyunca, yazılımın sözleşmede tanımlanan özelliklerde ortaya çıkan hatalar (bug) tedarikçi tarafından ücretsiz düzeltilir. 15 gün sonunda, bakım ve yeni özellik ekleme talepleri için ayrı teklif sunulur. Müşteri, bakım hizmeti almak zorunda değildir ve kaynak koda sahip olduğu için istediği ekiple çalışabilir."
Muğlak vaatler yerine somut, sınırı belli taahhütler hem size hem tedarikçiye güven verir. "7/24 destek" veya "%100 garanti" gibi ifadeler genellikle pazarlama cümlesidir, sözleşmeye yazıldığında uygulanamaz.
7. Devir ve Sonlandırma Koşulları: Çıkış Kapısı Nasıl Açık Kalır?
Bir ilişkiyi başlatmak kolaydır, bitirmek zordur. Sözleşme sona erdiğinde, tedarikçi neler yapmakla yükümlüdür?
Bu madde yazılmamışsa, tedarikçi size hiçbir şey teslim etmek zorunda değildir. Kod, doküman, veri — hepsi onda kalabilir.
Sözleşmede şöyle yazmalı:
"Sözleşme sonunda veya fesih durumunda tedarikçi, müşteriye şunları 7 iş günü içinde teslim eder: tüm kaynak kodlar (güncel versiyon), veritabanı yedeği (SQL dump), tüm dokümanlar, sunucu ve üçüncü taraf servis erişim bilgileri. Tedarikçi, müşteri verisini kendi sistemlerinden siler ve silme işlemini yazılı olarak onaylar. Müşteri, devir sonrasında yazılımı istediği şekilde kullanmakta özgürdür."
Bu madde, tedarikçi bağımlılığını ortadan kaldırır ve size çıkış özgürlüğü verir.
Sık görülen bir senaryo: Bir danışmanlık firması CRM yazılımı yaptırabilir. Tedarikçi ile ücret konusunda anlaşmazlık çıkarsa ve sözleşmede devir maddesi yoksa, kaynak kodu almak hukuki sürece girebilir. Bu sürede yeni müşteri kabulü yapılamayabilir.
Tedarikçi Bağımlılığı Nasıl Oluşur ve Nasıl Engellenir?
Tedarikçi bağımlılığı (vendor lock-in), yazılımı geliştiren firmaya mahkum olmanızdır. Üç şekilde oluşur:
1. Kaynak Kod Yokluğu
Kaynak kodu elinizde tutmazsanız, başka kimse yazılıma dokunamaz. Tedarikçi istediği fiyatı dayatır.
2. Veri Rehinesi
Verileriniz tedarikçinin sunucusundadır ve kolay dışa aktarım yoktur. Sözleşme bitse bile veriyi alamazsınız.
3. Niş Teknoloji veya Doküman Yokluğu
Yazılım çok özel bir teknolojiyle yazılmış veya hiç dokümante edilmemiştir. Başka yazılımcı anlamaz, bakım alamazsınız.
Engelleme stratejisi basittir: Yukarıdaki 7 maddenin tümünü sözleşmeye yazın ve imzalanmadan başlamayın. İlk gün rahatsız edici görünebilir, ama uzun vadede size esneklik ve güç verir.
İyi bir tedarikçi bu maddelere itiraz etmez — çünkü güvenilir bir sistem kurduğunu bilir ve müşterinin bağımsızlığına saygı duyar. Direnen tedarikçi, zaten sizi kendine bağımlı hale getirmeyi planlıyordur.
Sık Sorulan Sorular
Kaynak kod teslimi ekstra ücretli mi, yoksa proje fiyatına dahil mi?
Bu tamamen sözleşmeye bağlıdır. Bazı tedarikçiler kaynak kod teslimi için ekstra ücret talep eder, bazıları proje fiyatına dahil eder. D'Cloud Software olarak bizim modelimizde, kaynak kod ve tam mülkiyet devri proje fiyatına dahildir — ekstra bir ücret yoktur. Fiyat teklifi alırken mutlaka sorun: "Kaynak kodları alabilir miyim, ekstra ücretli mi?" İyi bir tedarikçi bunu net olarak belirtir.
Sözleşmede bu maddeler yoksa ne yapmalıyım?
Proje başlamadan önce, sözleşmeye bu 7 maddeyi ekleyin ve tedarikçiden onay alın. Eğer proje zaten başlamışsa, bir ek protokol (addendum) hazırlayıp imzalayabilirsiniz. Tedarikçi karşı çıkarsa, alternatif tedarikçilerle görüşmeye başlayın — çünkü büyük ihtimalle zaten bir kilitlenme riski var demektir.
Yazılım geliştirme sözleşmesi fiyatları nasıl belirlenir?
Fiyat, projenin kapsamına, karmaşıklığına, kullanılan teknolojilere ve ekip büyüklüğüne göre değişir. Sabit sayı vermek yanıltıcıdır. D'Cloud Software olarak bizim yaklaşımımız: önce ücretsiz bir keşif görüşmesi yapıyoruz, ihtiyaçlarınızı dinliyoruz, sonra sabit fiyat ve teslimat süresi içeren yazılı bir teklif sunuyoruz. Teklif kabul edilirse, sözleşmede bu fiyat yazılır — proje sırasında değişmez.
15 gün ücretsiz hata düzeltme yeterli mi, daha uzun garanti isteyebilir miyim?
İsteyebilirsiniz, ama bu genellikle proje maliyetine yansır. 15 gün, yazılımın yoğun şekilde test edilmesi ve büyük hataların ortaya çıkması için yeterli bir süredir. Daha uzun garanti, aslında "bakım sözleşmesi" anlamına gelir ve ayrı bir hizmet olarak fiyatlandırılır. Dikkat edin: "Lifetime garanti" gibi belirsiz vaatler pazarlama cümlesidir, uygulanabilir değildir. Sınırlı ve somut taahhütler daha güvenilirdir.
Kaynak kodu alsam bile, teknik bilgim yoksa ne işime yarar?
Kaynak koda sahip olmak, yazılımı kendiniz değiştirebileceğiniz anlamına gelmez — ama seçim özgürlüğü sağlar. Başka bir yazılımcı veya ekip ile çalışabilirsiniz. Tedarikçi fahiş fiyat isterse, alternatif bulabilirsiniz. Kaynak kodu elinde tutan, pazarlık gücüne sahiptir. Kaynak kodu olmayan, mahkumdur.
Tedarikçi "kaynak kod benim fikri mülkiyetim, veremem" derse ne yapmalıyım?
Bu, özel yazılım geliştirme için kabul edilemez bir tutumdur. Eğer bir yazılım özel olarak sizin için sıfırdan geliştiriliyorsa, telif hakkı size ait olmalıdır. Eğer tedarikçi hazır bir ürünü size özelleştirerek sunuyorsa, o başka bir iş modelidir (SaaS veya lisanslı yazılım). Projeden önce bu farkı netleştirin. Özel yazılım = tam mülkiyet. Hazır ürün = kullanım lisansı. İkisini karıştırmayın.
Sonuç: Sözleşme, Fiyattan Önce Gelmeli
Özel yazılım geliştirme, binlerce TL'lik bir yatırımdır. Ama çoğu işletme sahibi, yazılıma değil aslında bir ilişkiye yatırım yaptığının farkında değildir. Ve o ilişki kötü tasarlanmışsa, yıllarca süren bir bağımlılık ve maliyete dönüşür.
Bu yazıda incelediğimiz 7 madde — kaynak kod mülkiyeti, veritabanı ve doküman teslimi, veri sahipliği, teknoloji seçimi, üçüncü taraf lisanslar, bakım kapsamı ve devir koşulları — tedarikçi bağımlılığını engelleyen en kritik unsurlardır.
İyi bir yazılım sözleşmesi, her iki tarafa da güven verir. Size esneklik, tedarikçiye ise işinin kalitesine güvendiğini gösterme fırsatı sağlar. Muğlak vaatler yerine somut, ölçülebilir taahhütler; "sınırsız destek" yerine "15 gün ücretsiz hata düzeltme"; "en iyi teknolojiler" yerine "PostgreSQL, Node.js, React — yazılı teknoloji listesi" gibi ifadeler, sağlam bir sözleşmenin temelini oluşturur.
D'Cloud Software olarak, Mersin merkezli ve 3 kıtada hizmet veren bir ekip olarak, tüm projelerimizde bu 7 maddeyi standart uygularız. Kaynak kod ve tam mülkiyet devri proje fiyatına dahildir. Sabit fiyat, sözleşmede yazılır. Teslim sonrası 15 gün ücretsiz hata düzeltme garantisi veririz — belirsiz vaatler değil, somut taahhütler.
Eğer özel bir yazılım projesi planlıyorsanız ve bu 7 maddenin kendi durumunuzda nasıl uygulanacağını konuşmak istiyorsanız, ücretsiz bir online keşif görüşmesi yapalım. İhtiyaçlarınızı dinleyelim, süreci ve maliyeti netleştirelim. Sözleşmenizi okuyup eksik maddeleri belirleyelim.
WhatsApp üzerinden veya web sitemizdeki iletişim formundan bize ulaşabilirsiniz. Keşif görüşmesi tamamen ücretsizdir ve hiçbir bağlayıcılık içermez.
Yazar: Doğuhan Bulut — D'Cloud Software Kurucusu
Doğuhan Bulut
Kurucu & CTO
Full-stack mimari ve ürün stratejisi. Next.js ve bulut altyapılarında 10+ yıl deneyim.
Ekibinizle birlikte planlayalım
Stratejik teknik danışmanlık veya ekip eğitimi: CTO-as-a-service modeli. 30 dk ücretsiz keşif.
Ücretsiz keşif alAylık dijital özet bültenimiz
Ayda 1 e-posta — yeni teknoloji, KOBİ + KVKK güncellemeleri, vaka çalışmaları. Spam yok, istediğiniz an çıkış.
İlgili Yazılar
Yazılım Projesi Neden Uzar? Kapsam Kayması ve Onu Durduran Üç Alışkanlık
Yazılım projesi neden gecikir? Çoğu zaman sebep teknik değil: 'bir de şu olsa' istekleri, sözlü mutabakatlar, sessizce eklenen özellikler. Kapsam kaymasını durduran üç alışkanlık ve sabit fiyatın gerçek anlamı.
Devamını okuERP Entegrasyon Projesi Nasıl Planlanır? 8 Adımlık Kontrol Listesi
ERP entegrasyonu kod yazmakla başlamaz. Hangi sürüm, hangi lisans, hangi olay hangi kaydı üretecek? Atlanırsa projeyi batıran 8 kritik adımı somut örneklerle anlattık. Sessiz başarısızlık en sinsi sorundur.
Devamını okuSabit Fiyat mı Saat Başı mı? Türk KOBİ İçin Yazılım Sözleşmesi Karar Çerçevesi
Sözleşme modeli, teknoloji tercihinden daha çok proje başarısını belirler. Türk KOBİ için çerçeve.
Devamını oku