A R O L A X
İçeriğe geç
Özel yazılım projesi üzerinde kod yazan geliştirici ekibi

Takip edin

Özel Yazılım Geliştirme

  • Laravel
  • PHP 8.4
  • MySQL
  • Redis
  • Docker
  • GitLab CI
  • PHPUnit

Hazır paket programların karşılamadığı iş süreçleri için sıfırdan yazılan sistem. Analizle başlar, iki haftalık sprintlerle ilerler; her sprint sonunda çalışan bir sürüm görürsünüz ve kaynak kodun tamamı size teslim edilir.

Özel yazılıma ne zaman ihtiyaç duyulur?

Hazır paket programlar çoğu ihtiyacı karşılar ve genellikle daha ucuzdur. Bu yüzden ilk toplantıda sorduğumuz soru "ne yazalım" değil, "hazır bir çözüm bu işi görür mü" olur. Özel yazılımın gerçekten mantıklı olduğu durumlar şunlar:

  • Süreciniz sektör standardından belirgin biçimde farklı ve bu fark rekabet avantajınız
  • Kullandığınız paket programlar arasında veri elle taşınıyor, aynı bilgi birden fazla yere giriliyor
  • Kullanıcı başına lisans maliyeti, ekip büyüdükçe geliştirme maliyetini geçiyor
  • İhtiyacınız olan raporu hiçbir hazır sistem üretemiyor, herkes tabloya döküp elle hesaplıyor
  • Verinin sizde kalması zorunlu ve bulut tabanlı paketler bu şartı karşılamıyor

Bu maddelerin hiçbiri geçerli değilse hazır bir çözüm önermekten çekinmiyoruz. Yanlış gerekçeyle başlayan özel yazılım projeleri hem pahalıya mal olur hem de kullanılmadan rafta kalır.

Analiz aşamasında tam olarak ne yapılıyor?

Projelerin başarısını en çok belirleyen aşama burasıdır ve atlanmaya en açık olan da budur. Analizi üç adımda yürütüyoruz.

Yerinde gözlem. Süreci anlatan kişiyle değil, süreci yürüten kişiyle konuşuyoruz. Çoğu işletmede yazılı prosedürle fiilî uygulama arasında fark vardır ve yazılım fiilî uygulamayı bilmeden yazılırsa kullanılmaz. Depoda çalışan kişinin klavyeye bakmadan barkod okuttuğunu görmek, ekran tasarımını doğrudan değiştirir.

Veri modeli. Hangi varlıklar var, aralarındaki ilişkiler ne, hangi alan zorunlu, hangi kayıt silinebilir, geçmiş nasıl saklanacak. Veri modeli yanlış kurulduğunda sonradan düzeltmenin maliyeti, ilk yazımın birkaç katı olur. Bu yüzden bu aşamada acele etmiyoruz.

Kabul kriterleri. Her işlev için "hangi durumda tamamlanmış sayılır" sorusunu yazılı olarak cevaplıyoruz. "Sipariş oluşturulabilmeli" yeterli değildir; stok yetersizse ne olacağı, aynı anda iki kullanıcı aynı ürünü alırsa ne olacağı, iptal edilen siparişin stoğa nasıl döneceği yazılır. Bu doküman hem geliştiricinin hem de sizin referansınız olur.

Geliştirme süreci nasıl yürüyor?

İki haftalık sprintlerle çalışıyoruz. Her sprintin başında o iki haftada nelerin biteceği belirleniyor, sonunda çalışan bir sürüm staging ortamında gösteriliyor. Bu ritmin iki faydası var: siz ilerlemeyi slaytla değil çalışan yazılımla görüyorsunuz, biz de yanlış anlaşılmayı aylar sonra değil iki hafta içinde fark ediyoruz.

Kod tarafındaki standartlarımız şunlar: PSR-12 kodlama standardı, her değişikliğin ayrı dalda geliştirilip birleştirme isteğiyle inceleme sürecinden geçmesi, kritik iş kuralları için birim testi, sipariş ve ödeme gibi akışlar için entegrasyon testi, otomatik statik analiz. Değişiklikler önce staging ortamına, testler geçtikten sonra canlıya gidiyor.

