Yazılım Bakım ve Destek Anlaşması Neleri Kapsamalı?

Yazılım yayına alındıktan sonra da ilgi ister. Güncellemelerden yedeklemeye, hata önceliklendirmeden raporlamaya kadar bir bakım anlaşmasında bulunması gereken başlıkları anlatıyoruz.

İçindekiler
  1. Yazılım neden bakım ister?
  2. Yazılım bakım anlaşması hangi başlıkları içermeli?
  3. Önceliklendirme ve yanıt süreleri
  4. Kapsam dışı işler ve ek talepler
  5. Raporlama, erişim ve süre
  6. Hangi işletme ne kadar bakıma ihtiyaç duyar?
  7. Bu işi nasıl birlikte yaparız?
  8. Sık sorulan sorular
  9. Sonuç

Yazılımınız aylardır sorunsuz çalışıyor ve bir sabah ödeme sayfası açılmıyor. Kimi arayacaksınız, ne kadar sürede dönüş alacaksınız ve bu düzeltme için ayrıca ödeme yapacak mısınız? Bu soruların cevabı, önceden yapılmış bir yazılım bakım anlaşması varsa birkaç dakikada netleşir; yoksa pazarlıkla geçen saatlere dönüşebilir. Bu yazıda bir bakım ve destek anlaşmasının hangi başlıkları kapsaması gerektiğini, hem işletmenin hem geliştiricinin bakış açısından anlatıyorum.

Yazılım neden bakım ister?

Bir yazılım, yazıldığı gün dondurulmuş bir ürün değildir. Üzerinde çalıştığı sunucu, işletim sistemi, programlama dili sürümü ve kullandığı kütüphaneler sürekli güncellenir. Bağlandığı ödeme, kargo veya e-fatura servisleri de zaman zaman kurallarını değiştirir. Bunlara ayak uydurmayan bir yazılım, bir gün güvenlik açığı veya uyumsuzluk nedeniyle sorun çıkarır.

Bakım, bu değişimleri önceden takip edip yazılımı çalışır ve güvenli durumda tutma işidir. Arıza çıktıktan sonra koşturmak yerine, arızanın çıkma olasılığını azaltmayı hedefler.

Yazılım bakım anlaşması hangi başlıkları içermeli?

Önleyici bakım

  • Sunucu, yazılım çatısı ve kütüphanelerin güvenlik güncellemeleri
  • Düzenli yedekleme ve yedekten geri dönüşün belirli aralıklarla denenmesi
  • Sitenin veya servisin erişilebilirliğinin izlenmesi
  • Disk alanı, veritabanı büyüklüğü ve performansın takibi
  • SSL sertifikası ve alan adı yenileme tarihlerinin kontrolü

Yedeklemenin nasıl kurgulanması gerektiğini otomatik yedekleme sistemi yazısında, erişilebilirlik takibini ise uptime izleme yazısında ayrıntılı anlattım.

Düzeltici bakım

Mevcut işlevlerde ortaya çıkan hataların giderilmesidir. Anlaşmada, hangi tür sorunların bu kapsamda değerlendirileceği açıkça tanımlanmalıdır. Örneğin teslim edilmiş bir rapor yanlış toplam veriyorsa düzeltici bakım kapsamındadır; yeni bir rapor türü istemek ise geliştirme talebidir.

Uyarlayıcı bakım

Dış dünyadaki değişikliklere uyum sağlama işidir: Bir ödeme kuruluşunun API sürümünü güncellemesi, mobil işletim sistemlerinin yeni gereksinimler getirmesi veya tarayıcıların bir özelliği kaldırması gibi. Bu işler bazen küçük, bazen kapsamlı olabilir; anlaşmada nasıl ele alınacağı yazmalıdır.

Önceliklendirme ve yanıt süreleri

Her sorun aynı aciliyette değildir. İyi bir yazılım bakım anlaşması, sorunları önem derecesine göre sınıflandırır ve her sınıf için bir yanıt beklentisi tanımlar. Kesin süreler işletmenin ihtiyacına ve anlaşmanın kapsamına göre belirlenir; aşağıdaki tablo yaygın bir sınıflandırma örneğidir:

Öncelik Örnek durum Beklenen yaklaşım
Kritik Sistem tamamen erişilemiyor, ödeme alınamıyor En kısa sürede müdahale, geçici çözüm ardından kalıcı düzeltme
Yüksek Önemli bir işlev çalışmıyor ama sistem kullanılabiliyor Aynı iş günü içinde inceleme
Normal Belirli durumlarda ortaya çıkan, işi durdurmayan hata Planlı bir sonraki çalışma içinde düzeltme
Düşük Görsel kusurlar, küçük iyileştirme önerileri Toplu güncellemelerle ele alma

Burada yanıt süresi ile çözüm süresi arasındaki farkı da netleştirmek gerekir. Yanıt, sorunun ele alındığının bildirilmesidir; çözüm ise sorunun giderilmesidir. Bazı sorunlar hızlıca yanıtlanıp çözümü daha uzun sürebilir.

Kapsam dışı işler ve ek talepler

