Tüm yazılar

Web

Özel Yazılım Geliştirme: Ne Zaman, Nasıl, Kimden?

Siteniz için yazın →

Özel yazılım geliştirme, belirli bir işletmenin ihtiyaçlarına göre yazılımın planlanması, tasarlanması, kodlanması ve test edilmesidir. Buna özel yazılım yaptırmak da denir. Hazır yazılımda işinizi programa uydurursunuz, özel yazılımda program işinize uyar. Özel yazılım, iş akışınız size özgüyse, sistemleri birbirine bağlamanız gerekiyorsa ya da yazılım sattığınız ürünün kendisiyse mantıklıdır.

Bu yazı, bir yazılım ekibine iş vermeyi düşünen işletme sahibi ya da yöneticiler için. Özel yazılımın ne zaman gerçekten gerektiğini, başlamadan önce neyin hazırlanacağını, sahiplik ve bakımın nasıl düşünüleceğini ve doğru ekibin nasıl seçileceğini anlatıyoruz. Kod bilmeniz gerekmiyor. Örnek olarak kendi geliştirdiğimiz Plainhub'dan birkaç mühendislik kararını paylaşıyoruz.

Konunun adım adım süreç tarafı ürün türüne göre ayrı yazılarda: web için web sitesi yaptırma süreci, mobil için mobil uygulama fiyatları yazısına bakabilirsiniz. Burada karar tarafına bakıyoruz.

Özel yazılım pratikte neye benzer?

Özel yazılım bir web platformu ya da mobil uygulama olabilir ve müşterileriniz kullanır. Bir yönetim paneli, teklif veya sipariş sistemi de olabilir ve ekibiniz her gün kullanır. Sistemlerinizin birbiriyle veri alışverişi yapmasını sağlayan entegrasyonlar ve otomasyonlar ya da ürüne eklenen bir AI özelliği de bu gruba girer. Ortak noktaları, hazır bir ürünün karşılayamadığı bir ihtiyaçtan doğmalarıdır. Bayilerinize özel fiyat ve sipariş ekranı istiyorsanız bu ihtiyacın tipik bir örneği olan B2B portal yazısına bakabilirsiniz.

Hazır yazılım mı, özel yazılım mı?

Genel işler için hazır yazılım, size özgü süreçler için özel yazılım uygundur. Fark tabloda özetleniyor:

Ölçüt Hazır yazılım Özel yazılım
Uyum İşinizi programa uydurursunuz Program işinize uyar
Başlangıç Hızlı ve ekonomik Kapsam ve geliştirme gerekir
Uygun durum Muhasebe, e-posta, basit randevu Özgün süreç, sistem entegrasyonu, sattığınız ürün
Sınır Eklenmeyecek özellikler, büyüyen abonelik Bakım ve sahiplik sorumluluğu sizde

Her ihtiyaç için özel yazılım gerekmez. Muhasebe, e-posta, ekip içi yazışma ya da basit bir randevu takvimi gibi işlerde piyasada olgun ve uygun fiyatlı ürünler var. İhtiyacınız sektörünüzdeki pek çok işletmeninkiyle aynıysa, hazır bir ürünle başlamak hem daha hızlı hem daha ekonomiktir.

Özel yazılım ise şu durumlarda mantıklı hale gelir:

  • İş akışınız size özgü. Hazır ürün için sürecinizi bozmanız ya da her gün elle ara işler yapmanız gerekiyorsa, yazılım size değil siz yazılıma çalışıyorsunuz.
  • Birden fazla sistemi birbirine bağlamanız gerekiyor. Veriler bir programdan diğerine elle taşınıyorsa hem zaman kaybedersiniz hem hata üretirsiniz.
  • Yazılım, sattığınız ürünün kendisi. Rakiplerinizin de kullanabildiği hazır bir ürünle fark yaratmak zordur.
  • Hazır ürünün sınırlarına dayandınız. Kullanıcı ya da işlem sayısı arttıkça abonelik maliyeti büyüyorsa veya ihtiyacınız olan özelliği hiç eklemeyecekleri belliyse, özel çözüm uzun vadede daha doğru olabilir.