Demo toplantılarını kısa tutuyoruz ve gösterilen her işlev için tek bir soru soruyoruz: bu, sizin gerçek işinizi yapıyor mu. Toplantıya süreci fiilen yürüten kişinin katılması, yöneticinin katılmasından daha değerli sonuç veriyor. Toplantıda çıkan geri bildirimler aynı gün kayda geçiriliyor ve bir sonraki sprint planına giriyor.

Ortam ayrımı önemli: geliştirme, staging ve canlı olmak üzere üç ortam kuruyoruz. Canlı verinin kopyası staging ortamına aktarılırken kişisel veriler maskeleniyor; bu hem KVKK açısından gerekli hem de test verisinin gerçekçi olmasını sağlıyor.

Proje ne kadar sürer ve neden bu kadar sürer?

Orta ölçekli bir iş yazılımı için gerçekçi süre 4 ila 9 aydır. Sürenin dağılımı kabaca şöyle: analiz ve tasarım yüzde 20, geliştirme yüzde 50, test ve düzeltme yüzde 15, veri göçü ve devreye alma yüzde 15.

Süreyi uzatan en büyük etken beklenmedik iş kurallarıdır. "Basit bir izin talebi" diye başlayan bir modül, vardiyalı çalışanlar, yıllık devir hakları, avans izin ve farklı onay zincirleri eklenince üç katına çıkabiliyor. Bu yüzden analizde uç durumları özellikle kurcalıyoruz; "peki ya şu olursa" sorularını erken sormak, sonradan sormaktan çok daha ucuz.

Süreyi kısaltan etken ise sizin tarafınızda karar verecek tek bir sahibin olmasıdır. Kararların komiteye gitmesi, sprint ritmini bozan en yaygın nedendir.

Fiyat nasıl belirleniyor?

İki modelle çalışıyoruz. Sabit fiyat, kapsamın analizle net çıkarıldığı projelerde uygulanır; riski biz taşırız, karşılığında kapsam değişikliği ayrı fiyatlanır. Zaman ve malzeme modelinde ise aylık ekip kapasitesi satın alırsınız, öncelikleri sprint sprint siz belirlersiniz; kapsamın gelişerek netleştiği ürünlerde bu model daha verimli çalışıyor.

Fiyatı belirleyen teknik başlıklar: modül sayısı, kullanıcı rolü ve yetki karmaşıklığı, entegre olunacak dış sistem sayısı, raporlama derinliği, eş zamanlı kullanıcı hedefi ve veri göçünün hacmi. Eski sistemden veri aktarımı çoğu projede küçümsenen ama en çok zaman alan kalemdir; veri tutarsızsa temizleme işi de projeye eklenir.

Kaynak kod kimin olur, sonradan başka ekiple devam edebilir miyiz?

Kaynak kodun tamamı sizindir. Proje boyunca kod sizin adınıza açılan bir depoda tutulur, teslimatta depo yönetimi size devredilir. Kullanılan kütüphaneler açık kaynak lisanslıdır; kapalı bir bileşene bağımlılık oluşturmuyoruz. Gizli bir katman, şifrelenmiş dosya veya süre kilidi kullanmıyoruz.

Devri kolaylaştıran şey teslim dokümanıdır: mimari şema, veri modeli, ortam değişkenleri, kurulum adımları, dağıtım süreci ve bilinen teknik borç listesi. Bu dokümanla yeni bir ekip sistemi birkaç gün içinde çalışır hâle getirebilir.

Devreye aldıktan sonra ne oluyor?

Canlıya geçiş, projenin en riskli anıdır. Geçişi mümkünse paralel çalışma dönemiyle yapıyoruz: yeni sistem devredeyken eski sistem bir süre okuma amaçlı erişilebilir kalıyor. Geçiş öncesi geri dönüş planı yazılıyor ve süresi ölçülüyor.

Geçiş gününü de takvimde doğru seçmek gerekiyor. Ay sonu kapanışı, sezon yoğunluğu ve envanter sayımı gibi dönemlerin dışında kalan, ekibin göreli olarak rahat olduğu bir hafta seçiyoruz. Geçiş sabahı sahada destek veriyor, ilk günün sonunda kısa bir değerlendirme yapıyoruz.

