Yazılım
- Anasayfa
- Yazılım
Yazılım İhtiyacını Ekibinizin Gün İçindeki Tekrarlarından Okuyoruz
Çoğu işletmede özel bir programa duyulan ihtiyaç bir anda ortaya çıkmaz. Önce bir tablo büyür, ardından aynı bilgi üç farklı yere yazılmaya başlar, sonunda da siparişler ya da randevular gözden kaçar. Bir yazılım projesine başlamadan önce bu tabloyu olduğu gibi görmek istiyoruz. Ekibinizin gün içinde hangi işleri elle tekrarladığını, hangi bilgiyi kime mesajla sorduğunu ve hataların genellikle hangi adımda oluştuğunu birlikte çıkarıyoruz. Çerkezköy’de üretimden hizmete kadar farklı alanlarda çalışan işletmelerin ihtiyaçları birbirine benzemiyor; bu nedenle hazır bir şablondan değil, sizin iş akışınızdan yola çıkıyoruz. Görüşmelere yalnızca yöneticileri değil, sistemi her gün kullanacak çalışanları da dâhil ediyoruz. Bir ekranın gerçekten kullanışlı olup olmadığını, onu gün boyu açıp kapatacak kişi herkesten önce fark ediyor. Bu gözlemleri, işin bugün nasıl yürüdüğünü adım adım gösteren sade bir akış şemasına dönüştürüp sizinle paylaşıyoruz.
Gözlemlerden sonra çözmek istediğimiz sorunu tek cümleyle yazmaya çalışıyoruz. Örneğin stok sayımına her hafta saatler harcanması ya da tekliflerin müşteriye geç ulaşması gibi somut bir tanım, projenin pusulası hâline geliyor. Ardından sistemi kimlerin kullanacağını ve her kullanıcının neyi görüp neyi değiştirebileceğini belirliyoruz. Muhasebe biriminin göreceği ekranla sahadaki çalışanın telefonda kullanacağı ekran aynı olmak zorunda değil. Yetki yapısını baştan doğru kurmak, ileride hassas bilgilerin yanlış kişilerin önüne düşmesini de engelliyor. Hangi bilginin nereden geldiğini, kimin onayından geçtiğini ve hangi raporda kullanıldığını bir veri akışı olarak çiziyoruz. Bu adımda, işinizde kullanılan belgelerin, formların ve tabloların örneklerini de topluyor, alan alan inceliyoruz. Başarıyı nasıl ölçeceğimizi de bu aşamada konuşuyoruz: formların doldurulma süresi, hatalı kayıt sayısı ya da bir siparişin teslimata kadar geçen zamanı gibi. Bu ölçütler, ileride hangi özelliğin gerçekten işe yaradığını tartışırken bize ortak bir dil sağlıyor.
Her ihtiyaç için sıfırdan kod yazmak doğru çözüm değil. Analizin sonunda piyasadaki hazır bir yazılım paketinin, küçük bir uyarlamayla işinizi görebileceğini fark edersek bunu açıkça söylüyoruz. Böylece ihtiyacınız olmayan bir geliştirme masrafına girmemiş oluyorsunuz. Hazır ürünlerin lisans maliyetini, esneklik sınırlarını ve verinizi dışarı aktarma kolaylığını özel geliştirmeyle yan yana koyarak karşılaştırıyoruz. Hazır çözümün ileride sizi nerede zorlayabileceğini de bu karşılaştırmada gösteriyoruz. Bazen en mantıklı yol, mevcut muhasebe ya da e-ticaret sisteminizi koruyup yanına eksik parçayı tamamlayan küçük bir modül eklemek oluyor. Özel geliştirme gerektiğinde ise ihtiyaç analizini, kullanıcı rollerini ve veri akışını içeren yazılı bir belge hazırlıyoruz. Bu belge hem bizim geliştirme sırasında sadık kalacağımız çerçeveyi hem de sizin bütçe kararınızı verirken dayanacağınız zemini oluşturuyor. Belgeyi birlikte okuyor, anlaşılmayan ya da eksik kalan her maddeyi netleştirmeden bir sonraki adıma geçmiyoruz.
İlk Sürümü Küçük Tutup Gerçek Kullanıcıyla Sınıyoruz
Kapsam belirlenirken akla gelen her özelliği ilk sürüme sığdırmak cazip görünür, ama bu yaklaşım hem teslimi geciktirir hem de gerçekten gerekli olanı gölgeler. Bu yüzden özellikleri üç gruba ayırıyoruz: ilk günden olması gerekenler, kullanım başladıktan sonra değerlendirilecekler ve şimdilik rafa kaldırılanlar. İlk gruba yalnızca eksik olduğunda işin hiç yürümeyeceği adımlar giriyor. Örneğin bir sipariş takip sisteminde sipariş girişi ve durum güncellemesi ilk gruba girerken, ayrıntılı grafikli raporlar ikinci gruba bırakılabilir. Her özellik için tahmini emek miktarını ve bağımlılıklarını gösteren bir iş listesi çıkarıyoruz. Bu liste, bütçenizi hangi özelliğe harcadığınızı şeffaf biçimde görmenizi sağlıyor. Öncelikler proje sırasında değişirse listeyi birlikte güncelliyor, yeni eklenen bir işin hangi işi geriye ittiğini açıkça konuşuyoruz. Kapsam belgesinde yer almayan bir işin sessizce eklenmesine izin vermiyoruz, çünkü plansız eklemeler hem takvimi hem de kod kalitesini zorluyor.
Kod yazmaya başlamadan önce ekranların tıklanabilir bir prototipini hazırlıyoruz. Prototip aşaması, bir menünün yerini ya da bir formdaki alan sırasını değiştirmenin en ucuz olduğu an. Aynı değişiklik kod yazıldıktan sonra çok daha fazla emek istiyor. Prototipi ekibinizden birkaç kişiye gerçek bir görev vererek deniyoruz: yeni müşteri kaydı açmak, bir teklifi onaya göndermek ya da geçen ayın raporunu bulmak gibi. Kullanıcının nerede duraksadığını, hangi butonu aradığını ve hangi adımda yanlış yere tıkladığını not ediyoruz. Bu gözlemler, toplantı masasında tahmin edemeyeceğimiz sorunları ortaya çıkarıyor. Tasarım dili konusunda da sade ve tutarlı bir yol izliyor, aynı işlemin her ekranda aynı yerde ve aynı adla bulunmasını sağlıyoruz. Ekranların telefonda, tablette ve masaüstünde nasıl görüneceğini de bu aşamada kararlaştırıyoruz. Prototip onaylandığında, yazılım ekibinin neyi inşa edeceği artık belirsiz bir fikir değil, herkesin gördüğü somut bir model.
İlk sürümü, belirlediğimiz çekirdek özelliklerle ve sınırlı sayıda kullanıcıyla canlı ortama alıyoruz. Bu dönemde eski yöntemlerinizi hemen bırakmanızı istemiyoruz; bir süre iki yolun yan yana yürümesi, yeni sistemdeki eksikleri güvenle görmemizi sağlıyor. Kullanıcılardan gelen geri bildirimleri tek bir listede topluyor, her birini hata, iyileştirme ya da yeni özellik olarak sınıflandırıyoruz. Hataları hızla düzeltiyor, iyileştirmeleri kısa aralıklarla yayınlanan küçük güncellemelere bölüyoruz. Bu aşamada kullanıcılara kısa eğitimler veriyor, sık sorulan sorulara göre ekran içi yardım metinlerini zenginleştiriyoruz. Kullanım verilerine bakarak hangi ekranların yoğun kullanıldığını, hangilerinin neredeyse hiç açılmadığını görüyoruz. Hiç kullanılmayan bir özelliği geliştirmeye devam etmek yerine, insanların gerçekten ihtiyaç duyduğu yere emek harcıyoruz. Pilot kullanıcıların görüşleri olgunlaştıkça sistemi ekibin geri kalanına kademeli olarak açıyoruz. İlk sürümün ardından gelen her adım, varsayımlar yerine gerçek kullanımdan elde edilen bilgilere dayanıyor.
Test, Entegrasyon ve Güvenlik Kodla Aynı Anda İlerliyor
Geliştirme sürecinde kodu sürüm kontrol sistemiyle yönetiyor, her değişikliğin kim tarafından ve neden yapıldığını kayıt altında tutuyoruz. Canlı sistemden ayrı bir test ortamı kuruyor, yeni özellikleri önce orada deniyoruz. Hesaplama yapan, stok düşen ya da fatura üreten kritik fonksiyonlar için otomatik testler yazıyoruz. Böylece yeni bir değişiklik eski bir özelliği bozduğunda bunu kullanıcıdan önce biz fark ediyoruz. Otomatik testlerin yakalayamadığı kullanım senaryolarını ise gerçek iş akışını adım adım izleyerek elle kontrol ediyoruz. Kod inceleme alışkanlığımız sayesinde her değişikliği en az iki kişi görüyor, gizli kalabilecek hatalar erkenden yakalanıyor. Yazılım ekibimiz her güncellemeden önce kısa bir kontrol listesinden geçiyor ve değişiklik notlarını sade bir dille size iletiyor. Performans testlerinde sistemin çok sayıda kayıt ve eş zamanlı kullanıcı altında nasıl davrandığını ölçüyoruz, çünkü bugün hızlı çalışan bir ekran, veri birikince yavaşlayabilir.
Yeni sistemin işletmenizde yalnız başına çalışması nadiren yeterli oluyor. Muhasebe programınız, e-fatura sağlayıcınız, ödeme altyapınız, kargo firmanız ya da pazar yeri hesaplarınızla veri alışverişi gerekiyorsa bu bağlantıları kapsamın başında listeliyoruz. Her entegrasyon için karşı tarafın sunduğu arayüzün belgelerini inceliyor, hangi verinin ne sıklıkla ve hangi yönde aktarılacağını netleştiriyoruz. Bağlantı koptuğunda ya da karşı sistem hata verdiğinde verinin kaybolmaması için yeniden deneme ve uyarı mekanizmaları kuruyoruz. Aktarımların saatini ve sonucunu gösteren küçük bir kayıt ekranı da ekliyoruz; bir sipariş karşı sisteme ulaşmadıysa bunu siz de hemen görüyorsunuz. Mevcut Excel tablolarınızdaki ya da eski programınızdaki kayıtları yeni sisteme taşırken önce verileri temizliyor, tekrar eden müşteri kayıtlarını birleştiriyor, eksik alanları sizinle birlikte tamamlıyoruz. Taşıma işlemini önce test ortamında prova ediyor, sonuçları örnek kayıtlar üzerinden kontrol ettikten sonra asıl aktarımı yapıyoruz. Aktarım sonrasında eski ve yeni sistemdeki toplamları karşılaştırarak hiçbir kaydın yolda kaybolmadığından emin oluyoruz.
Güvenliği projenin sonuna eklenen bir katman olarak değil, ilk satırdan itibaren uyulan bir kurallar bütünü olarak ele alıyoruz. Kullanıcı şifrelerini geri çözülemeyecek biçimde saklıyor, yönetici hesaplarında iki adımlı doğrulama öneriyoruz. Her kullanıcının yalnızca görevinin gerektirdiği verilere erişebilmesi için yetkileri rol bazında tanımlıyoruz. Formlardan gelen verileri veritabanına yazılmadan önce denetliyor, bilinen saldırı türlerine karşı kodu düzenli olarak gözden geçiriyoruz. Kişisel verilerin işlenmesiyle ilgili yasal yükümlülüklerinizi göz önünde bulundurarak hangi bilginin ne kadar süre tutulacağını sizinle birlikte kararlaştırıyoruz. Sunucu ve kullanılan kütüphanelerdeki güvenlik güncellemelerini takip ediyor, kritik bir açık duyurulduğunda sistemi vakit kaybetmeden güncelliyoruz. Veritabanı yedeklerini farklı bir konumda saklıyor, geri yükleme işleminin gerçekten çalıştığını belirli aralıklarla deniyoruz. Sistemde kimin hangi kaydı ne zaman değiştirdiğini gösteren işlem günlükleri, olası bir sorunda neyin yanlış gittiğini hızla bulmamıza yardım ediyor.
Kaynak Kod Sizde Kalıyor, Bakım ve Eğitim Planı Baştan Belli
Geliştirdiğimiz sistemin kaynak kodu, proje bedeli ödendiğinde işletmenize devrediliyor. Kodun bulunduğu depoya, sunucuya, alan adına ve kullanılan üçüncü taraf hizmetlerin hesaplarına ait erişim bilgilerini eksiksiz teslim ediyoruz. Sunucu hesabının da işletmeniz adına açılmasını öneriyor, faturalandırmanın doğrudan size yapılmasını sağlıyoruz. Kodun yanında kurulum adımlarını, veritabanı yapısını ve entegrasyonların nasıl çalıştığını anlatan teknik belgeler de hazırlıyoruz. Yarın başka bir ekip projeyi devralmak isterse, her şeyi sıfırdan çözmek zorunda kalmıyor. Verileriniz her zaman sizin; istediğiniz an tüm kayıtları yaygın dosya biçimlerinde dışa aktarabileceğiniz bir düzen kuruyoruz. Sizi tek bir firmaya bağımlı kılan kapalı çözümler yerine yaygın kullanılan, belgelendirilmiş teknolojileri tercih ediyoruz. Yazılım teslim edilirken hangi açık kaynak bileşenlerin kullanıldığını ve lisans koşullarını da listeliyoruz. Çerkezköy’de ya da başka bir yerde çalışacağınız her geliştirici, bu belgelerle sistemi kısa sürede tanıyabiliyor.
Canlıya alınan bir sistem, işletmeniz büyüdükçe ve çevresindeki teknolojiler değiştikçe bakım ister. Bakım sözleşmesinin kapsamını baştan yazılı hâle getiriyoruz. Hata düzeltmeleri, güvenlik güncellemeleri, sunucu izleme ve yedek kontrolü bu kapsamın içinde yer alırken yeni özellik talepleri ayrıca değerlendiriliyor. Bir hata bildirildiğinde önceliğini işinize etkisine göre belirliyoruz; sipariş almayı durduran bir sorunla bir yazım hatası aynı sırada beklemiyor. Sunucunun çalışma durumunu ve hata kayıtlarını izleyen uyarı sistemleri sayesinde birçok sorunu siz fark etmeden önce görüyoruz. Entegre olduğumuz dış hizmetler arayüzlerini değiştirdiğinde gerekli uyarlamaları planlıyoruz. Bakım dönemlerinde yapılan her işlemi tarih ve açıklamayla kayda geçiriyor, bu kaydı sizinle paylaşıyoruz. Düzenli yazılım bakımı, sistemin yıllar içinde yavaşlamasını, eski kütüphaneler yüzünden güvenlik açığı oluşmasını ve küçük sorunların birikerek büyümesini engelliyor. Bakım desteği almadan sistemi kendi ekibinizle sürdürmek isterseniz, bunun için gereken bilgiyi ve erişimi eksiksiz aktarıyoruz.
Bir sistemin başarısı, onu kullanan ekibin ne kadar rahat hissettiğiyle doğrudan ilgili. Canlıya geçiş öncesinde kullanıcı gruplarına göre ayrı eğitimler düzenliyor, sık yapılan işlemleri anlatan kısa ekran kayıtları ve yazılı rehberler hazırlıyoruz. Yeni işe başlayan bir çalışanın bu rehberlerle sistemi kendi başına öğrenebilmesini hedefliyoruz. Eğitimlerden sonra ilk haftalarda gelen soruları toplayıp rehberleri bu sorulara göre güncelliyoruz. İşletmeniz büyüdükçe yeni şube, yeni ürün grubu ya da yeni bir satış kanalı eklemek isteyebilirsiniz; mimariyi baştan bu tür eklemelere izin verecek esneklikte kuruyoruz. Her yeni modülü, ilk sürümde izlediğimiz yolla ele alıyoruz: ihtiyacı netleştiriyor, küçük başlıyor, kullanımı gözlemleyip büyütüyoruz. Yılda bir ya da iki kez sistemin genel durumunu sizinle birlikte değerlendiriyor, hangi alanların iyileştirmeye ihtiyaç duyduğunu ve teknolojik olarak hangi güncellemelerin yaklaştığını konuşuyoruz. Çerkezköy’deki işletmenizin iş yapma biçimi değiştikçe, sistem de bu değişime ayak uydurabiliyor.
Yazılım Geliştirme İçin Sık Sorulan Sorular
Kullandığımız tablolar işimizi görüyor; yine de özel yazılım gerekir mi?
Her iş için yeni bir uygulama gerekmeyebilir. Önce tabloların tam olarak nerede zorlandığına bakarız: aynı kaydın elle tekrarlanması, kişiye göre yetki ihtiyacı ya da bilgiye zamanında ulaşamamak farklı çözümlere işaret eder.
Mevcut düzenin iyileştirilmesi yeterliyse bunu öneririz. Bir özel yazılım önerisi yalnızca tablo kullanıyor olmanıza değil, çözülemeyen bir ihtiyaca ve işletmenizin beklediği somut sonuca dayanır.
Sadece belirli bir işlemi geliştirerek başlayabilir miyiz?
Başlanabilir. Yalnızca seçilen işlemin hangi bilgilere ve başka hangi adımlara bağlı olduğunun anlaşılması gerekir. Tek başına kullanılabilecek bir kapsam belirlemek, ekrandan bir bölümü ayırmaktan farklı bir iştir.
Başta hangi girişlerin, çıktıların ve yetkilerin gerektiğini yazıya döküyoruz. İlk sürümü, kullanılabilir bir işi baştan sona tamamlayacak biçimde planlıyoruz; sonraki ihtiyaçları ayrı aşamalar olarak ele alabiliyoruz.
Yazılımı kullanacak kişiler taslakları önceden görebilir mi?
Değerlendirmeye dahil edilen kullanıcılarla taslak ekranları ve örnek akışları paylaşabiliyoruz. İşlemi fiilen yürüten kişinin geri bildirimi, ihtiyaçların doğru anlaşılmasına belirgin katkı sağlıyor.
Görüşleri tek tek görevler üzerinden topluyor, hangi değişikliğin hangi sorunu karşıladığını değerlendiriyoruz. Yeni çıkan ihtiyaçların kapsama ve takvime etkisini açıklayarak uygulamaya alınacak düzenlemeleri belirliyoruz.
Programlarımızın birbiriyle bağlantı kurabileceğini nasıl anlarız?
Önce kullandığınız sistemlerin sunduğu bağlantı yöntemlerini, erişim koşullarını ve taşınmak istenen bilgileri inceleriz. Bir programın adını bilmek, tek başına bütün bağlantı olanaklarını göstermez.
Gerekirse örnek bir veri akışı üzerinden uygulanabilirliği sınarız. Hangi alanların hangi yönde taşınacağı ve bir kesinti anında ne yapılacağı netleşmeden kesin bir bağlantı kapsamı vermeyiz.
Uygulamaya yeni bir çalışan eklediğimizde bütün kayıtları görür mü?
Bu, önceden belirlenen rol ve yetki düzenine bağlıdır. Yeni kullanıcının yalnızca kendi işiyle ilgili kayıtları görmesi ya da yalnızca belirli işlemleri yapabilmesi için ayrı yetkiler tanımlanabilir.
İşe başlama, görev değişikliği ve ayrılma durumlarında hesapları kimin yöneteceğini belirleriz. Yetki yapısını farklı kullanıcılarla deneyip erişimin yalnızca ekrandaki düğmelere bağlı olmadığını kontrol ederiz.
Teslimden sonra yeni bir rapor istersek nasıl ilerleriz?
Önce raporda yer alacak bilgilerin mevcut sistemde zaten tutulup tutulmadığına bakarız. Yeni veri toplanması gerekiyorsa, iş yalnızca bir rapor ekranından daha geniş bir düzenlemeye dönüşebilir.
İhtiyacı çözümleyip yapılacak işi ve mevcut akışlara etkisini açıklarız. Destek kapsamındaki işlemlerle ek geliştirmeyi ayırır, üzerinde anlaşılan çalışmayı planlayıp ilgili çıktıları kontrol ederiz.