İki yol birbirini dışlamaz. Birçok işletme genel işler için hazır ürünleri kullanır, kendine özgü süreçleri için özel yazılım geliştirir ve ikisini entegrasyonlarla birbirine bağlar. Bir fikri önce hazır araçla denemek de makul bir ara yoldur. Sınırına dayandığınızda neyin eksik olduğunu somut olarak bilirsiniz ve özel yazılımın kapsamını bu bilgiyle çizersiniz.

Özel yazılımda ürün kararları nasıl verilir? Plainhub'dan beş karar

Yazılımın ürünün kendisi olduğu bir örnek olarak kendi geliştirdiğimiz Plainhub'a bakalım. Plainhub, startup'lar için bir finans platformu. Tablolardaki runway hesabı haftalar içinde eskiyor, muhasebe yazılımları ise geçmişi ayrıntılı kaydediyor ama geleceğe dair bir şey söylemiyor. Hazır bir ürün bu boşluğu kapatmadığı için özel yazılım yazdık. Bir yazılım projesinin yükü ekranlardan çok arkasındaki kararlardadır. Bizim kararlarımız şunlardı.

Banka bağlantısı yerine olay kaydı: kurucu bir ödemeyi, yeni bir müşteriyi ya da işe alımı sade bir dille kaydediyor; model nakit, burn, MRR ve runway'i anında yeniden hesaplıyor. Hiçbir şey bağlanmıyor, yüklenmiyor. Bedeli, rakamların kaydedilen olaylar kadar güncel olması.

Taslak ve onaylı plan ayrımı: taslak plan hiçbir şeyi değiştirmiyor, yalnızca runway'e etkisini gösteriyor. Onaylandığında aylık etkisi başlangıç tarihinden itibaren burn'e giriyor; gelecek çeyrek için planlanan bir işe alım bugünkü runway'i kısaltmıyor. İptal edilen bir araç eksi tutarla girilince runway uzuyor. Kararı vermeden önce denemek bu ekranın amacı.

Roller ve bölüm bazlı izinler: ekip üyeleri rollerle davet ediliyor ve herkes yalnızca ihtiyaç duyduğu bölümü görüyor. Her çalışma alanı yalnızca kendi şirketine açık. Bu, sonradan eklenmesi en zor işlerden biri olduğu için veri modeli ilk günden buna göre kuruldu.

Rapor için ayrı bir sistem kurmamak: finansal rapor yazdırmaya göre düzenlenmiş bir sayfa ve tarayıcının yazdırma penceresinden PDF olarak kaydediliyor. Ayrı bir PDF üretim hattı kurmak yerine tarayıcının var olan yeteneğini kullandık.

Yapay zeka ajanı önerir, kurucu onaylar: ajan anladığı tutarı gösteriyor ve onay gelmeden modeli değiştirmiyor.

Bu örnekten kendi projeniz için çıkarabileceğiniz dört ders var:

  • Önce problem, sonra özellik. Plainhub'ın problemi "runway'i her an görebilmek" olarak tanımlandı ve özellikler bu soruya hizmet ediyor.
  • Küçük bir çekirdek. İlk model yedi soruyla kuruluyor, bu da kullanıcının hızla sonuç görmesini sağlıyor.
  • Tasarım, hesap ve yapay zeka aynı ekipte. Ayrı ekiplere bölünürse aradaki ayrıntılar kaybolur.
  • Sınırın açık söylenmesi. Plainhub muhasebe yazılımı olmadığını, banka ekstresi almadığını baştan söylüyor.

Özel yazılım yaptırmadan önce ne hazırlanmalı?

İlk görüşmeye şu altı başlığı netleştirerek gelirseniz zaman kazanırsınız ve kapsam doğru çıkar:

  • Problem: yazılım hangi sorunu çözecek? Bunu tek cümleyle yazabiliyor musunuz?
  • Kullanıcılar: yazılımı kim kullanacak: müşterileriniz mi, ekibiniz mi, ikisi birden mi?
  • Bugünkü durum: bu işi şu an nasıl yapıyorsunuz, hangi araçları kullanıyorsunuz ve nerede tıkanıyorsunuz?
  • İlk sürüm: olmazsa olmaz işlevler hangileri, hangileri sonraya kalabilir?
  • Bağlantılar: yazılımın konuşması gereken mevcut sistemler neler (muhasebe, CRM, ödeme, e-posta)?
  • Veri: kullanılacak veriler nerede duruyor ve hangi kişisel verileri içeriyor?

