Bir SaaS Ürününü Fikirden Gerçek Kullanıma Taşımak
Yazılım geliştirmek ile insanların her gün kullandığı bir ürün geliştirmek aynı şey değil. Bunu kendi ürünüm PiaFix'i geliştirirken daha iyi anladım.
Her şey gerçek bir ihtiyaçla başladı
PiaFix, teknik servis işletmelerinin günlük operasyonlarında karşılaştığı sorunlardan doğdu.
Servis kayıtlarının dağınık tutulması, geçmiş işlemlere ulaşmanın zor olması, stok takibindeki eksiklikler ve müşteri iletişimindeki aksaklıklar...
Başlangıçta hedefimiz bu süreçleri dijitalleştirmekti. Ancak gerçek işletmeler kullanmaya başladığında işin yalnızca kayıt tutmaktan ibaret olmadığını gördük.
Teknik tarafta nasıl ilerledik?
İlk versiyonu ASP.NET MVC, C#, SQL Server ve Azure üzerinde geliştirdim.
Mimariyi oluştururken önceliğim, hızlı geliştirebileceğimiz, yönetilebilir ve sürdürülebilir bir yapı kurmaktı.
Birden fazla işletmenin aynı uygulamayı kullanması beraberinde yeni sorumluluklar getirdi. Veri izolasyonu, kullanıcı yetkilendirmeleri, performans ve uygulamanın bakım maliyeti artık daha kritik hale geldi.
Özellikle çok kiracılı (multi-tenant) yapılarda küçük bir yetkilendirme hatasının bile ciddi sonuçları olabileceğini unutmamak gerekiyor.
Gerçek kullanıcılar teknik kararları değiştiriyor
Bugün PiaFix, farklı ölçeklerde birçok işletme tarafından aktif olarak kullanılıyor. Her gün yeni servis kayıtları oluşturuluyor; müşteri ve araç bilgileri, stok hareketleri, gelir-gider işlemleri ve günlük operasyonlar tek bir platform üzerinden yönetiliyor.
Bu süreç bana bir yazılımı geliştirmenin, onu gerçek kullanıcıların günlük iş akışında sorunsuz ve sürdürülebilir şekilde çalıştırmaktan farklı olduğunu gösterdi.
Öğrendiğim en önemli şeylerden biri şu: Teknik olarak doğru görünen bir çözüm, kullanıcı açısından her zaman doğru çözüm olmayabiliyor.
Bizim için mantıklı ve düzenli görünen bir iş akışı, gün içinde onlarca işlem yapan bir servis çalışanı için gereksiz adımlar anlamına gelebiliyor.
Bu nedenle kullanıcı geri bildirimleri yalnızca yeni özellikler geliştirmemizi değil, mevcut iş akışlarını sadeleştirmemizi ve bazı teknik kararlarımızı yeniden gözden geçirmemizi de sağladı.
Bugün sıfırdan başlasaydım?
Muhtemelen yine gereksiz karmaşıklıktan uzak, modüler bir monolit ile başlardım.
Ancak en baştan bazı konulara daha fazla yatırım yapardım:
Tenant izolasyonu ve merkezi yetkilendirme
Audit log, hata takibi ve gözlemlenebilirlik
Otomatik testler ve CI/CD süreçleri
Modüller arasında daha net sınırlar
Mikroservis kullanmayı veya en güncel teknolojiyi seçmeyi tek başına mimari başarı olarak görmüyorum.
İyi mimari, bugünün ihtiyacını karşılarken yarının değişikliklerini de yönetilebilir kılabilmeli.
Sonuç
PiaFix benim için yalnızca geliştirdiğim bir SaaS ürünü değil, gerçek kullanıcılarla birlikte gelişen bir yazılım mühendisliği deneyimi.
Bir ürünün ilk sürümünü geliştirmek nispeten kolay. Asıl mesele, ürün kullanılmaya başlandıktan sonra ortaya çıkan ihtiyaçları, teknik borçları ve büyüme sürecini doğru yönetebilmek.
Bugün bir projeye başlarken kendime sorduğum sorulardan biri şu:
"Bu sistemi bugün çalıştırabilir miyim?" değil, "Bu sistemi birkaç yıl sonra da güvenle geliştirmeye devam edebilir miyim?"
Çünkü sürdürülebilir yazılım mimarisi tam olarak burada başlıyor.