Yazılım
- Anasayfa
- Yazılım
Yazılım Projesini Kod Yazmadan Önce Kâğıt Üzerinde Sınıyoruz
Birçok işletme günlük işlerini tablolar, kâğıt formlar ve mesajlaşma grupları arasında yürütür. Bu düzen belli bir büyüklüğe kadar idare eder; bir noktadan sonra aynı bilgi üç farklı yerde, üç farklı biçimde tutulmaya başlar. Diyarbakır’daki işletmeniz için bir yazılım projesine karar verdiğinizde ilk işimiz, bu dağınıklığın tam olarak nerede zaman ve para kaybına yol açtığını görmek oluyor. Ekibinizden sıradan bir iş gününü adım adım anlatmasını istiyor, siparişin, randevunun ya da iş emrinin hangi elden hangi ele geçtiğini çiziyoruz. Kimin hangi bilgiyi girdiğini, kimin onay verdiğini, nerede beklemeler ve hatalar yaşandığını not ediyoruz. Bu çizim çoğu zaman sorunun sanıldığı yerde değil, iki adım arasındaki geçişte olduğunu gösterir. Örneğin satış ekibinin aldığı bir notun depoya eksik ulaşması, yeni bir ekrandan çok daha basit bir çözümle giderilebilir. Bu gözlemler, projenin kapsamını gerçek ihtiyaca göre daraltmamıza ya da genişletmemize imkân veriyor.
Analizde yalnızca yöneticiyle değil, sistemi her gün kullanacak kişilerle de konuşuyoruz. Depoda çalışan bir personelin, sahada teklif hazırlayan bir satış temsilcisinin ve muhasebeden sorumlu çalışanın beklentileri birbirinden çok farklıdır. Her kullanıcı grubu için hangi ekranları göreceğini, hangi bilgiyi değiştirebileceğini ve hangi işlemi onaya göndereceğini tanımlıyoruz. Sahada çalışanlar için telefondan kullanım, zayıf bağlantıda çalışma ya da hızlı veri girişi gibi özel ihtiyaçları da listeye ekliyoruz. Bu görüşmelerde işletmenin yazıya dökülmemiş kurallarını da ortaya çıkarıyoruz; belirli bir müşteriye neden farklı iskonto uygulandığı ya da bir siparişin hangi durumda bekletildiği gibi. Bu kurallar koda aktarılmazsa sistem kâğıt üzerinde doğru çalışır, ama ekip gerçek hayatta onu kullanmaktan kaçınır. Aynı aşamada yazılımın neyi yapmayacağını da açıkça yazıyoruz. Kapsam dışında kalan her madde, ileride yaşanabilecek bir anlaşmazlığı baştan önlüyor ve bütçenin öngörülebilir kalmasını sağlıyor.
Analizin çıktısı, iki tarafın da okuyup anlayabileceği bir kapsam belgesidir. Belgede iş akışı şemaları, kullanıcı rolleri, ekran listesi, veri alanları ve her özellik için kabul ölçütleri yer alıyor. Kabul ölçütü, bir özelliğin ne zaman bitmiş sayılacağını tarif eder; örneğin bir raporun hangi filtrelerle çalışacağını ve hangi biçimde dışa aktarılacağını. Tahminlerimizi bu belge üzerinden, özellik özellik hazırlıyoruz. Belirsizliği yüksek kalemleri ayrıca işaretliyor, bunlar için kısa bir teknik deneme yapmayı öneriyoruz. Tahmini tek bir rakam olarak değil, iyimser ve temkinli uçları olan bir aralık olarak sunuyor, aralığın neden bu genişlikte olduğunu açıklıyoruz. Kapsam belgesi değişmez bir sözleşme değildir, ama her değişikliğin maliyetini ve takvime etkisini görünür kılan bir referanstır. Hazır bir yazılım paketinin ihtiyacınızı zaten karşıladığını görürsek bunu da açıkça söylüyoruz; gereksiz bir geliştirme maliyetine girmenizi istemeyiz. Belge onaylandığında ara teslim noktalarını ve her noktada neyi göreceğinizi birlikte netleştiriyoruz.
İlk Sürümü Küçük Tutuyor, Her Adımı Test Ederek Büyütüyoruz
Bütün özellikleri tek seferde geliştirmek yerine, işletmenizin en çok zorlandığı sorunu çözen bir ilk sürümle başlıyoruz. Kapsam belgesindeki maddeleri iş değerine ve teknik bağımlılıklarına göre sıralıyor, ilk sürüme yalnızca gerçekten vazgeçilmez olanları alıyoruz. Örneğin sipariş takibi asıl dertse ilk sürümde sipariş girişi, durum güncellemesi ve temel bir listeleme ekranı yer alır; ayrıntılı raporlar sonraki adımlara kalır. Bu yaklaşım, ekibinizin sistemi erken kullanmaya başlamasını ve gerçek geri bildirim vermesini sağlıyor. Kullanıcıların yeni bir sisteme alışması da zaman alır; küçük bir başlangıç, ekibin yeni düzene adım adım uyum sağlamasını kolaylaştırır. Aylarca beklenen, sonunda da ihtiyaçla örtüşmeyen büyük bir teslimat riskini böylece azaltıyoruz. İlk sürüm küçük olsa da kalitesinden ödün vermiyoruz; veri modeli ve altyapı, sonraki eklemeleri taşıyacak biçimde tasarlanıyor. İlk sürüm kullanıma girdikten sonra kullanım verilerine ve ekibinizin yorumlarına bakarak ikinci adımın içeriğini birlikte belirliyoruz.
Geliştirmeyi kısa döngüler halinde yürütüyoruz. Her döngünün sonunda tamamlanan özellikleri test ortamında size gösteriyor, yorumlarınızı bir sonraki döngünün planına ekliyoruz. Böylece yanlış anlaşılmış bir ayrıntı haftalarca birikmeden fark ediliyor. Öncelikler değişirse, örneğin yeni bir yasal düzenleme bir özelliği acil hale getirirse, planı döngü başında sizinle birlikte yeniden sıralıyoruz. İlerlemeyi takip edebileceğiniz bir iş listesi paylaşıyoruz; hangi işin tamamlandığı, hangisinin sürdüğü ve hangisinin sizden bilgi beklediği bu listede görünüyor. Her yazılım ekibinin kendine özgü bir jargonu vardır, ama biz toplantılarda teknik ayrıntıya boğulmadan, işinize etkisi üzerinden konuşmayı tercih ediyoruz. Kod, sürüm kontrol sisteminde tutuluyor ve her değişiklik ikinci bir geliştiricinin incelemesinden geçiyor. Bu inceleme hataları erken yakalamanın yanında bilginin tek bir kişide kalmamasını da sağlıyor. Kod yazım kurallarını, klasör yapısını ve isimlendirme düzenini proje başında belirliyoruz; böylece projeye sonradan katılan bir geliştirici de düzeni kolayca kavrayabiliyor.
Test, geliştirmenin sonuna bırakılan bir aşama değil, her döngünün parçasıdır. Hesaplama yapan, stok düşen ya da fatura üreten kritik işlevler için otomatik testler yazıyoruz; bu testler ileride yapılan her değişiklikte eski özelliklerin bozulmadığını denetliyor. Ekranları farklı tarayıcılarda ve cihazlarda deniyor, hatalı veri girildiğinde sistemin anlaşılır bir uyarı verdiğinden emin oluyoruz. Aynı anda çok sayıda kullanıcının sisteme girdiği durumları yük testleriyle taklit ederek yavaşlama noktalarını önceden buluyoruz. Canlıya geçmeden önce ekibinizden birkaç kişiyle kabul testi yapıyoruz. Bu testte gerçek iş senaryolarını, mümkünse gerçek verilerin anonimleştirilmiş bir kopyasıyla uyguluyoruz. Eski sistemden veri aktarımı gerekiyorsa aktarımı önce deneme ortamında yapıyor, kayıt sayılarını ve örnek kayıtları sizinle birlikte karşılaştırıyoruz. Geçiş gününü de iş yoğunluğunuzun düşük olduğu bir zamana göre planlıyoruz. Geçişten sonraki ilk günlerde ekibinizin sorularına hızla dönebilmek için ayrı bir destek kanalı açıyoruz.
Mevcut Araçlarınızla Konuşan, Verinizi Koruyan Bir Altyapı
Yeni bir sistem, kullandığınız diğer araçlardan kopuk çalışırsa ekibinize ek iş yükü getirir. Bu yüzden muhasebe programınız, e-fatura sağlayıcınız, ödeme altyapınız, kargo firmanızın sistemi ya da web siteniz gibi bağlantı noktalarını analiz aşamasında listeliyoruz. Her entegrasyon için karşı tarafın sunduğu arayüzü, belgelerinin durumunu ve kullanım koşullarını inceliyoruz. Verinin yalnızca okunacağını mı yoksa karşı sisteme de yazılacağını mı, yani entegrasyonun hangi yönde çalışacağını netleştiriyoruz. Bazı hazır programlar dışarıya veri açmaz ya da sınırlı açar; bu durumda dosya aktarımı gibi daha basit ama güvenilir yöntemler öneriyoruz. Entegrasyonlarda hata olasılığını da hesaba katıyoruz. Karşı sistem geçici olarak cevap vermediğinde işlem kaybolmamalı, sıraya alınıp yeniden denenmelidir. Yazılım tarafında bu senaryoları kurgulamak, günlük işleyişte sessizce kaybolan kayıtların önüne geçiyor. Entegrasyonların durumunu gösteren basit bir izleme ekranı sayesinde, bir aktarım aksadığında bunu ilk fark eden müşteriniz değil, siz oluyorsunuz.
Güvenliği sonradan eklenen bir katman olarak değil, tasarımın temel kararlarından biri olarak ele alıyoruz. Her kullanıcı yalnızca işinin gerektirdiği verilere erişiyor; yetkiler rol bazında tanımlanıyor ve yönetici panelinden değiştirilebiliyor. Kullanıcı parolalarını düz metin olarak değil, tek yönlü şifrelenmiş halde tutuyor; yönetici girişlerinde telefona gelen ikinci bir doğrulama adımı öneriyoruz. Sunucu ile kullanıcı arasındaki trafiği şifreliyor, dışarıdan gelen her girdiyi denetliyoruz. Kullanılan kütüphanelerdeki bilinen güvenlik açıklarını otomatik araçlarla tarıyor, yayına çıkmadan önce temel sızma testlerini uyguluyoruz. Kimin hangi kaydı ne zaman değiştirdiğini gösteren işlem kayıtları tutuyoruz; bir tutarsızlık olduğunda geriye dönüp incelemek bu sayede mümkün oluyor. Çalışanınız işten ayrıldığında hesabının tek tıkla kapatılabilmesi gibi pratik ayrıntıları da atlamıyoruz. Kişisel veri işleyen sistemlerde verinin hangi amaçla toplandığını, ne kadar süre saklanacağını ve kimlerin erişebileceğini sizinle birlikte belirliyoruz. Kişisel verilerin korunmasına ilişkin yükümlülüklerinizi yerine getirmenize yardımcı olacak teknik altyapıyı da bu kararlara göre kuruyoruz.
Verinin güvende olması yalnızca saldırılara karşı korunmak anlamına gelmez; bir donanım arızası ya da yanlışlıkla silinen bir kayıt da ciddi kayıp yaratabilir. Otomatik yedekleme planını, yedeklerin ne kadar geriye gideceğini ve nerede saklanacağını birlikte kararlaştırıyoruz. Yedek almak tek başına yeterli değil, bu yüzden geri yükleme işlemini düzenli aralıklarla deniyoruz. Yedeklerin bir kopyasını ana sunucudan farklı bir konumda tutuyor, erişim bilgilerini de sizinle paylaşıyoruz. Sistemi bulut sunucuda mı yoksa kendi sunucunuzda mı çalıştıracağınızı, bakım kapasitenize ve maliyet beklentinize göre değerlendiriyoruz. Kullanıcı sayısı ve veri hacmi arttığında sistemin yavaşlamaması için sorguları ve sunucu kaynaklarını izliyor, darboğazları kullanıcılar hissetmeden gidermeye çalışıyoruz. Hata durumlarında otomatik uyarılar bize ulaşıyor ve çoğu soruna siz fark etmeden müdahale edebiliyoruz. Deneme ve canlı ortamı birbirinden ayırıyoruz; böylece yeni bir sürüm önce güvenli bir alanda sınanıyor.
Kaynak Kodun Sahibi Olarak Sistemi İstediğiniz Yöne Taşıyabilirsiniz
Geliştirdiğimiz sistemin kaynak kodu, sözleşmede açıkça belirtildiği şekilde size aittir. Kod deposunu işletmenizin hesabında açıyor ya da proje sonunda bütün geçmişiyle birlikte size devrediyoruz. Sunucu hesabı ve üçüncü taraf servislerin abonelikleri de mümkün olduğunca işletmeniz adına açılıyor. Kurulum adımlarını, sunucu ayarlarını, entegrasyonlarda kullanılan erişim anahtarlarının nerede tutulduğunu ve veritabanı yapısını anlatan teknik belgeleri de teslim ediyoruz. Bu belgeler, ileride başka bir yazılım ekibiyle çalışmak isterseniz sistemin baştan yazılmasına gerek kalmadan devralınabilmesini sağlıyor. Belgeleri yalnızca teknik ekip için değil, sistemi yöneten kişinin de anlayabileceği bir özet bölümüyle hazırlıyoruz. Kullandığımız açık kaynak kütüphanelerin listesini ve lisans durumlarını da paylaşıyoruz. Veriler de tamamen sizindir; sistemdeki bütün kayıtları yaygın dosya biçimlerinde dışa aktarabileceğiniz bir işlev sunuyoruz. Hiçbir müşterimizi kodu ya da veriyi elimizde tutarak bize bağımlı kılmayı doğru bulmuyoruz.
Canlıya geçişten sonraki ilk haftalar, sistemin gerçek yük altında sınandığı dönemdir. Bu dönemde ekibinizden gelen bildirimleri hızla değerlendiriyor, küçük kullanım sorunlarını ve gözden kaçan senaryoları önceliklendirerek çözüyoruz. Ardından düzenli bakım dönemine geçiyoruz. Bakım kapsamında işletim sistemi ve kütüphane güncellemelerini takip ediyor, güvenlik yamalarını test ederek uyguluyor, yedekleri ve sunucu sağlığını izliyoruz. Hata düzeltmeleri ile yeni özellik taleplerini birbirinden ayırıyoruz. Bu ayrım, hangi harcamanın sistemi ayakta tutmak, hangisinin onu büyütmek için yapıldığını açıkça görmenizi sağlıyor. Yeni özellik talepleri için kısa bir kapsam notu hazırlıyor, tahmini emeği ve olası etkilerini onayınıza sunuyoruz. Destek taleplerinin hangi kanaldan iletileceği ve hangi öncelik seviyesinin nasıl ele alınacağı da bakım sözleşmesinde açıkça yazıyor. Bakım dönemindeki her müdahaleyi, ne yapıldığını ve neden yapıldığını gösteren kısa bir kayıtla belgeliyoruz. Kullanılan teknolojilerin destek ömrünü de takip ediyor, bir bileşenin güncellenmesi gerektiğinde bunu aylar öncesinden planlamanıza yardım ediyoruz.
İyi kurulmuş bir yazılım zamanla işletmenizle birlikte büyür. Yeni bir şube, yeni bir ürün grubu ya da yeni bir satış kanalı eklendiğinde sistemin baştan yazılması değil, genişletilmesi gerekir. Bu esnekliği sağlamak için baştan itibaren modüler bir yapı kuruyor, iş kurallarını kodun derinliklerine gömmek yerine yönetilebilir ayarlar olarak tutuyoruz. Böylece iskonto oranı ya da onay sınırı gibi bir kural değiştiğinde yazılımcıya ihtiyaç duymadan ayarı kendiniz güncelleyebiliyorsunuz. Düzenli aralıklarla sistemin genel durumunu sizinle birlikte değerlendiriyoruz: hangi ekranlar yoğun kullanılıyor, hangi özellikler hiç açılmıyor, hangi süreçler hâlâ sistemin dışında yürüyor. Bu değerlendirme, bir sonraki yatırımın nereye yapılması gerektiğini verilerle gösteriyor. Mobil uygulama, müşteri portalı ya da raporlama modülü gibi yeni adımlar ancak bu verilerle gerekçelendirildiğinde planımıza giriyor. Diyarbakır’daki ekibinizin sistemi gerçekten benimseyip benimsemediğini de bu değerlendirme toplantılarında konuşuyor, gerekirse ek eğitim ya da ekran düzenlemesi öneriyoruz.
Yazılım Hakkında Sık Sorulan Sorular
Başlangıç için ayrıntılı teknik doküman şart mı?
Baştan kalın bir teknik doküman şart değildir. İş kuralları, kullanıcı rolleri ve beklenen sonuç netse teknik ayrıntılar analiz sırasında birlikte oluşturulabilir. Belirsiz kalan noktaları varsayımla kapatmıyor; örnek kayıtlar ve gerçek senaryolar üzerinden karara bağlayıp kapsamı yazılı hale getiriyoruz.
Eski Excel ve tablo kayıtları aktarılabilir mi?
Genellikle aktarılabilir, ancak önce verinin incelenmesi gerekir. Sütunların karşılığı belirlendikten sonra alan eşlemesi yapılır. Yinelenen kayıtlar, farklı tarih biçimleri ve eksik değerler önce raporlanır; ekiple deneme aktarımı onaylandıktan sonra canlı taşımaya geçilir.
Çalışanlara farklı erişim yetkileri verilebilir mi?
Evet. Görev bazında görüntüleme, düzenleme, onaylama ve dışa aktarma sınırları ayrı ayrı kurulabilir. Yetki düzeni iş sorumluluklarıyla birlikte doğrulanır. Yönetici hesabı günlük işler için gereksiz yere paylaşılmaz, her rol yalnızca kendi alanında hareket eder.
Muhasebe veya başka servislerle bağlantı kurulur mu?
Servis güvenilir bir bağlantı arayüzü sağladığında entegrasyon değerlendirilebilir. Kimlik doğrulama, veri sınırı, hata cevabı ve tekrar deneme davranışı önceden belgelenir. Bağlantı kesildiğinde kaydın kaybolmasını önleyen yöntem seçilir; böylece dış servisin aksaması işletmeyi durdurmaz.
Geliştirme sürerken ekranları deneyebilir miyiz?
Evet. Tamamlanan akışlar test ortamında kademeli olarak açılabilir. Geri bildirimler ekran ve senaryo adıyla toplanır. Ekibin onayladığı bir davranış değiştirilmeden önce; harcanacak süre, etkilenecek veri ve diğer bölümlere yansıması birlikte değerlendirilir.
Yayın sonrası yeni özellikler nasıl planlanır?
Önce talebin hangi sorunu çözdüğü ve ne sıklıkta kullanılacağı ölçülür. Ardından veri modeli, yetkiler, mevcut akış ve bakım yükü incelenerek kapsam çıkarılır. Acil bir hata ile yeni bir geliştirme aynı sıraya konmaz; farklı kuyruklarda, önceliğine göre yönetilir.
