Yazılım
- Anasayfa
- Yazılım
Yazılım Fikrinizi Tek Satır Kod Yazmadan Önce Sınıyoruz
Pek çok işletmede iş akışı zamanla birbirine eklenmiş tablolar, mesaj grupları ve kâğıt formlar üzerinden yürümeye başlar. Sipariş bir yerde, stok başka bir yerde, müşteri bilgisi ise birinin telefonunda durur. Bir yazılım projesi, bu dağınıklığın işletmenize neye mal olduğunu anlamakla başlıyor. Erzincan’da faaliyet gösteren işletmenizin hangi işleri elle, tekrar tekrar ve hataya açık biçimde yaptığını sizinle birlikte masaya yatırıyoruz. Bu aşamada ekran tasarlamıyor, kod yazmıyoruz; işi yapan kişilerle konuşuyor, bir iş gününün akışını baştan sona izliyoruz. Bir siparişin telefonla gelmesinden faturanın kesilmesine kadar geçen her adımı not ediyoruz. Bu gözlem, çalışanlarınızın zaten geliştirdiği pratik çözümleri de görünür kılıyor. Kimin hangi bilgiyi kime, hangi kanalla ilettiğini çıkardığımızda, sorunun çoğu zaman sanıldığı yerde olmadığı ortaya çıkıyor. Bazen tek bir ekranın ya da küçük bir otomasyonun, aylardır konuşulan büyük bir sistemden daha fazla zaman kazandırdığını görüyoruz.
Görüşmelerden çıkan notları, kimsenin yanlış anlayamayacağı bir kapsam belgesine dönüştürüyoruz. Belgede sistemi kimlerin kullanacağı, her kullanıcının neleri görüp neleri değiştirebileceği ve hangi işlemlerin hangi sırayla yapılacağı senaryolar halinde yazılıyor. Örneğin “depo sorumlusu gelen malı sisteme girer, eksik varsa satın almaya otomatik uyarı gider” gibi cümleler, teknik şemalardan çok daha kolay onaylanıyor. Belgenin dili teknik değil; işletmenizde herkesin okuyup itiraz edebileceği sadelikte yazılıyor. Ardından tıklanabilir ekran taslakları hazırlıyoruz. Bu taslaklar gerçek bir uygulama gibi görünür ama arkasında kod yoktur; amaç, fikri ucuz ve hızlı biçimde denemektir. Taslakları sistemi her gün kullanacak çalışanlarınıza gösteriyor, nerede takıldıklarını izliyoruz. Bu aşamada fark edilen bir eksik birkaç dakikalık bir düzeltmeyle kapanırken, geliştirme bittikten sonra fark edilen aynı eksik haftalara mal olabiliyor. Kapsam belgesi, teklifin ve takvimin de dayanağı oluyor; neyin işe dahil olduğu, neyin sonraki aşamalara kaldığı açıkça görülüyor.
Her ihtiyaç için sıfırdan kod yazmak gerekmiyor ve bunu ilk görüşmede açıkça söylüyoruz. Ön muhasebe, fatura ya da basit stok takibi gibi alanlarda piyasada olgunlaşmış çözümler var. İhtiyacınızın büyük kısmını karşılayan bir hazır yazılım bulunuyorsa, onu işletmenize uyarlamanın ve eksik kalan parçayı küçük bir eklentiyle tamamlamanın daha mantıklı olduğunu belirtiyoruz. Özel geliştirme, iş yapış şeklinizin sizi rakiplerinizden ayırdığı, hazır ürünlerin sizi kendi kalıbına sokmaya zorladığı durumlarda anlam kazanıyor. Karar verirken yalnızca ilk maliyete değil; lisans ücretlerine, kullanıcı sayısı arttıkça büyüyen aboneliklere, verinize erişim kolaylığına ve ileride gerekecek değişikliklerin yapılıp yapılamayacağına birlikte bakıyoruz. Bu karşılaştırmayı yazılı olarak sunuyoruz. Hazır bir ürünü seçtiğiniz durumda da kurulum, veri aktarımı ve ekip eğitimi konusunda yanınızda kalabiliyoruz. Amacımız size bir proje satmak değil, işiniz için doğru aracı bulmanızı sağlamak.
Önce Olmazsa Olmazlar, Ardından Kullanıcıların Gösterdiği Yön
Kapsam belgesindeki her özelliği tek seferde geliştirmek, hem süreyi hem de riski gereksiz yere büyütüyor. Bu nedenle özellikleri üç gruba ayırıyoruz: İlk günden olmazsa olmazlar, birkaç ay içinde gerekecekler ve bir gün olsa güzel olur denilenler. İlk sürüm yalnızca birinci gruptaki özelliklerle yayına çıkıyor. Böylece çalışanlarınız yeni sistemle daha erken tanışıyor, siz de yatırımın ilk karşılığını uzun bir bekleyiş olmadan alıyorsunuz. Küçük bir ilk sürüm, masa başında tahmin edilemeyen gerçek ihtiyaçları da ortaya çıkarıyor. Kâğıt üzerinde çok önemli görünen bir raporun hiç açılmadığını, beklenmedik bir kısayolun ise herkesin en sık kullandığı özellik olduğunu ancak kullanım başladığında görebiliyoruz. İkinci ve üçüncü gruptaki özellikler bu gerçek kullanım verisine göre yeniden sıralanıyor. Her gruptaki özellikleri sizinle birlikte tartıyor, son sözü işletmenin önceliklerine bırakıyoruz. Bu yaklaşım, işe yaramayacak özelliklere bütçe harcamanızın önüne geçiyor.
Geliştirme dönemini iki haftalık kısa turlara bölüyoruz. Her turun sonunda o ana kadar yapılanları çalışan bir ekran üzerinden size gösteriyoruz; sunum dosyası ya da ilerleme yüzdesi değil, gerçekten tıklanabilen bir uygulama görüyorsunuz. Bu toplantılarda yapılan yorumlar bir sonraki turun iş listesine ekleniyor. Toplantılara sistemi gerçekten kullanacak birkaç çalışanınızın da katılmasını öneriyoruz; en isabetli yorumlar çoğu zaman onlardan geliyor. Yanlış anlaşılan bir ayrıntı bu sayede aylar sonra teslim gününde değil, en geç birkaç hafta içinde fark ediliyor. Yazılım ekibimiz ile işletmeniz arasında tek bir iletişim sorumlusu belirliyoruz, böylece talepler dağılmıyor ve kimin neyi onayladığı kayıt altında kalıyor. İş listesini, tamamlanan ve bekleyen işleri görebileceğiniz ortak bir takip panosu da açıyoruz. Kapsam dışında kalan yeni bir istek geldiğinde bunu sessizce işe eklemiyor, süreye ve maliyete etkisini açıkça konuşup kararı size bırakıyoruz. Bu şeffaflık, projenin ortasında bütçenin kontrolden çıkmasını engelliyor.
Teknoloji seçiminde moda olana değil, uzun yıllar desteklenecek ve başka ekiplerin de kolayca devralabileceği araçlara yöneliyoruz. Sistemin tarayıcıdan mı, telefon uygulamasından mı yoksa ikisinden birden mi kullanılacağına iş akışına bakarak karar veriyoruz. Sahada çalışan bir ekip için telefondan hızlı veri girişi önemliyken, ofisteki muhasebe biriminin geniş ekranda tablo görmesi gerekebiliyor. Ekranları, sistemi kullanacak kişilerin bilgisayar alışkanlıklarını düşünerek sade tutuyoruz. İlk sürüm yayına alınırken kısa eğitimler düzenliyor, her rol için bir sayfalık kullanım notları hazırlıyoruz. Eski tablolardaki verilerinizi temizleyip yeni sisteme aktarmak da bu aşamanın parçası. Geçiş dönemini, eski ve yeni yöntemin bir süre birlikte yürüyeceği şekilde planlıyoruz; böylece günlük iş kesintiye uğramadan devam ediyor. Yeni bir sistem ancak çalışanlar onu benimsediğinde işe yarar, bu yüzden ilk haftalarda gelen soruları sabırla cevaplıyoruz. Kullanıcılardan gelen ilk geri bildirimleri toplayıp bir sonraki turun önceliklerine dönüştürüyoruz.
Testleri, Entegrasyonları, Güvenlik Önlemlerini Kullanıma Açmadan Tamamlıyoruz
Bir özelliğin çalıştığını söylemek için geliştiricinin kendi bilgisayarında denemesi yetmiyor. Stok düşümleri, fiyat ve vergi hesapları, ödeme tutarları gibi hataya tahammülü olmayan kısımlar için otomatik testler yazıyoruz. Bu testler her yeni değişiklikte kendiliğinden çalışıyor, eskiden doğru çalışan bir şeyin yanlışlıkla bozulmasını anında yakalıyor. Yazılım testleri yalnızca kodu değil, gerçek iş senaryolarını da kapsıyor. Bir siparişin iptal edilmesi, yarım kalan bir ödeme, aynı anda iki kişinin aynı kaydı değiştirmesi gibi uç durumları tek tek deniyoruz. Bulunan her hatayı kayda geçiriyor, düzeltildikten sonra aynı senaryoyu yeniden çalıştırarak kapanıp kapanmadığını doğruluyoruz. Her yeni sürüm önce canlı sistemin bir kopyası olan deneme ortamına kuruluyor. Siz ve ekibiniz yeni özellikleri orada gerçeğe yakın kayıtlarla deniyorsunuz; onayınız geldikten sonra canlı sisteme geçiyoruz. Canlıya geçişleri iş yoğunluğunun en düşük olduğu saatlere planlıyor, bir sorun çıkarsa önceki sürüme hızla dönebilecek şekilde hazırlık yapıyoruz.
İşletmenizin kullandığı diğer sistemlerle konuşamayan bir uygulama, çalışanlarınıza ikinci bir veri girişi yükü getirir. Bu yüzden entegrasyonları projenin başında listeliyoruz. Elektronik fatura, ön muhasebe programı, sanal pos ve ödeme altyapısı, kargo firmaları, toplu mesaj servisleri ya da pazar yerleri en sık karşılaştığımız bağlantı noktaları. Her entegrasyon için karşı tarafın sunduğu arayüzü inceliyor, hangi verinin hangi yönde, ne sıklıkla aktarılacağını belirliyoruz. Kullandığınız bir programın hazır bir bağlantı arayüzü yoksa, düzenli dosya aktarımı gibi daha basit ama güvenilir yollar öneriyoruz. Dış servislerin zaman zaman yavaşlayabileceğini ya da kesintiye uğrayabileceğini hesaba katıyoruz. Bağlantı koptuğunda işlem kaybolmuyor; sıraya alınıyor ve servis düzeldiğinde otomatik olarak tamamlanıyor. Başarısız olan aktarımlar için ilgili kişiye bildirim gidiyor, böylece bir fatura ya da sipariş sessizce arada kalmıyor. Entegrasyonların nasıl çalıştığını teknik bir belgeye döküyor, ileride servis sağlayıcınızı değiştirmek isterseniz yapılacak işi öngörülebilir kılıyoruz.
Güvenliği, işin sonunda eklenen bir kilit olarak değil, ilk satırdan itibaren tasarımın parçası olarak ele alıyoruz. Her kullanıcı yalnızca işini yapmak için ihtiyaç duyduğu ekranları ve kayıtları görüyor; yetkiler rol bazında tanımlanıyor. Parolalar geri çözülemeyecek biçimde saklanıyor, yönetici hesaplarında iki aşamalı doğrulama kullanılıyor. Sunucu erişimini yalnızca gerekli kişilere açıyor, kullanılmayan hesapları düzenli olarak kapatıyoruz. Sistemde kimin, ne zaman, hangi bilgiyi değiştirdiği bir işlem geçmişinde tutuluyor; bir anlaşmazlık çıktığında geriye dönüp bakmak mümkün oluyor. Müşterilerinize ve çalışanlarınıza ait kişisel veriler için yürürlükteki veri koruma mevzuatının gereklerini göz önünde bulunduruyor, gereksiz veri toplamaktan kaçınıyoruz. Veritabanının şifreli yedeklerini farklı bir konumda saklıyor, bu yedeklerden geri dönüşün gerçekten çalıştığını belirli aralıklarla deniyoruz. Kullanılan kütüphanelerdeki güvenlik açıklarını takip ediyor, gerekli güncellemeleri bakım takvimine ekliyoruz. Güvenlik önlemlerinin çoğu kullanıcı tarafından hiç fark edilmez; iyi kurulmuş bir sistemde olması gereken de budur.
Teslimden Sonra Bakım, Sahiplik, Yeni Sürümler Planlı İlerliyor
Bir uygulama yayına alındıktan sonra da yaşamaya devam eder. İşletim sistemleri, tarayıcılar ve bağlantı kurulan dış servisler değiştikçe küçük uyarlamalar gerekir. Yazılım bakımı için kapsamı yazılı bir destek planı öneriyoruz. Hangi tür sorunlara ne kadar sürede dönüş yapılacağı, güncellemelerin sıklığı ve acil durumlarda kime ulaşılacağı bu planda baştan belli oluyor. Sunucunun kaynak kullanımını, hata kayıtlarını ve yavaşlayan ekranları düzenli olarak izliyoruz. Çoğu sorunu kullanıcılar fark etmeden önce görüp çözmeye çalışıyoruz. Kullanıcılarınızın bildirdiği hataları kayıt altına alıyor, çözüm durumunu size açıkça raporluyoruz. Acil olmayan küçük istekleri biriktirip planlı bakım günlerinde topluca ele alarak sistemi sık sık kesintiye uğratmıyoruz. Kodu yazan ekip olarak sistemin geçmişini bilmemiz, sorunların kaynağını bulmayı da hızlandırıyor. Bakım dönemi aynı zamanda sistemin nasıl kullanıldığını öğrendiğimiz bir dönem oluyor. Hangi ekranların yoğun kullanıldığını, hangi adımlarda zaman kaybedildiğini gördükçe bir sonraki sürüm için somut öneriler çıkıyor.
Sahiplik meselesini sözleşmenin en açık maddelerinden biri yapıyoruz. Projenin sonunda uygulamanın kaynak kodu, veritabanı yapısı, kurulum adımları ve teknik belgeler size teslim ediliyor. Kodun tutulduğu depo hesabı ve sunucu erişimleri işletmeniz adına açılıyor ya da size devrediliyor. Böylece bir gün farklı bir ekiple çalışmak isterseniz sisteminizi sıfırdan yazdırmak zorunda kalmıyorsunuz. Verileriniz de size ait. Kayıtlarınızı istediğiniz zaman yaygın dosya biçimlerinde dışarı alabilmeniz için gerekli dışa aktarma araçlarını sistemin içine koyuyoruz. Kodu, başka bir geliştiricinin okuyup anlayabileceği düzende yazıyor, önemli kararların gerekçelerini kodun yanında not olarak bırakıyoruz. Lisanslı bir bileşen kullanıldıysa, lisansın kimin adına olduğu ve ne zaman yenileneceği de teslim listesinde yer alıyor. Kimsenin çözemediği karmaşık bir yapı, işletmeyi tek bir kişiye ya da firmaya bağımlı hale getirir; biz bu bağımlılığı yaratmak istemiyoruz. Bizimle çalışmaya devam etmenizin tek nedeni, verdiğimiz hizmetten memnun olmanız olmalı.
İşletmeniz büyüdükçe sistemin de onunla birlikte büyümesi gerekiyor. Yeni bir şube, yeni bir ürün grubu ya da artan kullanıcı sayısı, ilk gün öngörülmemiş ihtiyaçlar doğurabiliyor. Bu yüzden altyapıyı baştan modüler kuruyoruz; yeni bir özellik eklemek, mevcut yapıyı yıkmadan mümkün oluyor. Yılda bir ya da iki kez sizinle birlikte sistemin genel durumunu değerlendiriyoruz. Hangi modüller beklentiyi karşıladı, hangi süreçler hâlâ elle yürüyor, gündemde hangi yeni fikirler var? Bu görüşmelerden çıkan öneriler, maliyeti ve getirisiyle birlikte önceliklendiriliyor. İşinizi Erzincan’da yürütürken ortaya çıkan yeni ihtiyaçları kolayca konuşabileceğiniz bir ekiple çalışmak, küçük değişikliklerin bile beklemeden hayata geçmesini kolaylaştırıyor. İyi planlanmış bir yazılım yatırımı, yıllar içinde işletmenize zaman, doğruluk ve kontrol olarak geri dönüyor. Amacımız, sistemin işletmenizle birlikte olgunlaşan ve her yıl biraz daha değerli hale gelen bir araç olmasını sağlamak.
Yazılım Hakkında Sık Sorulan Sorular
Hazır bir program yerine özel yazılım ne zaman mantıklı olur?
Hazır araçların karşılamadığı iş akışları, kendine özgü yetki düzenleri, başka sistemlerle veri bağlantısı ya da standart raporların yetmediği durumlar varsa, ölçülü bir özel yazılım anlamlı olur. Karar, bir programın eksiklerini değil işin gerçek ihtiyacını temel alır; gereksiz kapsamdan da kaçınılır.
Geliştirme süresi nasıl belirlenir?
Süre, kullanıcı rolleri, ekranlar, iş kuralları, dış bağlantılar ve test senaryoları çıkarıldıktan sonra belirlenir. Kapsam netleştikçe iş aşamalara bölünür ve her aşama için gerçekçi bir takvim kurulur. Böylece süre baştan atılan bir tahmin değil, üzerinde anlaşılan bir plan olur.
Halihazırda kullanılan sistemlerle bağlantı kurulabilir mi?
Belgelenmiş ve güvenli erişim sunan sistemlerle bağlantı çoğu durumda kurulabilir. Verinin hangi yöne akacağı, bir hata durumunda ne yapılacağı ve hangi yetkinin gerekeceği baştan tanımlanır. Bağlantının koptuğu an da planlandığı için, aksaklık işleyişi en az düzeyde etkiler.
Kaynak kodu ve hesapların sahipliği kimde olur?
Teslim biçimi ve sahiplik, iş başlamadan sözleşmede belirlenir. İşletmenin kullanacağı hesaplar, erişim bilgileri ve kaynakların kime ait olacağı baştan netleştirilir. Böylece ilerleyen dönemde kimin neye erişebildiği bir belirsizlik konusu olmaktan çıkar.
Yayına alındıktan sonra bakım nasıl yürür?
Hata giderme, güvenlik güncellemeleri, düzenli izleme ve yeni geliştirmeler ayrı sorumluluklar olarak planlanır. Acil bir aksaklık ile sonradan istenen bir ekleme aynı sıraya konmaz; her biri kendi önceliğiyle yürütülür. Böylece günlük işleyiş, yeni istekler yüzünden aksamaz.
Kullanıcı sayısı arttığında sistem buna uyar mı?
Yapı, beklenen kullanım ve veri hacmi göz önünde tutularak kurulur; böylece kullanıcı sayısı arttığında düzenin bozulmadan genişlemesi hedeflenir. Performans, belirli aralıklarla ölçülür ve büyümeyle ilgili kararlar bu ölçümlere dayandırılır. Erken alınan bu önlemler, sonradan yapılacak köklü değişiklikleri azaltır.
