Pan Innovation House Pan Innovation House
ÖZEL YAZILIM · ÜRÜNLEŞTİRME

Yazılım Ürünleştirme: Projeden Ürüne Geçiş

Tek müşteri için yazılmış ve çalışan bir yazılımı satılabilir bir ürüne dönüştürürüz: çekirdek ile müşteriye özel katmanın ayrılması, konfigürasyon motoru, çok kiracılı veri izolasyonu, kurulum ve sürüm yönetimi ile abonelik altyapısı.

Pek çok işletmenin elinde, kendi ihtiyacı için yazdırdığı ve yıllardır çalışan bir yazılım vardır. Zamanla fark edilir ki aynı sorunu yaşayan başka firmalar da vardır ve onlar da bu yazılımı kullanmak ister. Buradan iki soru doğar: yazılım başka bir firmada çalışır mı ve bu işten bir gelir modeli çıkar mı. Cevap çoğu zaman evettir, ama arada göründüğünden daha uzun bir yol vardır.

Çünkü tek müşteri için yazılmış yazılım, o müşterinin varsayımlarıyla doludur. Vergi oranı sabit yazılmıştır, iş akışı o firmanın onay zincirine göre kurulmuştur, ürün kodları o firmanın düzenine göre biçimlenmiştir, raporlar o firmanın patronunun istediği şekildedir. Bunların hiçbiri hata değildir; proje olarak doğru kararlardır. Ürün olarak ise her biri bir engeldir. Ürünleştirme, bu varsayımları teker teker ayıklayıp yapılandırılabilir hale getirme işidir.

İkinci ve daha kritik konu veri izolasyonudur. Birden fazla müşterinin aynı sistemde çalıştığı bir yapıda, bir müşterinin verisinin başka bir müşteriye görünmemesi tesadüfe bırakılamaz. Bu, arayüzde bir filtre meselesi değil, mimarinin temelinde çözülmesi gereken bir konudur. Sonradan eklenen izolasyon katmanları, en tehlikeli ve en pahalı düzeltmelerdendir; bu yüzden ürünleştirme kararı verildiği anda ele alınır.

Bu işin başlamadan önce netleştirilmesi gereken bir hukuki tarafı var ve bunu ilk toplantıda konuşuruz: mevcut devir sözleşmesindeki kaynak kod ve fikri mülkiyet maddeleri. Yazılım bir müşteri için yapıldıysa, o yazılımın başka müşterilere satılabilmesi sözleşmenin ne dediğine bağlıdır. Bu madde netleşmeden teknik işe başlamak, ilerleyen aşamada durdurulması çok pahalı bir yol açar. Aynı durum kendi iç yazılımını ürünleştirmek isteyen şirketler için de geçerlidir; orada da geliştiriciyle yapılan sözleşme kontrol edilmelidir.

Kimler için?

Yazılım Ürünleştirme: Projeden Ürüne kimler için uygun?

Kendi yazılımını satmak isteyen işletmeler

Kendi ihtiyacı için yaptırdığı ve iyi çalışan bir sistemi olan firmalar. Bu sistem çoğu zaman sektörünün gerçeğini iyi bildiği için değerlidir; asıl varlık koddan çok o bilgidir.

Tek müşteriye yazan yazılım firmaları

Proje bazlı çalışan ve tekrar eden gelire geçmek isteyen geliştiriciler. Bu geçiş, teknik olduğu kadar iş modeli değişikliğidir ve ikisi birlikte planlanmalıdır.

Aynı çözümü birden çok müşteriye kuranlar

Her müşteride kodu kopyalayıp değiştirerek ilerleyen firmalar. Bu yöntem üç dört müşteriye kadar yürür; sonrasında her düzeltmenin ayrı ayrı yapılması gerektiği için bakım maliyeti kontrolden çıkar.

Sektörel bilgiyi ürüne çevirmek isteyenler

Kendi sektörünü çok iyi bilen ve bu bilgiyi ölçeklenebilir bir gelire çevirmek isteyen işletmeler. Burada teknik iş, ticari kurgunun sadece bir parçasıdır.

Ne geliştiriyoruz?

Yazılım Ürünleştirme: Projeden Ürüne kapsamında neler yapıyoruz

