İçeriğe geç

Özel yazılım geliştirme

Hazır paketlerin kapsamadığı işler için, şirketinizin kendi akışına göre yazılan yazılım. Kaynak kodun ve verinin sahibi siz olursunuz.

Ne zaman özel yazılım gerekir

Hazır bir program şirketinizin yaptığı işin yüzde seksenini karşılıyorsa, kalan yüzde yirmi genellikle işin asıl zor kısmıdır. Fiyatın bayi grubuna göre değişmesi, bir servis kaydının üç farklı teknikerden geçmesi, aynı ürünün beş ayrı sitede farklı fiyatla yayınlanması gibi işler paket programların kutusuna sığmaz. O noktada şirketler ya işini yazılıma uydurmak ya da yazılımı işine uydurmak arasında seçim yapar.

Excel tabloları, WhatsApp grupları ve kâğıt formlar genelde bu boşluğu kapatmak için ortaya çıkar. Çalışırlar da — ta ki iki kişi aynı tabloyu aynı anda açana, ya da sipariş veren kişi işten ayrılana kadar. Kaydın nerede durduğu, kimin değiştirdiği ve hangisinin doğru olduğu belirsizleştiğinde maliyet yazılım maliyetinden büyür.

Özel yazılım bu boşluğu kapatır: iş akışınız neyse yazılım onu yapar, siz yazılımın beklediği şekilde çalışmak zorunda kalmazsınız. Karşılığında hazır bir paketten daha uzun bir başlangıç süresi ve daha net bir kapsam tanımı gerekir. Hangi işin özel yazılımı hak ettiğine, hangisinin hazır bir çözümle çözüleceğine ilk görüşmede birlikte karar veriyoruz; her işe özel yazılım önermiyoruz.

Nasıl çalışıyoruz

İlk adım analizdir ve masa başında yapılmaz. İşi yapan kişiyle birlikte oturup mevcut akışı adım adım yazıyoruz: kayıt nereden giriyor, kimin onayından geçiyor, hangi noktada duruyor, hangi bilgiyi kim arıyor da bulamıyor. Bu çalışmanın çıktısı, geliştirmeye başlamadan önce ikimizin de onayladığı yazılı bir kapsam belgesi olur. Kapsamı net olmayan proje, bütçesi de net olmayan projedir.

Ardından veri modelini kuruyoruz. Çoğu yazılım projesi arayüzde değil, veri modelinde batar: ürünün kaç fiyatı olabileceği, bir carinin kaç alt kullanıcısı olacağı, bir kaydın silindiğinde ne olacağı baştan yanlış kurulursa sonradan düzeltmek ekranı değiştirmekten pahalıya gelir. Bu yüzden tablo yapısını, ilişkileri ve indeksleri geliştirmeye başlamadan önce yazıyoruz.

Geliştirme iki haftalık turlar hâlinde ilerler ve her turun sonunda çalışan bir sürüm görürsünüz. Ekranı yayına yakın bir ortamda kendiniz kullanır, not düşersiniz; bir sonraki tur o notlarla başlar. Bu düzen iki işi birden yapar: yanlış anlaşılmayı erken yakalar ve projenin ne kadar ilerlediğini tahmine değil çalışan ekrana bakarak ölçmenizi sağlar.

Yayına alma tek seferlik bir olay değil, planlanmış bir geçiştir. Eski sistemdeki veri aktarılır, bir süre iki sistem yan yana çalıştırılır, sayılar karşılaştırılır ve ancak tutuyorsa eski sistem kapatılır. Aktarımda kayıt elemiyoruz: pasif, arşiv ve eski kayıtlar da taşınır, ayıklamayı yeni sistem içinde yaparsınız.

Kendi işimizde kullandığımız yöntem

KAV Yazılım bu hizmeti dışarıya satmadan önce kendi grubunda uyguladı. Grup şirketlerinin ürün, kategori, marka, fiyat listesi, stok ve cari hesap verisini tek yerde tutan bir yönetim paneli ile bu panelden beslenen on alan adı, aynı yöntemle geliştirildi: önce veri modeli, sonra API uçları, en sonunda ekranlar.

