mobile menu
Desktop (23)
Proje Yöneticileri ve Teknik Ekipler İçin Yazılım Geliştirme Sözleşmeleri; Projeyi Koruyan Temel Noktalar
Proje Yöneticileri ve Teknik Ekipler İçin Yazılım Geliştirme Sözleşmeleri; Projeyi Koruyan Temel Noktalar Dinle!
0:00 / 0:00
1x
2.0x
1.5x
1.25x
1.0x
0.75x
"Bu yazı, bir hukuk metni değildir. Yazılım geliştirme projelerinde yer alan proje yöneticileri, ürün sahipleri, teknik liderler ve yazılım ekipleri için kaleme alınmıştır. 

Amaç; sözleşme hukukunun teknik ayrıntılarını anlatmaktan ziyade, yazılım projelerinde günlük hayatta karşılaşılan sorunların neden sıklıkla “hukuki” sonuçlar doğurduğunu görünür kılmaktır. Çünkü projede alınan birçok teknik ve yönetsel karar, farkında olunmasa bile sözleşmenin nasıl yazıldığıyla doğrudan bağlantılıdır. 

Aşağıdaki başlıklar, hukukçu olmayan ekiplerin de sözleşmeye hangi gözle bakmasının projeyi koruyacağını göstermeyi amaçlamaktadır." 

Yazılım projeleri çoğu zaman teknik bir problemle değil, beklentilerin uyuşmamasıyla zorlanır. 

“Bunu böyle anlamamıştık”, “Bu zaten kapsamdaydı” ya da “Bu aşamada bunu beklemiyorduk” gibi cümleler, genellikle koddan değil; sözleşmede bırakılan boşluklardan doğar. 

İyi yazılmış bir yazılım geliştirme sözleşmesi, kimse fark etmeden çalışır. 
Sorun çıkmaz. Tartışma doğmaz. Çünkü herkes aynı metne bakarak aynı şeyi anlar. 

Bu kapsamda, bugüne kadarki tecrübelerimizden yola çıkarak, aşağıda kapsamı proje başında belirlenen ve klasik Waterfall (Şelale) yaklaşımıyla yürütülen yazılım projelerin de en sık sorunları ele almaya çalıştık. 

Tanımlar Bölümü Gerçekten Okunmalı 

Tanımlar bölümü, çoğu sözleşmede teknik ve sıkıcı bir alan olarak görülür. Bu nedenle hızlıca geçilir ya da önceki bir sözleşmeden kopyalanarak kullanılır. Oysa bu bölüm, sözleşmenin geri kalanının nasıl anlaşılacağını belirleyen temel yapı taşlarından biridir. 

Tanımları yazarken şu bakış açısını akılda tutmak gerekir: 

Bu sözleşmeyi hazırlayan kişiler orada olmadığında, metni okuyan üçüncü bir kişi ne olduğunu anlayabiliyor mu? 

Çünkü bir uyuşmazlık çıktığında, sözleşmeyi yorumlayacak olan taraflar değil; çoğu zaman bir hâkim veya bilirkişi olacaktır. Tanımlar, bu kişilerin projeyi ve tarafların neyi kastettiğini doğru şekilde anlamasını sağlamalıdır. 

“Yazılım”, “teslim edilebilir”, “kabul”, “spesifikasyon” gibi kavramlar gündelik hayatta anlaşılır görünse de, hukuki metinlerde sezgiye bırakılmamalıdır. Tanımlar bölümü bu nedenle yalnızca açıklayıcı değil; sözleşmenin tamamına yön veren bir çerçeve olarak ele alınmalıdır. 

Kapsamı Başta Tanımlanan Projelerde Netlik Hayati Önem Taşır 

Waterfall (Şelale) yaklaşımıyla yürütülen projelerde işin kapsamı, takvimi ve teslimatları en baştan belirlenir. Bu yaklaşım öngörülebilirlik sağlar; ancak bu avantaj, sözleşme yeterince açık yazılmamışsa hızla dezavantaja dönüşebilir. 

İş kapsamı belgesi (SOW), teknik ve fonksiyonel isterleri net şekilde ortaya koymuyorsa, proje ilerledikçe “eksik mi, fazlalık mı” tartışmaları kaçınılmaz olur. Waterfall projelerde kapsam sabit kabul edildiği için, belirsizlik esneklik değil; doğrudan risk yaratır. 

Bu nedenle sözleşmenin dili ne kadar netse, projenin ilerlemesi de o kadar sorunsuz olur. 