Hepsine kesin cevabınızın olması gerekmez, iyi bir ekip bunları sizinle birlikte netleştirir. Bugünkü sürecinizi ne kadar somut anlatırsanız önerilen çözüm o kadar isabetli olur.

Özel yazılımın maliyetini ne belirler?

Bu yazıda tutar vermiyoruz, çünkü özel yazılım kalemleri her projede başka ağırlıkta. Teklifleri karşılaştırırken şu kalemlere bakın:

  • Kapsam: ilk sürümdeki işlev sayısı ve her işlevin ne kadar özel kural içerdiği.
  • Entegrasyonlar: muhasebe, CRM, ödeme ya da e-posta gibi sistemlerin sayısı ve API'lerinin kalitesi.
  • Kullanıcı rolleri ve yetkiler: kimin neyi görüp değiştirebildiği ne kadar ayrıntılıysa iş o kadar artar. Plainhub'da roller ve bölüm bazlı izinler bu yüzden ayrı bir tasarım konusuydu.
  • Veri ve güvenlik: kişisel veri işleniyorsa saklama, erişim ve silme akışları.
  • AI özelliği: modelin kendisi kadar, ajanın hangi veriyi okuyacağı ve işlem yapmadan önce nasıl onay alacağı da iş demek.
  • Bakım: yayından sonraki güncelleme ve destek.

Kesin sayı ancak yazılı kapsamla çıkar. Web tarafında maliyetin nasıl kurulduğunu web sitesi fiyatları yazısında kalem kalem anlattık.

Yazılım geliştirme ekibi seçerken nelere bakılmalı?

Ekip seçerken yayına çıkmış ürünlerine, tasarım ile kodun aynı ekipte olmasına, sizi dinleyip dinlemediğine, kapsamı yazıya dökmesine ve teslim sonrası desteğe bakın. Bu karar fiyattan önce gelir:

  • Yayına çıkmış ürünleri var mı? Portföyde yalnızca vitrin sayfaları mı, yoksa çalışan ürünler mi var? Canlı bir ürünü açıp denemek her sunumdan daha çok şey anlatır.
  • Tasarımı, kodu ve AI tarafını aynı ekip mi yürütüyor? Devir teslimin çok olduğu projelerde bilgi kaybolur ve süreç yavaşlar.
  • Önce sizi dinliyor mu? İhtiyacınızı anlamadan fiyat veren ekip, sonradan kapsam tartışmasına sürüklenir.
  • Kapsamı yazıya döküyor mu? Hangi işlevlerin ilk sürümde olduğu, hangilerinin sonraya kaldığı kâğıda geçmeli.
  • Teslim sonrasında kime ulaşacaksınız? Yazılım yayına çıkınca iş bitmez.

OZGN Studio'da fikirden yayına kadar tüm süreci tek ekip olarak üstleniyoruz; Plainhub ve NovaOracles gibi ürünlerimizi işler sayfamızda görebilirsiniz. Daha önce çalışılmış bir iki kişiyle kısa bir konuşma da iletişimin nasıl olduğunu ve iş bittikten sonra ekibe ulaşılıp ulaşılamadığını gösterir.

Özel yazılımın kodu ve verisi kime ait olmalı?

Kod, tasarım, alan adı ve sunucu hesapları sizin olmalı ve bunlar sözleşmede açıkça yazılmalıdır. Özel yazılım yaptırırken en çok atlanan konu sahiplik. Projeniz için geliştirilen tasarım ve kodun mülkiyet hakları, alan adı, sunucu hesapları ve analiz araçları sizin adınıza olmalı. Bunlar bir ekibe emanet bırakılırsa ileride yol ayrımına geldiğinizde sorun çıkar. Sağlıklı bir teslim yazılımla birlikte erişim bilgilerini de size verir.

Kişisel veriler de baştan konuşulmalı. Yazılım müşteri verisi işleyecekse KVKK kapsamında hangi verinin nerede tutulacağı, kimin erişebileceği ve silme taleplerinin nasıl karşılanacağı tasarımın parçasıdır; sonradan eklenmesi zordur. Yazılıma bir yapay zeka özelliği eklenecekse AB'nin Yapay Zeka Yasası da şeffaflık ve risk yükümlülükleri tanımlıyor.

Yazılım yayına çıktıktan sonra ne olur?