Aynı panel bayi tarafını da yönetiyor. Bayi girişi ve alt kullanıcılar, bayi gruplarına göre değişen iskontolar, sepet, favoriler, teklif akışı, sipariş durumları ve bayi başvuruları tek veri modeli üzerinde çalışıyor. Bu, sunum için yapılmış bir örnek değil; her gün kullanılan bir sistem. Yazdığımız kodun uzun vadede ne yaptığını biliyoruz, çünkü bakımını da biz yapıyoruz.

Bu deneyimin sizin projenize yansıması şu: tanıdık problemleri ikinci kez çözüyoruz. Çok fiyatlı ürün yapısı, KDV'siz dolar fiyatının günlük kurla TL'ye çevrilmesi, aynı ürünün farklı sitelerde farklı yayın durumunda olması, yetki seviyeleri ve denetim kaydı gibi konular bizim için yeni değil.

Teslimden sonrası

Projenin asıl ömrü yayından sonra başlar. Teslimle birlikte kaynak kodun tamamını, veritabanı şemasını ve kurulum adımlarını alırsınız; yazılım bizim sunucumuzda kilitli durmaz, istediğiniz zaman başka bir ekibe devredebilirsiniz. Bunu bir risk olarak değil, doğru çalışma biçimi olarak görüyoruz.

Yayından sonra genelde aylık bir bakım ve geliştirme anlaşmasıyla devam ediyoruz: hata düzeltme, sürüm güncellemeleri, yedek kontrolü ve yeni istekler. İsteklerin sırasını siz belirlersiniz. Bir şeyi silmeden önce yedek alıyoruz ve gerçek kayıtları geri dönüşü olmayan biçimde silmiyoruz — bu bizim kendi sistemlerimizde de uyguladığımız bir kural.

Sık sorulanlar

Proje ne kadar sürer?

Süreyi kapsam belirler, bu yüzden ilk görüşmede süre söylemiyoruz. Analiz bittiğinde kapsam belgesiyle birlikte takvim de verilir. Pratikte tek bir iş akışını kapsayan bir sistemin çalışan ilk sürümü haftalar, birden çok bölümü ve entegrasyonu olan bir sistem ise aylar alır. İki haftalık turlarla ilerlediğimiz için ilerlemeyi tahminle değil çalışan sürümle ölçersiniz.

Fiyat nasıl belirleniyor?

İki biçimde çalışıyoruz. Kapsam net ve sınırlıysa sabit fiyat veriyoruz; kapsam yol boyunca değişecekse aylık ayrılmış ekip üzerinden anlaşıyoruz. İkisi arasındaki seçimi analiz sonrası birlikte yapıyoruz. Kapsamı belirsizken sabit fiyat vermek ya müşteriyi ya geliştiriciyi zarara sokar, o yüzden bunu yapmıyoruz.

Yazılım bittikten sonra başka bir ekibe devredebilir miyim?

Evet. Teslimde kaynak kodun tamamını, veritabanı şemasını ve kurulum adımlarını alırsınız. Yazılım bizim sunucumuzda kilitli durmaz. Bunu bir risk olarak görmüyoruz; aksine doğru çalışma biçimi olarak görüyoruz.

Mevcut programımdaki veriler ne olacak?

Aktarılır. Eski sistemin verisini okuyup yeni veri modeline taşıyoruz ve aktarımda kayıt elemiyoruz: pasif müşteriler, eski siparişler ve arşiv kayıtları da gelir. Bir süre iki sistemi yan yana çalıştırıp sayıları karşılaştırıyoruz; tutmuyorsa eski sistem kapatılmıyor.

Kapsam

Bu hizmette teslim edilenler. Kapsam görüşme sonunda yazılı hâle gelir; aşağıdaki liste başlangıç noktasıdır.

İş analiziMevcut akışın yerinde çıkarılması ve yazılı kapsam belgesi.
Veri modeliTablo yapısı, ilişkiler, indeksler ve yetki kurgusu.
ArayüzMasaüstü ve mobilde çalışan, klavyeyle kullanılabilir ekranlar.
APIDiğer sistemlerin bağlanabileceği belgelenmiş REST uçları.
Veri aktarımıEski sistemden kayıt elemeden taşıma ve karşılaştırma.
DevirKaynak kod, şema, kurulum adımları ve bakım anlaşması.

Yazılım Geliştirme için teklif alın

Ne yapmak istediğinizi anlatın; kapsamı birlikte netleştirip fiyat verelim.