İsterler S.M.A.R.T Değilse, Uyuşmazlık Kaçınılmazdır 

Bir yazılım sözleşmesinde en sık sorun yaşanan alanlardan biri, isterlerin (requirements) nasıl ifade edildiğidir. Çoğu sözleşmede isterler; “kullanıcı dostu olacak”, “yüksek performanslı çalışacak” veya “sektör standartlarına uygun olacak” gibi iyi niyetli ama yoruma son derece açık ifadelerle yer alır. 

Bu noktada SMART metodolojisi yalnızca bir proje yönetimi aracı değil, aynı zamanda hukuki netlik sağlayan pratik bir çerçeve sunar. Bir isterin; 
Spesifik (Specific), Ölçülebilir (Measurable), Ulaşılabilir (Achievable), İlgili (Relevant) ve Zamanlı (Time-bound)olması, “neyin teslim edildiği” ve “neyin eksik sayılacağı” konusunda tarafları aynı noktada buluşturur. 

SMART olmayan isterler, genellikle kabul aşamasında sorun yaratır. Çünkü geliştirici açısından iş tamamlanmış gibi görünürken, müşteri beklentisinin karşılanmadığını düşünebilir. Bu durum çoğu zaman kötü niyetten değil, belirsiz tanımlardan kaynaklanır. 

Kapsam Kayması Çoğu Zaman Kötü Niyetten Değil, Eksik Tanımdan Doğar 

Kapsam kayması çoğu zaman kötü niyetli taleplerle ilişkilendirilir. Oysa uygulamada bu durum genellikle başta yeterince net yazılmamış isterlerin doğal sonucudur. 

“Bu zaten kapsamdaydı” veya “biz bunu ayrıca saymıştık” gibi ifadeler, çoğu zaman eksik tanımın ürünüdür. Waterfall projelerde değişiklik yapmak daha maliyetli olduğu için, bu tür belirsizlikler daha erken ve daha sert şekilde ortaya çıkar. 

Bu nedenle değişiklik taleplerinin (“Change Request”) nasıl ele alınacağı sözleşmede mutlaka yazılı bir sürece bağlanmalıdır. Yeni bir talebin yazılı olarak iletilmesi, bu talebin süre, maliyet ve kapsam üzerindeki etkisinin analiz edilmesi ve ancak tarafların bu etkiyi onaylaması hâlinde hayata geçirilmesi, hem projeyi hem de taraflar arasındaki ilişkiyi korur. 

Yazılımın Çalışması Yetmez, Hukuken Kime Ait Olduğu da Net Olmalıdır 

Proje sonunda yazılımın çalışıyor olması önemlidir. 

Ancak uzun vadede asıl kritik konu, bu yazılım üzerindekifikri mülkiyet haklarının kime ait olduğudur. 

Bilindiği üzere ülkemizde yazılım sektöründe sıkça “lisans satışı” veya “lisans kiralama” gibi ifadeler kullanılır. Oysa FSEK açısından bu terimler teknik olarak doğru değildir.  

Uygulamada: 

  • “Lisans satışı” denilen işlem çoğu zaman mali hak devrini, 

  • “Lisans kiralama” isemali hakları kullanım yetkisinin (lisansın) devrini ifade eder. 

Bu ayrım sözleşmede doğru yapılmadığında, tarafların hakları belirsizleşir. 

Burada önemli bir nokta daha vardır: Yazılım geliştirme sözleşmeleri, borçlar hukuku anlamında kural olarak birer eser sözleşmesidir. 

Bu nitelendirme; teslim, kabul, ayıp ve sorumluluk gibi birçok konuda doğrudan sonuç doğurur. Sözleşme bu gerçeklik dikkate alınmadan yazıldığında, beklentilerle hukuki sonuçlar örtüşmez. 

Açık Kaynak Kod Kullanımı Şeffaflık Gerektirir 

Açık kaynak bileşenler yazılım geliştirmede yaygındır. Ancak her açık kaynak lisansı aynı serbestliği tanımaz ve bazıları beklenmedik yükümlülükler doğurabilir. 

Özellikle kapsamı baştan belirlenmiş projelerde, kullanılan üçüncü taraf bileşenlerin lisans etkilerinin önceden bilinmesi kritik önemdedir. Aksi hâlde teslim edilen yazılımın ticari kullanımında sınırlamalar ortaya çıkabilir. 