Anlaşmazlıkların büyük bölümü, bakım ile yeni geliştirme arasındaki sınırın belirsiz kalmasından doğar. Anlaşmada şu konuların açıkça yazılması önerilir:

  1. Yeni özellik, ekran veya rapor talepleri bakım kapsamında mı, ayrı fiyatlanacak mı?
  2. Aylık belirli bir geliştirme saati dahil mi, kullanılmayan süre devrediliyor mu?
  3. Müşterinin veya üçüncü kişilerin sunucuda yaptığı değişikliklerden doğan sorunlar nasıl ele alınacak?
  4. Üçüncü taraf hizmetlerin ücretleri (sunucu, lisans, SMS, e-posta servisi) kime ait?
  5. İçerik girişi veya ürün yükleme gibi operasyonel işler kapsamda mı?

Bu ayrım, ana proje sözleşmesindeki garanti maddesiyle de uyumlu olmalıdır. Proje sözleşmesinde nelere dikkat edilmesi gerektiğini yazılım sözleşmesi rehberinde ele aldım.

Raporlama, erişim ve süre

Bakım hizmetinin görünür olması, işletme açısından önemlidir. Aylık ya da dönemsel kısa bir rapor; yapılan güncellemeleri, alınan yedekleri, karşılaşılan sorunları ve önerileri içerebilir. Böylece ödediğiniz bakım bedelinin karşılığını somut olarak görürsünüz.

Anlaşmada ayrıca sunucu ve yönetim erişimlerinin kimde olduğu, anlaşma sona erdiğinde erişim bilgileri ile güncel kaynak kodunun nasıl teslim edileceği ve anlaşmanın süresi ile yenileme koşulları yer almalıdır. Bu maddeler, ileride başka bir geliştiriciyle çalışmaya karar verdiğinizde geçişi sorunsuz kılar. Hukuki ayrıntılar için kesin görüşü bir hukukçudan almanızı öneririm.

Hangi işletme ne kadar bakıma ihtiyaç duyar?

Bakım ihtiyacı, yazılımın işinizdeki rolüne göre değişir. Tanıtım amaçlı ve nadiren güncellenen bir kurumsal sitede temel güncelleme ve yedekleme çoğu zaman yeterlidir. Buna karşılık ödeme alan bir e-ticaret sitesi, randevu sistemi veya işletmenin her gün kullandığı bir yönetim paneli için düzenli izleme ve hızlı müdahale gerekir. Kendinize şu soruyu sorun: Bu sistem bir gün çalışmazsa işim ne kadar etkilenir? Cevap, anlaşmanın kapsamını belirlemenize yardımcı olur.

Bu işi nasıl birlikte yaparız?

  1. Mevcut durumu inceleme: Yazılımınızın altyapısını, kullanılan sürümleri, yedekleme düzenini ve bağlı servisleri gözden geçiririm; benim geliştirmediğim sistemler için de bu inceleme ilk adımdır.
  2. Kapsam ve teklif: Önleyici, düzeltici ve uyarlayıcı bakım kalemlerini, öncelik sınıflarını ve kapsam dışı işleri açıkça yazan bir anlaşma taslağı hazırlarım.
  3. Kurulum: Otomatik yedekleme, erişilebilirlik izleme ve güncelleme düzenini kurar, test ortamında güncellemeleri deneyerek canlı sisteme aktarırım.
  4. Süreklilik ve raporlama: Dönemsel raporlarla yapılan işleri paylaşır, destek taleplerini anlaştığımız kanal ve önceliklere göre karşılarım.

Yazılımınız için bir bakım planı oluşturmak isterseniz iletişim sayfasından bana ulaşabilirsiniz.

Sık sorulan sorular

Garanti süresi varken bakım anlaşmasına ihtiyaç var mı?

Garanti, teslim edilen işlevlerdeki hataları belirli bir süre kapsar. Güvenlik güncellemeleri, yedekleme, izleme ve dış servis değişikliklerine uyum ise genellikle garanti dışındadır; bu işler bakım anlaşmasıyla güvence altına alınır.

Başka birinin yazdığı yazılım için bakım anlaşması yapılabilir mi?

Evet, ancak önce kodun ve altyapının incelenmesi gerekir. Kaynak koduna ve sunucu erişimine sahip olmanız, bu geçişin sağlıklı yapılabilmesi için önemlidir.

Bakım bedeli neye göre belirlenir?

Yazılımın karmaşıklığı, bağlı servis sayısı, beklenen yanıt hızı, izleme kapsamı ve dahil edilen geliştirme saati gibi etkenler bedeli belirler. Kritik sistemler için daha kapsamlı bir anlaşma gerekir.

Bakım anlaşmasını sonlandırırsam ne olur?

Anlaşmada belirlenen koşullara göre erişim bilgileri, güncel kaynak kodu ve yedekler size teslim edilmelidir. Bu maddenin baştan yazılı olması, geçişi kolaylaştırır.

Sonuç

İyi hazırlanmış bir yazılım bakım anlaşması; önleyici, düzeltici ve uyarlayıcı bakımı, öncelik sınıflarını, kapsam dışı işleri ve raporlamayı netleştirerek sisteminizin uzun süre güvenle çalışmasını sağlar. Bakım ihtiyacınızı birlikte değerlendirmek isterseniz bana yazabilirsiniz.