Modülün yetenekleri ve karşılığı
YetenekNe sağlar
Çekirdek ile özel katmanın ayrılmasıHangi işlevin tüm müşterilerde ortak olduğu, hangisinin tek bir müşteriye özgü olduğu ayrıştırılır. Ortak çekirdek korunur, özel kısımlar eklenti veya yapılandırma haline getirilir. Bu ayrım, ürünleştirmenin en çok emek isteyen ve en belirleyici adımıdır.
Konfigürasyon motoruSabit yazılmış varsayımlar yapılandırılabilir hale getirilir: oranlar, iş akışı adımları, alan adlandırmaları, onay zincirleri, rapor tercihleri. Amaç, yeni bir müşteri için kod değiştirmek zorunda kalmamaktır; her yeni müşteride kod değişiyorsa henüz ürün değil, proje vardır.
Çok kiracılı veri izolasyonuMüşterilerin verisinin birbirinden ayrılması mimarinin temelinde kurulur ve test edilir. İzolasyonun sınanması ayrı bir çalışma olarak yürütülür; bu, ürünleştirmede en ciddiye alınması gereken güvenlik konusudur.
Kurulum, sürüm ve uyumluluk yönetimiYeni müşteri kurulumunun tekrarlanabilir hale getirilmesi, sürüm numaralandırması, geriye dönük uyumluluk politikası ve müşterilerin farklı sürümlerde kalabilmesi ele alınır. Her müşteriyi aynı anda güncellemek zorunda olmak, büyümenin önündeki en sessiz engeldir.
Abonelik ve faturalama altyapısıKullanım ölçümü, paket ve sınır tanımları, abonelik yönetimi ve faturalama akışı kurulur. Fiyatlandırma modelini siz belirlersiniz; biz o modelin ölçülebilir ve faturalanabilir olmasını sağlarız.
Müşteri katılımı ve destek düzeniYeni müşterinin sisteme alınması, veri aktarımı, eğitim ve destek akışı tasarlanır. Ürünleştirmede çoğu zaman asıl darboğaz kod değil, her yeni müşterinin kaç gün emek istediğidir; bu süre kısalmadan ölçek büyümez.
Teknolojiler

Kullandığımız teknolojiler

  • Çok kiracılı mimari
  • Veri izolasyonu ve yetki modeli
  • Konfigürasyon ve özellik bayrakları
  • Sürümleme ve göç betikleri
  • Otomatik kurulum ve dağıtım
  • Kullanım ölçümü
  • Abonelik ve faturalama entegrasyonu
  • Regresyon test paketi
  • Müşteri katılım araçları
Süreç

Keşiften canlıya nasıl ilerliyoruz

  1. 01

    1. Hukuki ve ticari ön kontrol

    Mevcut sözleşmedeki kaynak kod ve fikri mülkiyet maddeleri incelenir; yazılımın başka müşterilere satılabilir olup olmadığı netleştirilir. Bu adım teknik işten önce gelir ve avukatınızla birlikte yapılır. Netleşmeden başlanan projeler en pahalı biçimde durur.

  2. 02

    2. Ürün kapsamının belirlenmesi

    Hangi işlevlerin ürüne gireceği ve hangilerinin ilk sürümde dışarıda kalacağı kararlaştırılır. Mevcut yazılımın tamamını ürünleştirmeye çalışmak yaygın bir hatadır; ürün, projenin daraltılmış ve keskinleştirilmiş halidir.

  3. 03

    3. Çekirdek ayrımı ve yapılandırılabilirlik

    Kod tabanı ayrıştırılır, sabit varsayımlar yapılandırmaya taşınır. Bu aşama kademeli yürütülür; mevcut müşteri çalışmaya devam ederken ilerlenir ve her adımda regresyon testleriyle korunur.

  4. 04

    4. İzolasyon ve ikinci müşteri

    Çok kiracılı yapı kurulur ve izolasyon sınanır. Gerçek sınav ikinci müşteridir; ilk kurulumda ortaya çıkan her sürtünme, ürünün henüz yapılandırılabilir olmayan noktalarını gösterir ve öncelik listesini belirler.

  5. 05

    5. Sürüm, abonelik ve ölçek düzeni

    Sürüm yönetimi, güncelleme politikası, abonelik ve destek akışı kurulur. Yeni müşteri katılım süresi ölçülür ve kısaltılır; ölçeklenebilirlik bu sürede görünür.

Sıkça sorulan sorular

Yazılım Ürünleştirme: Projeden Ürüne hakkında merak edilenler

Mevcut müşterimiz buna itiraz eder mi?

Bu, sözleşmenin ne dediğine ve ilişkinin nasıl kurulduğuna bağlıdır. Bazı sözleşmeler yazılımın tamamının münhasıran müşteriye ait olduğunu söyler; bazıları çekirdeğin geliştiricide kalmasına izin verir. Bu maddeyi ilk toplantıda netleştiririz. Uygulamada işleyen bir yol da müşteriyle yeniden anlaşmaktır; ürünleşen yazılımın bakımının ucuzlaması genellikle müşterinin de lehinedir.

Ne kadar sürer?

Tek bir süre söylemek gerçekçi olmaz; belirleyici olan mevcut kodun ne kadar müşteriye özel varsayım taşıdığıdır. Bu yüzden işe kapsam ve durum değerlendirmesiyle başlarız ve aşamaları ayrı ayrı fiyatlarız. Kademeli ilerlemek de mümkündür: önce ikinci müşteriyi taşıyabilecek kadar, sonra gerçek ürün.

Sıfırdan yazmak daha mı iyi olur?

