Yazılım
- Anasayfa
- Yazılım
Yazılımı Elle Tekrarlanan İşlerin Listesinden Tasarlıyoruz
Pek çok işletmede siparişler bir deftere, stok bilgisi bir tabloya, müşteri notları ise mesaj gruplarına dağılmış halde tutulur. Aynı bilgi gün içinde birkaç kez elle kopyalanır ve her kopyada hata yapma ihtimali biraz daha büyür. Yazılım ihtiyacını belirlerken önce bu dağınıklığın haritasını çıkarıyoruz. Sizinle ve ekibinizle görüşüp sıradan bir iş gününü baştan sona anlatmanızı istiyoruz: bilgi kimden geliyor, nereye yazılıyor, kim onaylıyor, sonunda kime ulaşıyor? Mümkünse ekibinizin kullandığı tabloları, formları ve mesaj akışlarını birlikte inceliyoruz, çünkü anlatılan süreç ile gerçekte yaşanan süreç her zaman aynı olmaz. Çalışanlarınızın kendi bulduğu pratik çözümleri de not ediyoruz. Bu anlatımda en çok zaman alan, en sık hata üreten ve en çok şikâyet edilen adımlar kendiliğinden öne çıkar. İster Giresun’da tek şubeyle çalışan bir işletme olun ister birkaç noktada ekip yönetin, elle tekrarlanan bu adımların listesi geliştirilecek sistemin ilk taslağı olur.
Tespit edilen sorunları, çözüldüğünde neyin değişeceğini gösteren ölçülebilir hedeflere dönüştürüyoruz. Teklif hazırlamak dakikalar içinde bitsin, depodaki sayım ile sistemdeki rakam aynı çıksın, hiçbir randevu hatırlatmasız kalmasın gibi somut cümleler kuruyoruz. Ardından sistemi kimlerin kullanacağını belirliyoruz; muhasebe sorumlusunun gördüğü ekran ile sahadaki çalışanın ihtiyaç duyduğu ekran aynı olmak zorunda değildir. Her kullanıcı grubu için yetkileri ve yapılacak işleri sade senaryolar halinde yazıyoruz. Senaryolar teknik bir dille değil, “depo sorumlusu gelen malı telefondan kaydeder” gibi herkesin anlayacağı cümlelerle kurulur. Sistemin günde kaç kayıt işleyeceği, kaç kişinin aynı anda kullanacağı ve hangi cihazlardan erişileceği gibi teknik gereksinimleri de bu aşamada netleştiriyoruz. Bu senaryoları önem sırasına koyarken kararı sizinle birlikte veriyoruz; ilk günden şart olanlar, kısa süre sonra eklenebilecekler ve şimdilik bekleyebilecekler ayrı listelerde durur. Ortaya çıkan belge, geliştirme boyunca ekibimizin ve sizin başvurduğunuz ortak bir dil haline gelir.
Her ihtiyacın cevabı sıfırdan yazılmış bir sistem değildir. Analiz sonunda piyasadaki hazır bir uygulamanın işinizi karşıladığını görürsek bunu açıkça söylüyoruz; gereksiz bir özel geliştirme ne size ne de bize fayda sağlar. Bazen doğru yol, kullandığınız muhasebe programını ya da e-ticaret altyapısını koruyup eksik kalan kısmı onlara bağlanan küçük bir modülle tamamlamaktır. Özel yazılım geliştirme ise iş akışınız gerçekten size özgü olduğunda ya da hazır araçlar sizi kendi yönteminizden vazgeçmeye zorladığında anlam kazanır. Kullanıcı sayısı arttıkça büyüyen lisans ücretleri de bu kararı etkileyen önemli bir kalemdir. Verileriniz başka bir şirketin sunucusunda çalışan hazır bir hizmete emanet edilecekse, nerede saklandığını ve nasıl geri alınabileceğini de sorguluyoruz. Karar aşamasında her seçeneğin ilk maliyetini, bakım yükünü ve büyümeye açıklığını yan yana koyarak sunuyoruz. Böylece tercihinizi bir satış konuşmasına değil, karşılaştırmalı bir tabloya dayanarak yapıyorsunuz.
İlk Sürüm Küçük Olur, Ama Her Gün Kullanılır
Bütün isteklerin tek seferde hayata geçirilmeye çalışıldığı büyük projeler çoğu zaman gecikir, bütçeyi aşar ve teslim edildiğinde ihtiyaçlar çoktan değişmiş olur. Biz bunun yerine ilk sürümü, listenin en üstündeki bir ya da iki sorunu eksiksiz çözecek biçimde sınırlıyoruz. Bu sürümün görünüşü sade olabilir, ama gerçek verilerle ve gerçek kullanıcılarla her gün çalışacak kadar sağlam olmalıdır. Devreye alırken eski yöntemi bir süre paralel yürütmeyi öneriyoruz; iki kaynaktaki rakamlar karşılaştırılarak sistemin doğruluğundan emin olunur. Ekibinizin sistemi kullanmaya başladığı ilk haftalar, masa başında yapılan onlarca toplantıdan daha fazlasını öğretir. Hangi ekranın kafa karıştırdığı, hangi alanın hiç doldurulmadığı, hangi raporun ise sürekli istendiği ancak kullanım sırasında görülür. Kullanıcılardan gelen notları haftalık olarak topluyor, sonraki geliştirmeleri tahminlere göre değil bu gözlemlere göre planlıyoruz. Küçük başlamak, bütçenizi de en çok fayda getirecek işe yönlendirmenizi kolaylaştırır.
Kod yazmaya geçmeden önce ekranların tıklanabilir bir prototipini hazırlıyoruz. Bu prototip üzerinde bir siparişin girilmesinden faturanın kesilmesine kadar uzanan akışı siz ve ekibiniz adım adım deniyorsunuz. Bir düğmenin yeri, bir listenin hangi sütunları göstereceği ya da bir formun kaç adımda tamamlanacağı bu aşamada kolayca değiştirilebilir. Aynı değişiklik kod yazıldıktan sonra yapıldığında hem zaman hem de bütçe açısından çok daha pahalıya gelir. Arayüzü tasarlarken ekranın başında kimin oturacağını düşünüyoruz. Gün boyu aynı işlemi tekrarlayan bir çalışan için kısayollar ve hızlı giriş alanları, arada bir rapora göz atan yönetici için ise özet paneller öne çıkar. Sahada telefonla, ofiste bilgisayarla çalışılacaksa her iki ekran için ayrı akışlar tasarlıyoruz. Prototip üzerindeki yorumlarınızı ekran ekran topluyor, her değişikliğin gerekçesini not alıyoruz. Yazılım ekibimiz prototip onaylanmadan geliştirmeye geçmez; böylece sürprizlerin büyük kısmı daha başlangıçta ortadan kalkar.
Geliştirmeyi kısa etaplara ayırıyoruz ve her etabın sonunda çalışır durumdaki yeni bölümü önünüze koyuyoruz. Etabın başında hangi işlerin ele alınacağını birlikte seçiyor, tamamlananları ise deneme ortamında kullanımınıza açıyoruz. Bu düzen, projenin nereye gittiğini aylar sonra değil haftalar içinde görmenizi sağlar. Proje ilerlerken yeni fikirlerin gelmesi doğaldır; önemli olan bunların kapsamı sessizce büyütmemesidir. Her yeni isteği etkisi, gerektirdiği emek ve takvime yansımasıyla birlikte değerlendiriyor, eklenip eklenmeyeceğine sizinle birlikte karar veriyoruz. Bazen yeni bir isteğe yer açmak için daha az önemli bir maddeyi sonraki sürüme bırakmak gerekir. Bu açık pazarlık, bütçenin ve teslim tarihinin kontrolden çıkmasını engeller. Yetişmeyen bir iş olursa bunu etap sonunu beklemeden haber veriyor, nedenini ve yeni planı açıkça paylaşıyoruz. Toplantıları kısa tutuyor, kararları yazılı bir özetle kayda geçiriyoruz. İlerlemeyi takip edebileceğiniz ortak bir görev panosu da proje boyunca erişiminize açık tutulur.
Kod, Test, Entegrasyon ve Güvenlik Yan Yana Yürür
Geliştirme sırasında yazdığımız her önemli işlevin yanına onu denetleyen otomatik testler ekliyoruz. Fiyat hesabı, vergi oranı, stok düşümü ya da prim hesaplaması gibi hatası doğrudan paraya dokunan kısımlar bu testlerin önceliğidir. Testler her kod değişikliğinde kendiliğinden yeniden çalışır; eski bir özelliği bozan yeni bir değişiklik canlıya çıkmadan yakalanır. Bulunan her hata için ayrıca bir test yazıyoruz ki aynı sorun tekrar etmesin. Koddaki her değişiklik sürüm kontrol sisteminde kayıt altına alınır ve başka bir geliştiricinin incelemesinden geçmeden ana sürüme eklenmez. Yeni özellikler önce canlı sistemden ayrı bir deneme ortamında çalıştırılır; siz de değişiklikleri bu ortamda kendi gözünüzle kontrol edersiniz. Sistemin çok sayıda kayıtla ve aynı anda çalışan birçok kullanıcıyla nasıl davrandığını yük testleriyle ölçüyoruz. Kullanıcı kabul testlerini ekibinizden seçilen kişilerle, gerçek iş senaryoları üzerinden yapıyoruz. Yazılım yalnızca teknik testleri geçtiği için değil, onu kullanacak kişiler işlerini rahatça yapabildiği için hazır sayılır.
Yeni sistemin işletmenizdeki diğer araçlarla konuşabilmesi çoğu zaman projenin en değerli kısmıdır. Muhasebe programı, e-fatura servisi, sanal pos, kargo firmaları, toplu mesaj hizmetleri ya da pazar yerleri gibi dış sistemlerle bağlantıyı resmi arayüzleri üzerinden kuruyoruz. Resmi bir bağlantı arayüzü bulunmayan eski programlarda, dosya aktarımı gibi daha basit ama güvenilir yöntemler kurguluyoruz. Böylece aynı bilgiyi iki ayrı yere elle girme zorunluluğu ortadan kalkar. Dış servislerin zaman zaman yavaşlayabileceğini ya da hiç yanıt vermeyebileceğini baştan hesaba katıyoruz. Bağlantı koptuğunda işlem kaybolmaz, sıraya alınır ve servis geri geldiğinde tamamlanır. Hangi verinin hangi yönde ve ne sıklıkla aktarıldığını belgeliyor, aktarım hatalarında sizi uyaran bildirimler kuruyoruz. Dış servislere ait erişim anahtarlarını kod içinde değil, ayrı ve korumalı ayarlarda saklıyoruz; bu hizmetlerin hesapları ve sözleşmeleri de sizin adınıza açılır. Entegrasyonlar sayesinde sistem, işletmenizde ayrı adacıklar gibi çalışan araçları tek bir akışa bağlar.
Güvenlik, bitmiş bir sisteme sonradan eklenen bir katman değil, ilk satırdan itibaren verilen kararların toplamıdır. Her kullanıcı yalnızca görevinin gerektirdiği verilere erişir; kimin hangi kaydı ne zaman değiştirdiği iz kayıtlarında saklanır. Ayrılan bir çalışanın erişimini tek adımda kapatabilmeniz için kullanıcı yönetimini de size bırakıyoruz. Parolalar geri çözülemeyecek biçimde tutulur, veri trafiği şifreli bağlantı üzerinden taşınır ve kritik işlemler için iki adımlı doğrulama sunulur. Formlardan gelen her girdiyi kötüye kullanım ihtimaline karşı denetliyor, yetkisiz erişim denemelerini sınırlayan kurallar koyuyoruz. Müşteri bilgisi işleyen sistemlerde kişisel verilerin korunmasına dair mevzuatın gerektirdiği saklama, silme ve erişim kurallarını tasarıma baştan dahil ediyoruz. Kullandığımız yazılım bileşenlerini bilinen açıklara karşı düzenli olarak tarıyor, kütüphanelerin güvenlik güncellemelerini takip ediyoruz. Otomatik yedekler ayrı bir konumda saklanır ve geri yükleme işlemi belirli aralıklarla gerçekten denenir. Olası bir güvenlik olayında izlenecek adımları da kısa bir müdahale planında topluyoruz.
Teslimden Sonra Kod ve Veri Sizde, Bakım Takvimi Bizde
Sizin için geliştirdiğimiz sistemin kaynak kodu proje tamamlandığında size teslim edilir ve bu hak sözleşmede açıkça yazılır. Dilerseniz kod deposunu baştan kendi hesabınızda açıyoruz; böylece geliştirme boyunca yapılan her değişikliği siz de görebiliyorsunuz. Kodun okunabilir olması da sahipliğin bir parçasıdır; anlaşılır adlandırma, açıklama satırları ve tutarlı bir yapı, sistemi başkalarının da geliştirebilmesini sağlar. Kurulum adımlarını, sunucu gereksinimlerini, veritabanı yapısını ve dış servislerle bağlantı ayarlarını anlaşılır bir teknik belgeyle birlikte veriyoruz. Teslimde sistemin sıfırdan nasıl kurulduğunu sizin ya da teknik sorumlunuzun önünde bir kez baştan sona uyguluyoruz. Bu belge ve uygulama sayesinde ileride başka bir geliştirici ekiple çalışmak isteseniz bile sistem sorunsuzca devralınabilir. Projede kullandığımız hazır kütüphanelerin lisanslarını listeliyor, ticari kullanımda sorun çıkarabilecek bir bileşeni sisteme dahil etmiyoruz. Uzun soluklu iş birliklerimizin kaynağını kodun anahtarını elimizde tutmakta değil, verdiğimiz hizmetin niteliğinde görüyoruz.
Sistemde biriken müşteri kayıtları, siparişler, stok hareketleri ve raporlar işletmenizin varlığıdır. Eski programınızdan ya da tablolarınızdan gelen verileri yeni sisteme aktarırken önce temizliyor, tekrar eden ve eksik kayıtları sizinle birlikte ayıklıyoruz. Verilerinizi istediğiniz an yaygın dosya biçimlerinde dışa aktarabileceğiniz bir işlev ekliyoruz; bunun için bizden bir şey talep etmeniz gerekmiyor. Veritabanının yapısını açıklayan bir şema belgesi, verinizin başka bir sistemde de anlamlı biçimde kullanılabilmesini sağlar. Sistemin nerede barındırılacağına ihtiyaçlarınıza göre birlikte karar veriyoruz. Kendi sunucunuz, bulut hizmeti ya da yönetilen bir barındırma paketi arasındaki farkları maliyet, güvenlik ve bakım yükü açısından anlatıyoruz. Barındırma hesabı ve faturaları sizin adınıza düzenlenir. Yedeklerin hangi sıklıkla alındığını ve nerede saklandığını bilmeniz için bu bilgileri de teslim belgesine ekliyoruz. Bir gün farklı bir çözüme geçmeye karar verirseniz, verilerinizin eksiksiz ve okunabilir biçimde taşınmasına yardımcı oluyoruz.
Canlıya alınan bir sistemin ömrü, bakımının ne kadar düzenli yapıldığına bağlıdır. Bakım kapsamını ve ek geliştirmelerin nasıl planlanacağını ayrı bir destek anlaşmasında yazılı hale getiriyoruz. İşletim sistemi, veritabanı ve kütüphane güncellemeleri zamanla kaçınılmaz hale gelir; bunları deneme ortamında sınadıktan sonra canlıya aktarıyoruz. Çalışma durumunu, hata kayıtlarını ve yanıt sürelerini izleyen uyarılar sayesinde birçok sorunu siz fark etmeden görüp müdahale ediyoruz. Destek talepleriniz için açık bir iletişim kanalı ve önceliklendirme kuralları belirliyoruz; işi durduran bir arıza ile küçük bir görünüm isteği aynı sırada beklemez. Yeni çalışanlarınız için kısa eğitimler düzenliyor, kullanım kılavuzunu değişen ekranlara göre güncel tutuyoruz. Yılda bir kez sistemin genel durumunu birlikte gözden geçiriyor, hangi modülün yenilenmesi ya da sadeleştirilmesi gerektiğini konuşuyoruz. Giresun’daki işletmenizin ihtiyaçları büyüdükçe yazılım da yeni modüllerle genişler ve ilk günkü sade yapısını koruyarak işinize eşlik etmeyi sürdürür.
Yazılım Hakkında Sık Sorulan Sorular
Başlangıç için ayrıntılı teknik doküman şart mı?
Hayır. İş kuralları, kimin hangi işi yaptığı ve beklenen sonuç netse teknik ayrıntılar analiz sırasında birlikte çıkarılabilir. Belirsiz kalan noktaları varsayımla doldurmak yerine konuşarak netleştiriyoruz; böylece bir özel yazılım daha ilk adımda gerçek işe oturuyor.
Eski Excel ve tablo kayıtları aktarılabilir mi?
Genellikle evet. Veriler önce inceleniyor, ardından eski alanlarla yeni yapı arasında eşleme yapılıyor. Yinelenen kayıtlar, farklı tarih biçimleri, eksik değerler ve bozuk karakterler aktarımdan önce raporlanıyor; çünkü temizlenmeden taşınan bir kayıt yeni düzende de aynı sorunu çıkarır.
Çalışanlara farklı erişim yetkileri verilebilir mi?
Evet. Görev bazında görüntüleme, düzenleme, onay ve dışa aktarma sınırları ayrı ayrı kurulabilir. Yetki düzeni iş sorumluluklarıyla birlikte gözden geçiriliyor; böylece herkes yalnızca kendi işini ilgilendiren kayda erişiyor, gerisi görüş alanının dışında kalıyor.
Muhasebe veya başka servislerle bağlantı kurulur mu?
Servis güvenilir bir bağlantı arayüzü sunuyorsa entegrasyon değerlendirilebilir. Kimlik doğrulama, veri sınırı, hata yanıtı ve tekrar deneme davranışı önceden belirleniyor. Dış servis yavaşladığında ya da yanıt vermediğinde iç işleyişin bozulmadan sürmesini esas alıyoruz.
Geliştirme sürerken ekranları deneyebilir miyiz?
Evet. Tamamlanan akışlar bir deneme ortamında kademeli olarak açılabiliyor. Geri bildirimler ekran ve senaryo adıyla toplanıyor; onaylanan bir davranış, sonraki adımlarda gerekçe gösterilmeden değiştirilmeden korunuyor.
Yayın sonrası yeni özellikler nasıl planlanır?
Önce talebin hangi sorunu çözdüğü ve ne sıklıkta kullanılacağı ölçülüyor. Ardından veri modeli, yetkiler, mevcut akış ve bakım yükü birlikte değerlendirilerek kapsam belirleniyor; böylece her ekleme işi ağırlaştırmadan, sırası geldiğinde planlanıyor.
