Kaynak Kod Escrow Sözleşemeleri, bir taraftan yazılım sahibinin sadece proje ücreti ile ölçülemeyecek emeğini koruma altına alırken, diğer taraftan da müşterinin yazılım ile ilgili olarak geleceğe yönelik kaygılarını teminat altına almaktadır.

Bir önceki yazımız olan Yazılım Sözleşmesi Nedir ve Kaynak Kod Teslimi yazımızda yazılım sözleşmelerinin genel özelliklerini açıklamıştık. Kaynak Kod Teslimi konusunda ise e uygun çözüm olarak şu an itibariyle Kaynak Kod Yazılım Escrow Sözleşmeleri olduğunu belirtmiştik. Bu yazımızda ise Kaynak Kod Yazılm Escrow Sözleşmesi’ni açıklayacağız. Ancak konunun daha iyi anlaşılabilmesi için öncelikle bir takım teknik açıklamalarda bulunmak gerekmektedir.

Yazılım kavramı incelendiğinde, alt nitelikler olarak farklı bileşenlerden oluşmaktadır. Escrow sözleşmeleri kapsamında yazılım konusu düşünüldüğünde, dokümantasyonlar, proje analizleri, kodun çalışması için gerekli olabilecek derleyiciler, şifreler vs. tamamı akla gelmelidir. Yazılım kavramı literatürde kaynak kod ve nesne kod olarak iki farklı kodu içeren bir yapı olarak nitelendirilse de, PHP, HTML, Javascript gibi derlenmelerine gerek duyulmadan çalışabilen tek tip kodlardan da oluşabilmektedir. Veya C++, C# gibi programlama dillerinde olduğu gibi kodlama tamamlandıktan sonra yazılımın çalışabilmesi için derlenmesi gereken kodlardan da oluşabilmektedir. Özellikle derlenmeleri gereken yazılım dilleri için Escrow sözleşmelerinin konusunu tabi ki kaynak kod ve nesne kodu birlikte oluşturacaktır. Şöyle ki, sadece derlendikten sonra devri gerçekleşen nesne kodun değiştirilmesi mümkün değildir (Tersine mühendislik çalışmalarını konu dışı tutuyorum). Başka bir durum ise kaynak kodun şifrelenmesidir. Şifrelenmiş kaynak kodun devri de Escrow sözleşmeleri için kabul edilemez bir durumdur. Bu bağlamda Escrow sözleşmelerinde kaynak kod dendiği zaman, değişiklik yapılmasına imkan tanıyan kodlar anlaşılmalıdır.

Escrow sözleşmelerinin doğmasında ki temel sebep olarak, yazılım sahibinin uzun yıllar sonucu know-how ile geliştirdiği yazılıma ait kodları paylaşmak istememesi, kullanıcı veya müşteri bakımından ise ciddi maddi bütçelerle ve uzun yıllar emek verdiği projenin değişen teknolojiler karşısında gerekli güncellemelerin yapılmasını sağlamak, oluşabilecek yazılım hatalarının giderilmesini teminat altına almak, bir anlamda da kendisini güvenceye alma isteğinin olması sonucu yazılım sahibi ve müşteri arasındaki çıkar çatışmasının önüne geçme isteğidir diyebiliriz.

Amerika Birleşik Devletleri ve anglo-sakson hukuk sisteminde ticaret haytatının bir parçası haline gelen Escrow sözleşmesi, ülkemizde de etkili olan kıta(kara)  avrupası hukuk sistemini benimseyen ülkelerde yaygın olarak kullanılmamaktadır.  Escrow sözleşmesinin tanımına baktığımız zaman; saklanabilmesi fiziken veya hukuken elverişli olan bir şeyin, bir takım koşulların gerçekleşmesine bağlı olarak diğer tarafa devredilmesini gerektiren, bu süreç içerisinde de şartların gerçekleşmesine bağlı olarak saklanması için taraflarca kararlaştırılan bağımsız üçüncü kişi yada kuruma devredien şeyi konu edinen sözleşmedir.

Kaynak Kod Escrow sözleşmesinin tarafları; Yazılımı meydana getiren kişi veya firma, Müşteri ve Escrow aracısından oluşmaktadır. Yazılım sahibinin üzerine düşen öncelikle yazılım ile ilgili tüm dokümanları, yazılımın stabil olarak çalışabilmesi için gerekli olan ortamları, kaynak kodların tamamını, kaynak kodların okunabilmesi için gerekli olan yönlendirmeleri, derleme gerektiren bir yazılım dili ise gerekli olan derleyiciyi, şifre gerektiren bölümler var ise şifreleri dolayısı ile yazılımın tekrardan derlenip çalışabilmesi için gerekli olan tüm gereksinimleri escrow aracısına teslim etmelidir. Burada önem arz eden bir konuda yazılımda güncellemeler meydana geliyorsa en yeni halinin de escrow aracısına ulaştırılması gerekliliğidir. Ayrıca sözleşmeden kaynaklanan ücreti ödeyecek taraf yazılım sahibidir. Escrow aracısı ise tarafsız olarak yetkilendirilen kişi veya kurumdur. Ülkemizde İstanbul Teknik Üniversitesi (İTÜ) bünyesinde bulunan Ulusal Yazılım Sertifikasyon Merkezi (UYSM), kaynak kod escrow sözleşmelerinde escrow aracılığı işlemleri yapma konusunda yetkili kılınmıştır. Escrow aracısının yükümlülükleri olarak, sözleşme kapsamında gerçekleşen şartların gerçekleşmesi haline yazılıma ait kaynak kod ve dokümanların tamamını duruma göre yazılım sahibine veya müşteriye iade etmektir. Bu şartların yanında bir takım doğal durumlarında var olduğunu söylemek gerekir. Bu durumlar; yazılım sahibinin yükümlülüklerini yerine getirmemesi, projede yer alan ve yazılımın meydana gelmesinde kilit personel olarak yer alan yazılımcının (işten ayrılık, hastalık, ölüm vb.) desteğini kesmesi, yazılım firmasının iflas etmesi olarak sıralayabiliriz. Ayrıca escrow aracısı kendisine teslim edilen dokümanların virüs, fiziksel zararlar vb. nedenlerden dolayı meydana gelebilecek yazılımın kullanılamamasına yol açacak sebeplere karşı önlemlerini almış olmalıdır.

Yukarıda da açıklamaya çalıştığımız gibi Kaynak Kod Escrow sözleşemeleri, bir taraftan yazlıım sahibinin sadece proje ücreti ile ölçülemeyecek emeğini koruma altına alırken, diğer taraftan da müşterinin yazılım ile ilgili olarak geleceğe yönelik kaygılarını teminat altına almaktadır.

* Üniversite'den hocam olan Doç. Dr. Dilşat KESKİN'e ait  Kaynak Kod (Source Code) Escrow Sözleşmesi adlı makaleden yararlanılmıştır.