Tuğba Ayvaz Bug, kodlama esnasında meydana gelen kodlama hataları, sistem açığı olarak tanımlanabilir.
Bug özellikle yazılımla yakından ilgili olanların çok sık karşılaştığı bir tabir. Bug, esasen kelime olarak böcek manasına geliyor. Debugging terimi ise daha çok böcekten sıyrılmak ya da ayrılmak anlamını taşıyor. Peki böyle bir metafor, yazılım dünyası için neden kullanılmış dersiniz, gelin buna yakından bakalım.
Geçtiğimiz yüzyılın ortalarına doğru ABD’de bir askerin bilgisayarında aniden bir arıza meydana gelir. İsmi Mark II olan bu bilgisayar, askerlerin kullandığı, oldukça büyük bir bilgisayardır. Oda büyüklüğünde olan bu bilgisayar üzerinde uzun uzun araştırmalar yapan o dönemin uzmanları, sorunu nihayet tespit ederler. Bilgisayarın arasına bir böcek sıkışmıştır ve bu durum devrelerin de yanmasına neden olmuştur. Böcek bulunduğu yerden alınıp devreler tamir edildikten sonra bu devasa bilgisayar yeniden çalışmaya başlar.
Bilgisayardan sorumlu olan asker, söz konusu not defterine böceği yapıştırır ve altına hataya ait notunu düşmüştür. Bu trajikomik durum, sonraki yıllarda tüm dünyanın kabul ettiği bir terimin doğmasına neden olmuştur. O tarihten bugüne gelinceye dek artık bilgisayarlarda oluşan hasarlara veya hatalara bug adı verilmiştir. Söz konusu hataların çözüme ulaşması ise debug şeklinde ifade edilir. Hatta o defter bugün Amerika’daki bir tarih müzesinde orijinal haliyle sergilenmektedir.
Bug, bugünün yazılım dünyasında daha modern bir ifade kazanmıştır. Bug için daha çok sistem açığı tanımını kullanmaya başlayabiliriz. Yazılım süreçlerinde kodlama hataları oldukça rutindir. Çok sayıda koddan meydana gelen sistemlerin bu tip hatalar barındırması da son derece normaldir. Bug’ları yok etmenin en önemli yollarından bir tanesi güncellemelerdir. Exe dosyaları yeni güncelleme ile beraber değişir. Bu değişiklik sayesinde hatalı kod ortadan kalkar. Bu basit yöntem Bug’un da kaybolmasını sağlar. Bug’ları genel olarak yazılım ve donanım odaklı olmak kaydıyla iki grupta ele almak mümkün.
Bugün gelinen noktada donanımdan kaynaklanan bugların sayısı görece daha düşüktür. Bilgisayar tasarımcıları bu süreçte bilgisayar yapılarını son derece başarılı bir şekilde tahlil etmiştir. Donanıma neden olan durumlar detaylı bir şekilde saptanmıştır. Dolayısıyla donanımdan kaynaklanan hatalar artık neredeyse yok hükmündedir. Bu da uzun süren çalışmaların ve olumsuz deneyimlerin sayesinde bu düzeye gelmiştir diyebiliriz..
Bugünkü bugların önemli bir çoğunluğu yazılım kaynaklıdır. Yazılımcıların kişisel dikkatsizliği bunda önemli bir rol oynar. Neyse ki yazılımdan kaynaklanan bugların çözümü düşünüldüğü gibi zor değildir. Bir yazılımın içinde bug tespit ettiğiniz zaman ilk yapmanız gereken eylem, üreticiye kısa süre içinde ulaşmak olmalıdır. Yazılımcılar kısa bir incelemeden sonra söz konusu hatayı tespit edecektir. Muhtemelen bu süreçte çözüm olarak bir yama yayınlayacaktır. Söz konusu yamayı yüklediğiniz zaman başka bir değişiklik yapmanıza gerek duymadan çözüme kavuşabilirsiniz.
Bug daha çok web tabanlı uygulamaların içinde ya da doğrudan programlarda görülebilir. Hemen hemen bütün yazılımlarda ya da kodlama süreçlerinde bug yer almaktadır. Bu sistem açıklarının küçük ya da büyük, bir şekilde çözüme çok açık olması en sevindirici noktadır.
Örneğin oyunların içinde bazı grafik hataları ile karşılaşmak mümkündür. Özellikle bir oyun ilk yayınlandığında ya da demo süreçlerinde bazı hatalar barındırabilir. Bunlar genelde görsel, grafiksel içerikli sorunlardır. Oyun stüdyolarında üreticiler bir oyun için aylar boyunca emek verebiliyor; ancak ister istemez bazı hatalar oluşabiliyor. Aslında oyun üreticilerinin en büyük mesaisi bu bugların çözümüne ilişkin olarak gösterdikleri çabadır. Küçük hatalar bile olsalar oyun severler böyle hatalar yüzünden oyundan uzaklaşabiliyor. Bu da doğal olarak oyun satışlarını ciddi anlamda geriletebiliyor.
Oyun üreticileri açısından bugların bu anlamda bir kırmızı çizgi olarak görüldüğünü ifade edebiliriz. Oyunlarda yer alan buglar rakip firmalar kadar kullanıcılar için de bir alay konusu olabilmektedir. Örnek vermek gerekirse FIFA ve PES rekabetine genellikle buglar damga vurmaktadır. FIFA’nın bir serisinde kalecilerle ilgili önemli bir bug söz konusuydu. Daha eski versiyonlarda ise hakemlerle ilgili bazı hatalar oluşmuştu. Güncelleme sonrası bu tip hatalar düzeltilse dahi milyon dolarlık bir sektör olduğu için zarar epey büyük olabiliyor.
Üst bölümde bahsetmeye başladığımız bug hatalarını biraz daha çeşitlendirelim. Örneğin bir domain satın almak istediniz. Domain sürecinde karşılaşabileceğiniz olası hatalar oldukça fazladır. Genelde domain satışı yapan firmalar profesyonel değildir. Hacklenme durumlarında alan adınızı kolayca kaybedersiniz. Genelde açıklardan istifade edilir ve bu nedenle bir saldırıya uğrayabilirsiniz.
Özellikle bir oyun yayınlandığı dönem, öncelikle görsel hatalara odaklanılır. Kimi oyuncular söz konusu buglar ile karşılaşırken kimi oyuncular bire bir aynı oyunu almış olmasına rağmen karşılaşmaz. Bunun teknik nedeni hakkında kesin bir bilgi söz konusu değildir. Bu nedenle oyunun ilk yayınlandığı dönem, tam anlamıyla bir keşif sürecidir. Online oyun ortamlarında keşfedilen buglar için oyun üreticileri sorumlu tutulur. Stüdyolar bu hataları vakit geçmeden toparlamak zorundadır. Nihayetinde orijinal bir oyun CD’sinin oldukça pahalı olduğunu hatırlatmak isteriz.
Stüdyolarda panik düğmesine basılır ve bugların çözümü için kolektif bir akıl devreye girer. Bu süreçte kodlayıcılar, animatörler ve ekibi oluşturan tüm personel, yoğun bir mesai harcar. Bu koordinasyon çoğu zaman bugların daha hızlı şekilde bulunmasını sağlar. Buglara dair geri bildirimler çoğu zaman oyunculardan gelir. Zaten piyasaya sürülmeden önce fark edilen bir bug, o haliyle bile bile oyunculara sunulmaz. Bu nedenle ağırlıklı olarak satış sonrası geri dönüşlerden faydalanılmaktadır diyebiliriz.
Genelde stüdyoda yer alan oyun üreticileri bir sonraki oyunu oluşturma sürecine kendilerini kaptırmış olabiliyor. Oysa tam manasıyla buglara odaklanmadan yeni bir oyuna odaklanmak, bu tip zaman ve itibar kayıplarına neden olabilmektedir. Oyunları güncelleyerek buglardan rahatlıkla kurtulabiliriz. Buglardan kendi çabanızla kurtulmanız olanaksızdır. Çünkü güncelleme, yama ya da crack denilen yöntemlerle kurtulsanız bile, nihayetinde tüm bu çözüm süreçlerini meydana getiren kişiler, yayıncılardır.