Bazen evet ve bunu söylemekten çekinmeyiz. Mevcut kod, taşıdığı sektörel bilgi nedeniyle değerlidir; ancak mimarisi çok kiracılığa hiç uygun değilse, üzerine inşa etmek yeniden yazmaktan pahalıya gelebilir. Bu kararı değerlendirme aşamasında, gerekçesiyle birlikte veririz. Kararı etkileyen en önemli unsur genellikle koddan çok veri modelidir.

Müşterilerimizin verisi karışır mı?

Karışmaması mimarinin temelinde çözülür ve ayrıca test edilir. Bu, ürünleştirmede en ciddiye aldığımız konudur; izolasyon sınaması bağımsız bir çalışma kalemi olarak planlanır. Sonradan eklenen filtreleme yaklaşımlarına güvenmiyoruz, çünkü tek bir unutulmuş sorgu tüm güvenceyi geçersiz kılar.

Fiyatlandırma modelini siz mi kuracaksınız?

Modeli siz belirlersiniz; biz o modelin teknik karşılığını kurarız. Kullanım nasıl ölçülecek, paket sınırları nasıl uygulanacak, aşım nasıl ele alınacak ve faturalama nasıl yürüyecek. Ticari kararı vermek bizim işimiz değil, ama modelin uygulanabilir olup olmadığını erken söyleriz.

Sonunda elimize ne geçer?

Çekirdek ile özel katmanı ayrılmış bir kod tabanı; yapılandırma motoru; çok kiracılı ve izolasyonu sınanmış veri mimarisi; tekrarlanabilir kurulum ve sürüm yönetimi; abonelik ve kullanım ölçümü altyapısı ile müşteri katılım akışı. Kaynak kod dahil üretilen her şeyin mülkiyeti yüzde yüz sizdedir.

İletişim

Yazılım Ürünleştirme: Projeden Ürüne projenizi konuşalım

30 dakikalık keşif görüşmesinde ihtiyacınızı dinler, özele mi yoksa hazır çözüme mi ihtiyacınız olduğunu dürüstçe söyleriz.

İlgili

İlgili sayfalar ve rehberler

Tedarik Zinciri Yönetimi (SCM)

Talep ile tedariğin nerede ayrıştığını, hangi tedarikçinin termininde durduğunu ve malın şu anda hangi noktada beklediğini tek yerden görünür kılarız. Amaç yeni bir ERP kurmak değil; mevcut sistemin bilmediği zincir dışı bilgiyi toplayıp planlama kararını veriye bağlamaktır.

Detay

Satın Alma Yönetimi (PMS)

Talebin nereden geldiğini, hangi tekliflerin alındığını, kimin neyi onayladığını ve gelen faturanın siparişle örtüşüp örtüşmediğini tek bir zincirde toplarız. Satın alma kişilerin hafızasında değil sistemde yürür; her adım geriye dönük olarak gerekçesiyle birlikte okunabilir. Mevcut ERP'niz yerinde kalır.

Detay

Tedarikçi İlişkileri Yönetimi (SRM)

Tedarikçinin kim olduğunu, hangi belgesinin ne zaman dolduğunu, geçen yıl terminine ne kadar uyduğunu ve hangi fiyat anlaşmasının yürürlükte olduğunu tek kayıtta toplarız. Onaylı tedarikçi listesi bir Excel dosyası olmaktan çıkar. Tedarikçi portalı isteğe bağlı olarak aynı yapıya bağlanır.

Detay

Nakliye ve Filo Yönetimi (TMS)

Sevkiyatı planlayan, aracı ve güzergâhı belirleyen, taşıyıcı ile navlunu karşılaştıran, e-irsaliyeyi kesen ve teslim kanıtını sahadan toplayan bir katman kurarız. Kendi filonuz varsa yakıt, bakım ve belge maliyeti aynı sistemde birikir; taşıyıcıyla çalışıyorsanız hangi işin kime kaça verildiği kayıt altına alınır.

Detay

Sipariş Yönetimi ve Orkestrasyon (OMS)

E-ticaret sitesi, pazaryeri, B2B bayi portalı, showroom ve telefonla gelen siparişleri tek havuzda toplarız. Stok her kanala ayrı ayrı değil, tek kaynaktan söz verilir; ayrılan miktar düşer, iptal ve iade geri döner. Amaç aynı ürünü iki kez satmamak ve siparişin nerede olduğunu tek ekrandan görmektir.

Detay

Ürün Bilgi Yönetimi (PIM)

Ürünün tüm özniteliklerini, açıklamalarını ve çeviri metinlerini tek merkezde toplarız; her satış kanalının kendi şablonuna göre zenginleştirilmiş halini oradan üretiriz. Eksik veya kurala aykırı alan, ürün kanala çıkmadan önce yakalanır. Ürün verisi artık kimsenin masaüstündeki dosyasında yaşamaz.

Detay
Ara Ücretsiz keşif görüşmesi