Yayından sonra önce bir destek süresi başlar. Bu dönemde ürünün çalışması takip edilir ve ortaya çıkan teknik sorunlar çözülür.

Ardından sürekli bakım gelir. Kullandığınız kütüphaneler ve servisler güncellenir, güvenlik açıkları kapatılır, tarayıcılar ve işletim sistemleri değişir. Kullanıcılar ürünü kullandıkça yeni ihtiyaçlar çıkar. Bakımı yapılmayan yazılım zamanla yavaşlar, güvenlik riski biriktirir ve sonunda baştan yazılması gereken bir yüke dönüşür. Bakımı baştan ayrı bir kalem olarak düşünün. Yazılımınızda AI özelliği olacaksa hazır araç mı özel geliştirme mi sorusunu yapay zeka örnekleri ve kullanım alanları yazısında ele aldık.

Sık Sorulan Sorular

Özel yazılım yaptırmak ne zaman mantıklıdır?

İş akışınız size özgüyse, birden fazla sistemi birbirine bağlamanız gerekiyorsa, yazılım doğrudan müşterilerinize sunduğunuz ürünün kendisiyse ya da hazır ürünün sınırlarına dayandıysanız. İhtiyacınız sektördeki pek çok işletmeninkiyle aynıysa hazır yazılım genellikle daha hızlı ve ekonomik bir başlangıçtır.

Hazır yazılım mı, özel yazılım mı seçmeliyim?

Hazır yazılımda işinizi programa uydurursunuz; özel yazılımda program işinize uyar. Genel işler için (muhasebe, e-posta, basit randevu) olgun hazır ürünler yeterlidir. Kendinize özgü süreçler için özel yazılım düşünün. Birçok işletme ikisini birlikte kullanır ve entegrasyonlarla birbirine bağlar.

Yazılım yaptırmadan önce ne hazırlamalıyım?

Çözmek istediğiniz problemi ve yazılımı kimin kullanacağını yazın. Bugün bu işi nasıl yaptığınızı, hangi araçları kullandığınızı ve nerede tıkandığınızı anlatın. İlk sürümde olması şart olan işlevleri listeleyin ve bağlanması gereken sistemleri not edin. Bu hazırlık ilk görüşmeyi kısaltır ve kapsamın doğru çıkmasını sağlar.

Özel yazılımın maliyetini ne belirler?

Kapsam, entegrasyon sayısı, kullanıcı rolleri ve yetkiler, kişisel veri ve güvenlik gereksinimleri, varsa AI özelliği ve yayın sonrası bakım. Ekran sayısı tek başına belirleyici değil. Kesin rakam yazılı bir kapsam belgesiyle çıkar; aynı belgeyi birkaç ekibe vermek teklifleri karşılaştırılabilir yapar.

Yazılımın kodu ve mülkiyeti kime ait olur?

Bu sözleşmede açıkça yazılmalı. Projeniz için özel olarak geliştirilen tasarım ve kodun haklarının size ait olduğundan, alan adı ve sunucu hesaplarının sizin adınıza açıldığından emin olun. İleride başka bir ekiple çalışmak isterseniz ürününüzü yanınızda götürebilmeniz buna bağlıdır.

Yazılım yayına çıktıktan sonra ne oluyor?

Yayından sonra belirli bir destek süresi başlar; bu dönemde ürünün çalışması takip edilir ve ortaya çıkan teknik sorunlar çözülür. Ardından sürekli teknik destek, güncellemeler ve yeni özelliklerle çalışma devam edebilir. Yazılım, kullanıldıkça ihtiyaçları değişen yaşayan bir üründür.

Özel yazılım yaptırmaya nereden başlanır?

Özel yazılım net tanımlanmış bir problemle başlar. Bugünkü sürecinizi, tıkandığınız yeri ve ilk sürümden beklentinizi anlatabiliyorsanız ilk adımı atmışsınız demektir.

Web tasarım ve geliştirme hizmetimizde web siteleri ve web uygulamaları geliştiriyoruz; ürününüze AI özellikleri, yapay zeka ajanları ya da otomasyonlar eklemek istiyorsanız AI geliştirme tarafında da aynı ekiple çalışıyorsunuz. Projenizi konuşmak için hello@ozgnstudio.com adresine yazmanız yeterli.