Hatalarla yazılımcılar gibi yüzleşmek
"Yazılım geliştirme” bugünün en geçerli mesleklerinden biri. Giderek daha da önem kazanıyor. O yüzden her sene yazılım geliştirmeyle ilgili bölümlerin puanı artıyor. Daha ilk öğretim seviyesinden itibaren yazılım geliştirme, kodlama dersleri verilmeye başlıyor. Kurslar açılıyor. Pek çok kimse yazılım öğrenmeye heves ediyor.
Ama insanlar yazılım geliştirmeyi öğrenmenin hayata bakışlarını değiştireceğini pek bilmiyorlar.
Yazılım geliştirmeye başlayanların ilk öğrendikleri şeylerden biri, iyi ya da kötü hiçbir şeyin “kendiliğinden” olmadığıdır!
Temel bilgileri öğrenme safhasını geçip gerçekten kod yazmaya başlayanlar geliştirdikleri yazılım ürünlerinde hiçbir fonksiyonalitenin kendiliğinden oluşuvermediğini, en sıradan işlevlerin bile tek tek düşünülmesi, planlanması, kodlanması ve test edilmesi gerektiğini fark ederler.
Mesela Google ana sayfası gibi, bir logo, bir arama kutusu ve iki düğmeden ibaret, son derece basit bir web sayfası yapmak istediğinizde bile düşünmeniz gereken o kadar çok şey vardır ki şaşar kalırsınız.
Sayfanın görünümü, renkleri nasıl olacak, hangi yazıtipi kullanılacak, yazıtipi nereden yüklenecek, logo resmi hangi formatta, ne boyutta olacak, sayfa bilgisayarlarda, tabletlerde ve telefonlarda nasıl görüntülenecek, mobil cihazı dik ya da yan tutunca neler değişecek, adrese her girenin sayfayı kendi dilinde görüntülemesi nasıl sağlanacak, arama kutusuna yazılacak ifadenin bir harf sınırı olacak mı, arama kutusu boşken arama düğmesine basılabilecek mi, basılırsa ne olacak, aynı aramanın arka arkaya gönderilmesine sınır getirilecek mi, kopyala yapıştır yapmaya izin verilecek mi, arama düğmesine birden fazla basılırsa ne olacak, aynı anda yüz milyonlarca insanın arama talebine nasıl gecikmeden cevap verilecek, sonuçlar nasıl alınacak, nasıl görüntülenecek vs. gibi sorular, sorulması ve cevaplanması gereken soruların belki yüzde biridir.
Bütün ihtimalleri düşünerek çözüm geliştirmeyi öğrenen yazılımcı kısa zamanda şunu da anlar: Eğer geliştirdiği yazılımda bir hata (bug*) ya da eksiklik varsa bunun sebebi kendisidir. Alması gereken bir tedbiri ihmal etmiş, düşünmüş olması gereken bir senaryoyu gözden kaçırmış, istisnai bir durumu atlamıştır.
Dünya bir yönüyle kocaman bir bilgisayara, yaşadığımız hayatın çerçevesini çizen sosyal, siyasi, dini, ekonomik uygulamalar da yazılımlara benziyor.
Uygulamaları başkaları değil biz geliştiriyoruz.
Eğer geliştirdiğimiz uygulamalar istediğimiz gibi “çalışmıyor” veya “çöküyorsa” bunun sebebi bizzat biziz.
Yazılımcının yazdığı uygulama bazen o kadar büyük hatalarla dolu olur ki sadece kendisi çökmez, üzerinde çalıştığı işlem sistemini de çalışmaz hale getirir, çökertir.
O durumda “hatalı” uygulamayı hafızasından söküp atmak için bilgisayarı yeniden başlatmak gerekir.
Hiçbir akıllı, tecrübeli yazılımcı, hatalı çalışan kodunun “kendiliğinden” düzelmesini beklemez.
Yazılımda görünmezden kapılar açılmaz, mucizeler yaşanmaz, bir sabah uyandığınızda kodunuz kendiliğinden düzelmiş olmaz.
Ama günlük hayatta, yanlışlığı gün gibi ortaya çıkmış “uygulamaların” kendiliklerinden sihirli şekilde düzelebileceğine inanan insanların sayısı hiç de az değil.
Bu insanlar, hayatlarında yolunda gitmeyen şeylerin müsebbibinin de onları düzeltecek olanın da bizzat kendileri olduğu gerçeğini görmek istemiyorlar.
Problemlerinin çözümü için, hayatın kaotik yapısının karşılarına çıkarabileceği öngörülemez fırsatlara bel bağlıyorlar.
Bir teknik direktörün maça hazırlayamadığı, beceriksiz, idmansız, formsuz futbol takımının çıktığı maçı kazanma ihtimaline yürekten inanması misali: “Takımımız berbat ama belki top tesadüfen bizim forvetin ayağına iyi oturuverir de gol atarız, belki rakip de gol şansı bulamaz, biz kazanırız” diyorlar.
Bir yerden doğal gaz çıkar ekonomimiz düzelir ya da ahlak, vicdan, cesaret ve merhamet sahibi bir lider çıkar ülkemiz düzelir diye bekliyorlar.
Böyle bir şey olmayacak.
Uygulamalarımızdaki hatalar, biz düzeltmedikçe düzelmeyecek.
Hayatımızdaki bug’larla, “yazılımcılar gibi” yüzleşmek zorundayız.
* bug (bag diye okunuyor): yazılımda kodlama hatası