Bu nedenle kullanılan açık kaynak bileşenlerin ve lisans türlerinin sözleşmede açıkça belirtilmesi gerekir. 

Kabul Süreci Tanımlı Değilse, “Bitti” Kavramı Belirsizleşir 

Waterfall projelerde aşamalar net olsa da, kabul süreci yeterince tanımlı değilse proje fiilen bitmeyebilir. Teslim edilen yazılımın hangi kriterlere göre kabul edileceği açık değilse, taraflar aynı noktaya farklı zamanlarda ulaşır. 

Test süreleri, hata sınıflandırmaları ve nihai kabul mekanizması baştan yazılı hâle getirildiğinde, kabul süreci hem daha kısa hem de daha objektif olur. Bu netlik, projenin finansal ve hukuki olarak kapanabilmesi için de kritik önemdedir. 

Sorumluluk ve Tazminat Maddeleri Bir Denge Meselesidir 

Kapsam ve bedelin baştan belirlendiği projelerde, risklerin sözleşme yoluyla dengelenmesi büyük önem taşır. Sorumluluk sınırları net değilse, küçük bir hata orantısız sonuçlar doğurabilir. 

Sorumluluğun makul bir tavanla sınırlandırılması geliştiriciyi korurken, belirli istisnaların açıkça düzenlenmesi müşterinin temel çıkarlarını güvence altına alır. Amaç, taraflardan birini avantajlı kılmak değil; ilişkiyi öngörülebilir ve sürdürülebilir hâle getirmektir. 

Fesih Maddeleri Kötü Senaryolar İçin Bir Güvencedir 

Her proje planlandığı gibi gitmeyebilir. Bu nedenle fesih hâlinde nelerin teslim edileceği, hangi yükümlülüklerin devam edeceği ve bedelin nasıl hesaplanacağı (kıstelyevm/pro rata vs.) açıkça yazılmalıdır. 

Belirsiz fesih hükümleri, çoğu zaman sorunun kendisinden daha yıpratıcı olur. İyi yazılmış fesih maddeleri, zor bir süreci daha yönetilebilir hâle getirir 

“Standart” Maddeler Aslında Hiç de Standart Değildir 

Son olarak bir de “standart” maddeler vardır. “Genel/Diğer Hükümler” olarak belirtilen bu hükümler Yetkili mahkeme, uygulanacak hukuk ve bildirim usulleri gibi hükümler genellikle sona bırakılır veya hızlıca geçilir. 

Oysa bir uyuşmazlık çıktığında veya ortada bir mücbir sebep olduğunda en belirleyici maddeler çoğu zaman bunlar olur. 

Bu hükümler gerçekten standart değildir; her proje ve taraflar özelinde ayrıca düşünülmelidir. 

Genel Değerlendirme 

Yazılım geliştirme sözleşmeleri çoğu zaman yalnızca “imzalanması gereken” belgeler olarak görülür. Proje başladıktan sonra ise sözleşmenin .pdf kopyası proje klasörüne kaydedilir ve muhasebeye gönderilir. Oysa pratikte, projede yaşanan birçok sorunun cevabı zaten sözleşmenin içerisindedir, başka bir deyişle sözleşme proje yönetimi için bir referans noktasıdır. 

Dolayısıyla, Sözleşmeler, yalnızca hukuki riskleri değil; operasyonel belirsizlikleri de yönetir. Tanımların net yazılması, isterlerin ölçülebilir olması, değişiklik taleplerinin yazılı bir sürece bağlanması veya kabul kriterlerinin baştan belirlenmesi, doğrudan proje yönetiminin konusudur. 

Özellikle waterfall yaklaşımıyla yürütülen projelerde, sözleşme ne kadar net yazılmışsa, proje o kadar az sürprizle ilerler. Belirsizlik arttıkça, teknik konular hızla sözleşmesel tartışmalara dönüşür. 

Bu nedenle proje yöneticileri ve yazılım ekiplerinin, sözleşmenin hazırlanması veya revizyonu aşamasında hukuk birimiyle erken temas kurması, teknik beklentilerin hukuki dile doğru şekilde yansıtılması faydalı olacaktır sağlar. 

Bu işbirliği, projeyi yavaşlatan bir adım değil; ileride yaşanabilecek uyuşmazlıkların ve gereksiz tartışmaların önüne geçen koruyucu bir adımdır. 

Yaşar K. Canpolat
27 Şubat 2026 Cuma
Diğer Blog İçerikleri
Loading...