Devreye almadan sonraki 30 gün stabilizasyon dönemidir; bu süreçte kapsam içindeki hatalar ücretsiz düzeltilir. Ardından bakım ve destek anlaşması devreye giriyor. Bu anlaşma güvenlik güncellemeleri, yedekleme kontrolü, izleme ve aylık belirli sayıda geliştirme talebini kapsıyor. Yazılımlar canlı sistemlerdir; kullanıldıkça yeni ihtiyaç doğurur ve bunu baştan bütçelemek en sağlıklı yaklaşımdır.

Kapsam değişikliği talepleri nasıl yönetiliyor?

Hiçbir yazılım projesi başladığı kapsamla bitmez ve bu kötü bir şey değildir. Sistemi kullanmaya başladıkça yeni ihtiyaçlar görünür hâle gelir. Sorun, değişikliklerin kayıt altına alınmadan ve etkisi ölçülmeden sürece sokulmasıdır; projelerin gecikmesinin en yaygın nedeni budur.

Kurduğumuz süreç şöyle işliyor:

  • Talep yazılır: Sözlü konuşulan hiçbir değişiklik doğrudan geliştirmeye girmez. Talep, takip sisteminde neden ve beklenen sonuçla birlikte kaydedilir.
  • Etki analizi yapılır: Bu değişiklik hangi ekranları, hangi veri yapılarını ve hangi mevcut işlevleri etkiliyor. Çoğu talep göründüğünden geniştir; bir alan eklemek rapora, dışa aktarıma ve yetki kurallarına da dokunur.
  • Süre ve maliyet çıkarılır: Değişikliğin geliştirme ve test süresi tahmin edilir, hangi sprintten yer alacağı belirtilir.
  • Karar verilir: Ya mevcut kapsamdan bir madde çıkarılır ya süre uzatılır ya da talep sonraki aşamaya bırakılır. Üçünden birini seçmeden kapsam büyütülmez.

Bu süreç bürokrasi yaratmak için değil, kararın bilinçli verilmesi için var. Deneyimimize göre taleplerin önemli bir bölümü, etki analizi görüldükten sonra sizin tarafınızdan geri çekiliyor; çünkü kazandıracağı fayda ile maliyeti karşılaştırılabilir hâle geliyor.

Zaman ve malzeme modelinde çalışan projelerde bu süreç daha da basit işliyor: her sprint başında öncelik listesini birlikte sıralıyoruz, yeni talep listeye giriyor ve altta kalan bir madde otomatik olarak sonraki sprinte kayıyor. Kapsam tartışması yerine öncelik tartışması yapılıyor, bu da çok daha verimli bir konuşma oluyor.

Mevcut sürecin yerinde gözlemi ve darboğaz analizi

Gereksinim dokümanı ve kabul kriterlerinin yazılması

Veri modeli, ilişki şeması ve raporlama ihtiyaçlarının tasarımı

Rol ve yetki matrisinin çıkarılması

Bu hizmeti bizimle yürütmenin somut karşılığı ne oluyor?

  • Yazılım sürecinize uyarlanır; siz yazılıma uymak zorunda kalmazsınız
  • Kullanıcı başına lisans ücreti ödemezsiniz, sistem tamamen sizindir
  • Kaynak kod teslim edildiği için başka bir ekiple devam edebilirsiniz
  • Her sprint sonunda çalışan sürüm gördüğünüz için sürprizle karşılaşmazsınız
  • Yeni ihtiyaçlar ortaya çıktığında sistem büyütülebilir, değiştirilemez bir kutu değildir

Teslim ettiklerimiz:

  • Süreç analizi ve teknik keşif dokümanı
  • Veri modeli, mimari şema ve yetki matrisi
  • Çalışan yazılım ve yönetim arayüzü
  • Ayrı staging ortamı ve otomatik dağıtım hattı
  • Otomatik test paketi ve test kapsam raporu
  • Kaynak kodun tam teslimi ve depo devri
  • Kurulum, yedekleme ve geri yükleme dokümanı
  • Rol bazlı kullanıcı eğitimi ve eğitim videoları
Ortalama süre
3-9 ay
Çalışacak ekip
1 analist + 2 geliştirici + 1 test uzmanı
Başlangıç bütçesi
250.000 ₺
Fiyatlandırma
Modül sayısı, entegrasyon ve kullanıcı rolü karmaşıklığına göre belirlenir

Bu hizmet için teklif alın