Yazılımcılar, milyonlarca, hatta bazen milyarlarca insanın hayatını kolaylaştıracak yazılımlar geliştirirken sayısız ihtimali değerlendirmek ve her kullanım senaryosunu önceden düşünüp tedbirler almak zorundalar.
Bu sebepten profesyonel yazılım geliştiricilerin işlerini daha doğru yapabilmek adına başvurduğu rehberler, yaklaşımlar, stiller, felsefeler, yazılım geliştirme metodolojileri var.
Yani yazılım geliştirme, filmlerde gösterildiği gibi kapüşonlu eşofman giymiş asosyal ergenlerin tek başlarına takılıp yaptıkları akıl sır ermez bir iş değil. Takım çalışması ve sistematik yaklaşımlar gerektiren bir mühendislik alanı.
Bu yaklaşımlardan kimisinde planlama, kimisinde tasarım, kimisinde test, kimisinde ise değişken müşteri beklentilerinin karşılanması öne çıkıyor.
Bu yaklaşımların her birinin isimleri var. Mesela testi ilk plana alan bir anlayışla kod geliştirilecekse buna TDD: Test Driven Development (yani testlerle yürüyen, test odaklı geliştirme) deniliyor.
Eğer en öncelikli olarak yazılımın “davranışına” odaklanılacaksa BDD: Behaviour Driven Development (yani davranış/fonksiyon odaklı geliştirme) yöntemine başvuruluyor.
Geliştirilen yazılımın sağlam, güvenli, hızlı, ölçeklenebilir, test edilebilir, kolayca idame ettirilebilir olmasını sağlayabilmek için başvurulan böyle birçok yöntem var.
Fakat ne yazık ki ülkemizde birçok yazılım projesi böylesi bir sistemli yönetim anlayışıyla yürütülemiyor.
Herhangi bir metodoloji belirlenmeden, doğru düzgün bir planlama ve tasarım yapılmadan kod yazmaya girişiliyor.
Çoğu kez yazılımla ancak hobi düzeyinde uğraşmış, yahut teknoloji haberlerine meraklı oldukları için hasbelkader kendilerini bilgi işlem yöneticisi koltuğunda bulmuş kimselerin cehaleti, daha ilk andan itibaren başarısızlığa mahkûm yazılım projelerinin doğmasına sebep oluyor.
Daha üst kademelerden gelen yoğun zaman baskısı, oturup doğru dürüst bir planlama yapmaya, metodoloji kurgulamaya müsaade etmiyor.
İşin tabiatından bihaber, tamamen bir an önce ortaya öyle ya da böyle bir şeyler çıkartma derdindeki yöneticiler daha çok adam tahsis ederek süreci hızlandırabileceklerini sanıyorlar.
Ya da geliştiricilere daha çok baskı uygulayarak…
Gece yarılarına, hafta sonlarına sarkan, bitmek bilmez uzunlukta mesailer yapmaya zorlanan yazılımcılar bu kifayetsiz yöneticilere “bir kadın bir çocuğu dokuz ayda dünyaya getirir, ama doksan dokuz kadın bir araya gelse de bu süre kısaltılamaz” deseler de kâr etmiyor!
Tabi bu yalapşap yaklaşımın neticesinde büyük fiyaskolara şahitlik ediyoruz.
Hac kuraları sırasında diyanetin, üniversite sınav sonuçları açıklanırken ÖSYM’nin sitesi kitleniyor.
İnsanların sadece bir deprem olunca bakacağı AFAD sitesi sadece deprem olunca çalışmıyor.
Millî Eğitim Bakanlığı’nın salgın sırasında sergilediği büyük fiyasko zaten herkesi malumu.
Bütün bunların arkasında işte bahsettiğimiz sistemsizlik, iş bilmezlik yatıyor.
Genç yazılımcılar bizdeki bu metotsuzlukla dalga geçmek için, “kervan yola düzülür” atasözünden mülhem harika bir isim bulmuşlar:
“Kervan Driven Development”!
Söz konusu yazılımsa kervan yolda düzülmüyor.
En baştan itibaren insan kaynağından, geliştirme standartlarına, test usullerinden ölçeklendirme stratejilerine, siber güvenlik için alınacak tedbirlerden veritabanı erişim protokollerine kadar birçok şeyin inceden inceye planlanması ve uygulanması gerekiyor.
Bunlar daha yola çıkmadan, en başta düşünülmesi gereken şeyler.
Aslında aynı şeyi “gelişmekte olan” ülkemizin yönetimi için de söyleyebiliriz.
Ülke gelişiminin iyi yönetilebilmesi için en başta temel bir felsefeye, enine boyuna düşünülüp yerine oturtulmuş ilkelere, metotlara ihtiyaç var. Bunlar olmadan da ortaya bir şey çıkıyor çıkmasına ama o ortaya çıkan “şey”, hemen her gün lisan-ı halle, “bu böyle olmaz, kervan driven development’ın sonu felakettir” diye adeta feryat ediyor.
Salih Cenap Baydar
Karar 20.10.2020