Bir Virgül, Bir Fırtına: Küçük Hatalar Dev Sistemleri Nasıl Yutar?

Bir sistemin çökmesi için her zaman gökten meteor düşmesi gerekmez. Bazen yanlış yere konmuş bir virgül, gevşek bırakılmış bir vida, göz ardı edilmiş küçük bir ölçüm farkı ya da aceleyle yazılmış tek satırlık kod yeterlidir. Kaos teorisinin en rahatsız edici güzelliği burada başlar: Küçük nedenler, doğru koşullarda, devasa sonuçlar doğurabilir. Kelebek etkisi dediğimiz şey de tam olarak budur; Brezilya’da kanat çırpan bir kelebeğin Teksas’ta kasırga yaratması değil, başlangıç koşullarındaki minicik farkların zamanla öngörülemez biçimde büyümesidir.

Kaos, düzensizlik değil; hassas düzendir

Gündelik dilde kaos kelimesini dağınıklık, karmaşa, kontrolsüzlük anlamında kullanırız. Oysa kaos teorisinde kaos, kuralsızlık değil, aşırı hassas kurallılık demektir. Sistem belirli yasalara göre işler; ancak bu yasaların sonucu, başlangıç değerlerine öylesine duyarlıdır ki, küçük bir hata geleceği bambaşka bir yola sokabilir. Matematikçi ve meteorolog Edward Lorenz’in hava durumu modellerinde fark ettiği şey buydu. Bilgisayara yuvarlanmış bir sayı girdiğinde, sonuçlar beklediğinden tamamen farklı çıkmıştı. Hava aynı havaydı, denklem aynı denklemdi; fakat küçük bir ondalık fark, geleceği başka bir gezegene taşımış gibiydi.

Bu nokta önemlidir: Kelebek etkisi sihir değildir. Evrenin dramatik bir şaka anlayışı olduğuna dair romantik bir masal da değildir. Bu, doğrusal olmayan sistemlerin matematiksel davranışıdır. Doğrusal sistemlerde iki kat neden, yaklaşık iki kat sonuç verir. Doğrusal olmayan sistemlerde ise küçük bir neden, geri besleme döngüleriyle büyür, katlanır, yön değiştirir ve sonunda sistemi tanınmaz hale getirir. Bir kartopunun yamaçtan inerken çığa dönüşmesi gibi; mesele kartopunun büyüklüğü değil, yamacın eğimi, karın yapısı, sıcaklık, rüzgar ve sistemin hazır bekleyen gerilimidir.

Küçük hata ne zaman felaket olur?

Her küçük hata büyük çöküş yaratmaz. Kahvenize bir damla fazla süt koymak genellikle medeniyetin sonu değildir. Bir hatanın büyümesi için sistemin bağlantılı, hassas ve geri beslemeli olması gerekir. Finans piyasaları buna iyi örnektir. Bir yatırımcının paniği tek başına önemsiz görünebilir; ama algoritmalar, beklentiler, haber akışları ve kitle psikolojisi devreye girdiğinde panik bulaşıcı hale gelir. Satış satış doğurur, düşüş yeni düşüşleri tetikler, güven çözülür. Başta küçük bir sinyal olan şey, sistemin damarlarında dolaşan bir zehre dönüşür.

Teknolojide de benzer bir tablo görürüz. Büyük yazılım sistemleri milyonlarca satır koddan oluşur. Bir yerde unutulan sınır kontrolü, beklenmeyen veriyle birleştiğinde güvenlik açığına, veri kaybına ya da hizmet kesintisine yol açabilir. Burada sorun sadece hata değildir; hatanın hangi bağlantı noktasında durduğudur. Bir lambanın anahtarındaki arıza odayı karartır. Bir elektrik şebekesindeki kritik düğümdeki arıza ise şehirleri susturabilir. Kaos teorisi bize hatanın büyüklüğünden çok konumunu sormayı öğretir.

Kontrol yanılsaması ve mühendislik aklı

Modern insan sistemleri kontrol ettiğini düşünmeyi sever. Hava durumunu tahmin eder, borsayı modeller, yazılımı test eder, tedarik zincirini optimize eder. Bunlar gereklidir; fakat kaotik sistemler bize alçakgönüllü olmayı dayatır. Çünkü ölçemediğin küçük farklar, modellemediğin etkileşimler ve hafife aldığın istisnalar geleceğin rotasını değiştirebilir. Bu yüzden iyi mühendislik, hiç hata olmayacağını varsaymaz. Hatanın kaçınılmaz olduğunu kabul eder ve onun büyümesini engelleyecek tamponlar kurar.

Dayanıklı sistem tasarımının sırrı buradadır: yedeklilik, izleme, erken uyarı, modülerlik ve kontrollü başarısızlık. Bir bölüm çöktüğünde tüm yapının yıkılmaması gerekir. Gemilerde su geçirmez bölmelerin mantığı budur. Yazılımda mikroservis mimarileri, devre kesiciler ve hata izolasyonu aynı düşüncenin dijital akrabalarıdır. Sağlıklı ekosistemler de çeşitlilik sayesinde ayakta kalır; tek bir türün kaybı bütün ağı hemen parçalamaz, çünkü alternatif yollar vardır.

Kelebek etkisi bize korku değil, dikkat öğretir. Büyük felaketler çoğu zaman bir anda gelmez; küçük sapmalar, görmezden gelinen uyarılar ve biriken gerilimler halinde yaklaşır. Bir sistem çöktüğünde insanlar genellikle son darbeye bakar. Oysa asıl hikaye, o darbeyi yıkıcı kılan uzun zincirdedir. Küçük hata, büyük sistemi tek başına devirmemiştir; sistem zaten devrilmeye uygun hale gelmiştir.

Bu yüzden kaos teorisinin en pratik dersi şudur: Küçüğü küçümseme. Bir sayı, bir sensör, bir karar, bir satır kod, bir ihmal bazen geleceğin yönünü büker. Evren bağırarak değil, çoğu zaman fısıldayarak başlar. Akıllı olan, fısıltıyı felaketin provasına dönüşmeden duyabilendir.

Kelebeğin Kanadı Değil, Bütün Orman Titriyor

Bir olayın tek başına gerçekleştiğine inanmak, sahnede yalnızca başrol oyuncusunu görüp ışıkçıyı, metin yazarını, dekoru, seyirciyi ve salonun elektrik faturasını unutmaya benzer. Ağ bağlantısı düşüncesi bize şunu fısıldar: Hiçbir şey yalnız değildir. Bir karar, bir çöküş, bir aşk, bir ekonomik kriz, bir hastalık, bir fikir ya da bir tweet; hepsi görünmez iplerle başka şeylere bağlıdır. Dünya, tek tek taşlardan oluşan bir duvar değil, sürekli gerilen, gevşeyen ve titreşen bir örümcek ağıdır.

Modern zihin çoğu zaman basit nedenler ister. Çünkü basit nedenler rahatlatıcıdır. Trafik kötüdür çünkü sürücüler dikkatsizdir. Çocuk başarısızdır çünkü çalışmamıştır. Toplum huzursuzdur çünkü insanlar öfkelidir. Oysa ağ düşüncesi bu aceleci hükümleri elinden alır ve seni daha zor ama daha dürüst bir yere çağırır: Bağlantılara bak. Sürücünün dikkatsizliği, şehir planlaması, toplu taşıma yetersizliği, ekonomik baskı, uyku düzeni, telefon bağımlılığı ve kültürel sabırsızlıkla birlikte okunmadan anlaşılamaz. Bir insanın davranışı çoğu zaman yalnızca karakterinin değil, içinde düğümlendiği ilişkiler ağının ürünüdür.

Neden yerine örüntü görmek

Ağ bağlantısı düşüncesi, neden aramayı bırakmak değildir; nedeni tek bir ok gibi değil, çok yönlü bir akış gibi görmektir. Klasik düşünce sorar: Bunu ne yaptı? Ağ düşüncesi sorar: Hangi ilişkiler bunu mümkün kıldı? Bu küçük değişim, zihinde büyük bir devrimdir. Çünkü artık olaylara suçlu arayan bir dedektif gibi değil, izleri, yankıları ve geri beslemeleri takip eden bir iz sürücü gibi yaklaşırsın. Bir ormandaki yangını yalnızca kibrite bağlamak eksiktir; kuraklık, rüzgar, ihmal, iklim, yönetim, bitki örtüsü ve insan arzusu da yangının sessiz ortaklarıdır.

Bu bakış, insanın egosuna da meydan okur. Ego, ben yaptım demeyi sever. Ama gerçekten öyle mi? Bir fikrin doğuşunda okuduğun kitaplar, çocukken duyduğun cümleler, arkadaşının sorduğu tuhaf soru, toplumun yasakları, bedeninin kimyası ve çağın teknolojisi birlikte çalışır. Sen merkez değilsin; sen bir kavşaksın. Bu küçültücü değil, tam tersine büyüleyicidir. Çünkü bir kavşak olmak, yalnızca geçiş noktası olmak değil, akışları dönüştürme gücüne sahip olmak demektir.

Görünmeyen bağların ahlakı

Ağ bağlantısı düşüncesi aynı zamanda etik bir uyanıştır. Eğer her şey birbirine bağlıysa, hiçbir davranış bütünüyle özel değildir. Aldığın ürün, seçtiğin kelime, paylaştığın bilgi, sustuğun haksızlık, beslediğin korku; hepsi bir yerlerde dalga üretir. Bu, insanı paranoyaya değil, inceliğe davet eder. Çünkü ağ içinde yaşamak, her adımda suçluluk taşımak değil, etkilerinin farkında olmaktır. Bilge kişi, yalnızca doğru eylemi değil, eylemin hangi bağlamda neye dönüşeceğini de düşünür.

Psikolojik düzeyde de aynı ilke işler. Bir öfke patlaması yalnızca o anın meselesi değildir; bastırılmış ihtiyaçlar, öğrenilmiş savunmalar, aile mirası, bedensel yorgunluk ve görülme arzusu aynı anda konuşur. Jungiyen bir gözle söylersek, kişi yalnızca bilinçli niyetlerinden ibaret değildir; gölgesi, arketipleri ve kolektif hikayeleriyle birlikte davranır. Bu yüzden kendini anlamak, tek bir cevabı bulmak değil, içindeki ağı haritalandırmaktır. Hangi düğüm hangi acıya bağlı? Hangi korku hangi eski sadakatin bekçisi? Hangi arzu sana ait, hangisi atalarından devralınmış bir yankı?

Ağ bağlantısı düşüncesi, çağımızın en gerekli zihinsel kaslarından biridir. İklim krizinden yapay zekaya, yalnızlıktan politik kutuplaşmaya kadar hiçbir büyük mesele tek nedenli değildir. Bu yüzden tek hamleyle kurtuluş beklemek çocukça, tek suçluya öfke kusmak ise konforludur. Gerçek düşünce, karmaşıklıktan kaçmaz; onun içinde düzen arar. Belki de olgunluk, dünyayı bir bilardo masası gibi değil, bir canlı organizma gibi görmeye başladığımız anda başlar. Topa vurup sonucu beklemek yerine, nabzı dinlemeyi öğreniriz. Çünkü kelebek kanat çırptığında yalnızca hava hareket etmez; bütün orman, bütün tarih ve belki de içimizdeki eski savaşçı hafifçe yer değiştirir.

Suşi Artık Japon mu? Metropol Sofralarında Ritüelin Şaşırtıcı Dönüşümü

Bir metropol akşamını düşünün: Ofisten çıkan biri telefonundan acılı mayonezli suşi sipariş ediyor, diğeri Kore usulü tavuğu vegan kimchiyle yiyor, yan masada ise ramenin fotoğrafı daha ilk lokma alınmadan sosyal medyaya yükleniyor. Ortada Uzakdoğu mutfaklarına ait tatlar vardır; fakat onları çevreleyen hız, sunum, fiyatlandırma ve tüketim biçimi Tokyo, Seul ya da Şanghay’dakinden oldukça farklıdır. Küreselleşme, yemekleri yalnızca uzak coğrafyalara taşımaz; ritüelleri söker, yeniden düzenler ve bazen onları neon ışıklı bir vitrine yerleştirir.

Ritüelden ürüne: Sofranın hızlanması

Birçok Uzakdoğu mutfağında yemek, karın doyurmanın ötesinde toplumsal bir koreografidir. Japon çay seremonisindeki ölçülü hareketler, Çin sofralarındaki paylaşım düzeni veya Kore yemeklerinde masayı kaplayan küçük yan tabaklar; hiyerarşi, misafirperverlik, mevsimsellik ve topluluk fikri taşır. Metropol hayatı ise başka bir ritim dayatır: öğle molası kısadır, kira pahalıdır, kurye kapıdadır. Böylece saatler sürebilen bir yemek kültürü, karton kutuya sığan hızlı bir deneyime dönüşür. Ramen yürürken içilmez belki, ama metroya yetişmeden önce bitirilmesi beklenir.

Bu dönüşüm basitçe kültürel bozulma diye okunamaz. Çünkü göçmen aşçılar, girişimciler ve müşteriler yeni koşullara pasif biçimde boyun eğmez; onları yaratıcı şekilde kullanır. Geleneksel malzemenin bulunmadığı yerde yerel sebzeler devreye girer, dinsel veya etik tercihler tarifleri değiştirir, damak alışkanlıkları acıyı azaltır ya da artırır. Sonuç, ne bütünüyle özgün ne de tamamen taklittir. Melez mutfak, farklı toplumsal dünyaların yenilebilir bir müzakeresidir.

Otantiklik kimin damak tadı?

Metropollerde “otantik” sözcüğü güçlü bir pazarlama aracıdır. Bambu dekor, açık mutfak, elle yazılmış ideogramlar ve egzotik müzikler, tüketiciye kısa süreli bir coğrafi yolculuk vaat eder. Fakat otantiklik çoğu zaman yemeğin tarihsel doğruluğundan çok müşterinin beklentisine göre üretilir. Bir restoran, Japon müşterilere yeterince geleneksel görünmezken Avrupalı müşteriler için fazlasıyla Japon sayılabilir. Demek ki otantiklik, tarifin içinde saklanan değişmez bir öz değil; aşçı, müşteri, medya ve piyasa arasında verilen hareketli bir karardır.

Üstelik bu karar sınıfsaldır. Bir zamanlar ucuz sokak yemeği olan bazı tarifler, metropolde tasarım tabaklarda sunulunca prestij nesnesine dönüşür. Çubuk kullanabilmek, doğru sake türünü bilmek veya az bilinen bir bölgesel mutfağı keşfetmek, kültürel sermaye gösterisine dönüşebilir. İnsan yalnızca yemek yemez; dünyaya açık, meraklı ve seçkin biri olduğuna dair küçük bir hikâye de tüketir. Menü böylece damaktan önce kimliğe seslenir.

Algoritmanın kurduğu yeni sofra

Bugünkü melezleşmenin görünmez aşçılarından biri de dijital platformlardır. Teslimat uygulamaları kolay taşınan, fotoğrafta iyi görünen ve standartlaştırılabilen yemekleri öne çıkarır. Sosyal medya ise renkli, buharlı, çıtır veya aşırı büyük porsiyonları ödüllendirir. Geleneksel sofranın sessiz incelikleri algoritmik vitrinde geri plana düşerken, peynirle uzayan Kore tavuğu ya da dev suşi ruloları küresel dolaşıma girer. Tarif artık yalnızca ağız için değil, kamera ve ekran için de tasarlanır.

Yine de bu tabloyu kültürün kaybı olarak görmek eksik kalır. Metropol sofrası, geleneğin donmuş bir müze nesnesi olmadığını gösterir. Ritüeller biçim değiştirir; paylaşma duygusu ortak tabaktan dijital tavsiyeye, ustaya saygı şef performansına, mevsimsellik ise sürdürülebilirlik söylemine dönüşebilir. Asıl soru suşinin hâlâ Japon olup olmadığı değildir. Daha kışkırtıcı soru şudur: Bir yemek sınırları geçtiğinde biz onu mu tüketiriz, yoksa o yemek şehirdeki zaman anlayışımızı, statü arzumuzu ve kimliğimizi sessizce yeniden mi pişirir?

Beyniniz Bir Algoritma Olsaydı Hangi Hatayı Verirdi?

İnsan zihni kendini genellikle hakikatin tahtında oturan bir kral sanır. Oysa çoğu zaman karanlık bir odada el yordamıyla yürüyen, duvarlara çarpınca da buna kader diyen bir canlıyız. Bilişsel çarpıtmalar dediğimiz şeyler, beynin gerçekliği kısayoldan yorumlama alışkanlıklarıdır. Hızlı karar vermek için geliştirdiğimiz bu kestirmeler, bazen bizi kurtarır; bazen de zihinsel bir bataklığa çeker. İlginç olan şu: Makineler de sandığımız kadar masum değildir. Onlar da hata yapar, ama bunu kaşlarını çatıp dramatik bir iç sesle değil, veri setinin içinde usulca tekrar ederek yapar.

Bir insanın felaketleştirme eğilimini düşünelim. Küçük bir başarısızlık yaşar ve zihni hemen kıyamet senaryosu yazar: ‘Bu sınav kötü geçti, hayatım bitti.’ Makinedeki karşılığı nedir? Aşırı genelleme yapan bir model. Eğitim verisinde birkaç örnek görür, sonra bütün dünyayı o örneklere benzetir. İnsan ‘bir kere terk edildim, demek ki sevilmeye layık değilim’ der; algoritma ‘bu profil daha önce riskli görünmüş, demek ki benzerleri de risklidir’ sonucuna varır. İkisinde de sorun aynıdır: Sınırlı veriden evrensel yasa üretmek.

Zihnin kara kutusu, makinenin kara kutusu

Psikolojide ‘seçici soyutlama’ diye bir çarpıtma vardır. Kişi, bütün tabloyu değil, sadece acıtan ayrıntıyı görür. Bir konuşmada on kişi onu takdir etmiştir, biri eleştirmiştir; zihin o tek eleştiriyi alır, büyütür, cilalar ve gece yarısı başucuna koyar. Algoritmalarda buna benzer biçimde özellik seçimi ve ağırlıklandırma sorunları görülür. Model, verideki bazı sinyalleri abartır, bazılarını yok sayar. Sonra bize tarafsız bir karar gibi görünen şey aslında seçilmiş bir körlüktür.

İnsanlarda doğrulama yanlılığı belki de en tanıdık canavardır. İnandığımız şeyi destekleyen kanıtları toplar, karşıt kanıtları ise zihinsel çöp kutusuna atarız. Sosyal medyada bunun tiyatrosunu her gün izleriz: Herkes kendi kabilesinin filozofu, karşı tarafın ise cahilidir. Algoritmalar da buna katkı sağlar. Tavsiye sistemleri bize seveceğimiz şeyleri gösterdikçe, düşünce kaslarımız rahat koltuğa gömülür. Böylece insanın içindeki doğrulama yanlılığı, makinenin optimizasyon hedefiyle evlenir. Ortaya çıkan çocuk ise yankı odasıdır.

Bir başka ilginç benzerlik ‘etiketleme’dir. İnsan kendine ‘ben başarısızım’, başkasına ‘o bencil’ der ve karmaşık bir varoluşu tek kelimelik hapishaneye kapatır. Makine öğrenmesinde sınıflandırma da bazen böyle davranır. Kredi alabilir, alamaz. Güvenilir, riskli. Uygun, uygunsuz. Elbette sınıflandırma teknik olarak gereklidir; fakat mesele şudur: İnsan da makine de etiketin arkasındaki hikâyeyi unutmaya meyillidir. Bir insanı tek davranışına, bir topluluğu tek verisine, bir geleceği tek olasılığa indirgediğimizde akıl değil, hız kazanırız.

Yanılgı sadece hata değil, karakterdir

Burada daha derin bir nokta var: Hatalarımız yalnızca bilgi eksikliğinden doğmaz; bazen kim olduğumuzu koruma çabasından doğar. Jungiyen bir dille söylersek, gölgemizi görmek istemediğimiz için dünyayı çarpıtırız. Korkaklığımıza ‘temkin’, öfkemize ‘adalet’, kıskançlığımıza ‘sezgi’ deriz. Algoritmalarda ise gölge, veri setinin geçmişinde saklıdır. Toplumun eski önyargıları veriye kazınır, model onları öğrenir ve geleceğe teknolojik bir ciddiyetle taşır. Böylece makine yeni bir şey icat etmez; çoğu zaman eski hatalarımızı daha hızlı, daha ölçeklenebilir ve daha soğukkanlı biçimde tekrarlar.

Bu yüzden yapay zekâya bakarken aslında metalden yapılmış yabancı bir akla değil, kendi zihinsel alışkanlıklarımızın büyütülmüş aynasına bakıyoruz. İnsan beyni örüntü arar; algoritma örüntü bulur. İnsan anlam uydurur; algoritma korelasyon hesaplar. İnsan yanılırken hikâye anlatır; algoritma yanılırken skor üretir. Fark dramatik görünür, ama kök aynıdır: Eksik bilgiyle dünyayı yönetilebilir kılma arzusu.

Peki çözüm nedir? Ne insanı tamamen sezgisiz bir hesap makinesine çevirmek ne de makineyi büyülü bir kâhin gibi görmek. Çözüm, çift taraflı bir uyanıklıktır. Kendi zihnimize ‘Bu düşünce bir gerçek mi, yoksa korkumun kostüm giymiş hali mi?’ diye sormak gerekir. Algoritmaya da ‘Bu sonuç hangi veriyle, hangi amaçla, hangi kör noktalarla üretildi?’ diye sormalıyız. Çünkü sorgulanmayan zihin dogmaya, sorgulanmayan algoritma otoriteye dönüşür.

Belki de çağımızın en önemli bilgeliği şudur: Ne beynimiz tanrısal bir mahkeme, ne de algoritmalar tarafsız meleklerdir. İkisi de kusurlu yorum makineleridir. Fakat bu kötü haber değildir. Çünkü yanılgıyı görebilen varlık, yanılgının tamamen esiri değildir. Beynin hata kodlarını okumayı öğrenen insan, makinenin yanılgılarını da daha iyi tanır. Ve belki o zaman, hem kendimize hem de teknolojimize biraz daha az kibir, biraz daha fazla bilinç yükleriz.

Kod Review: Başkasının Aklındaki Bug’ı Kırmadan Yakalamak

Kod review, çoğu ekipte yanlış anlaşılan küçük bir ritüeldir: Bir geliştirici kodunu açar, diğerleri büyüteçle kusur arar, sonra yorumlar yağar. Fakat iyi bir kod review, dijital bir mahkeme değil; ortak aklın laboratuvarıdır. Burada amaç, birinin hatasını yakalayıp zafer turu atmak değil, henüz üretime çıkmamış bir fikrin nerede tökezlediğini birlikte görmektir. Çünkü kod, sadece makineye verilen talimat değildir; yazanın zihinsel modelinin donmuş hâlidir.

Bir fonksiyona baktığınızda aslında şunu sorarsınız: Bu insan problemi nasıl anlamış? Hangi varsayımlarla ilerlemiş? Hangi olasılıkları görmüş, hangilerini karanlıkta bırakmış? İşte eleştirel düşünme burada devreye girer. Eleştirel düşünme, sert konuşmak değildir. Tam tersine, aceleci yargıyı askıya alıp mantık zincirini tek tek izleme disiplinidir. Kod review yapan kişi, biraz dedektif, biraz editör, biraz da iyi niyetli bir satranç rakibidir.

Hata değil, varsayım avla

Yeni başlayan reviewer’ların çoğu yüzeyde kalır: Değişken adı kötü, satır fazla uzun, burada noktalı virgül eksik. Bunlar önemlidir ama asıl mesele genellikle daha derindedir. Bir ödeme sistemi düşünün. Kod düzgün çalışıyor gibi görünür; testler yeşildir. Fakat geliştirici, aynı kullanıcının aynı anda iki kez ödeme isteği göndermeyeceğini varsaymıştır. İşte bu, mantık hatasının altın madenidir. Kod review’un ustalığı, yazılmamış cümleleri duymaktır: “Bu değer asla null olmaz.” “Bu servis hep cevap verir.” “Kullanıcı bunu yapmaz.” Yazılım tarihinin mezarlığı, bu cümlelerin enkazıyla doludur.

Yapıcı eleştiri için ilk kural şudur: Kişiye değil, modele saldır. “Bunu yanlış yapmışsın” demek savunma mekanizmasını çağırır. “Bu senaryoda aynı kayıt iki kez oluşabilir mi?” demek ise düşünceyi davet eder. İyi soru, kötü yorumdan daha keskindir. Çünkü soru, sahibini utandırmadan zihinsel süreci yeniden çalıştırır. Kod review’da en etkili cümleler çoğu zaman emir kipinde değil, keşif kipindedir: “Burada race condition ihtimali var mı?”, “Bu kontrol daha yukarıda yapılsa akış sadeleşir mi?”, “Bu fonksiyon iki sorumluluk taşıyor olabilir mi?”

Eleştirinin ergonomisi

Bir yorumun teknik olarak doğru olması yetmez; kullanılabilir olması gerekir. “Bu kötü” gibi bir yorum, harita değil sis üretir. İyi bir review yorumu üç parçadan oluşur: gözlem, gerekçe, öneri. Örneğin: “Bu döngü içinde veritabanına her seferinde sorgu atılıyor; büyük listelerde performans problemi oluşturabilir; toplu sorgu veya önbellekleme daha güvenli olabilir.” Bu cümle hem problemi gösterir hem nedenini açıklar hem de çıkış kapısı bırakır. Eleştiri, kapıyı kilitlemek değil, menteşeyi yağlamaktır.

Elbette reviewer da hatalı olabilir. Hatta sık sık olur. Bu yüzden kesinlik sarhoşluğuna kapılmamak gerekir. Kod review, “ben bilirim” arenası değil, “beraber daha az yanılırız” yöntemidir. Bir öneri sunduğunuzda onun bağlama uyup uymadığını kontrol edin. Belki o çirkin görünen kod, eski bir sistemin zorunlu uyumluluğu yüzündendir. Belki tekrar gibi görünen parça, bilinçli olarak ayrılmıştır. Eleştirel düşünmenin olgun hâli, kendi eleştirisini de inceleyebilmektir.

İyi review kültürü nasıl kokar?

İyi bir ekipte review yorumları kişisel itibar savaşına dönüşmez. Junior geliştirici soru sorabilir, senior geliştirici fikrini değiştirebilir. “Neden böyle yaptın?” cümlesi sorgu odası tonuyla değil, merakla söylenir. Bir PR’da sadece kusur değil, iyi kararlar da işaretlenir: “Bu ayrım okunabilirliği artırmış”, “Bu test kenar durumu güzel yakalamış.” Çünkü beyin yalnızca ceza ile değil, tanınma ile de öğrenir.

Sonuçta kod review, yazılım kalitesinden daha fazlasını üretir: Ortak düşünme kası üretir. Başkasının mantık hatasını yapıcı biçimde bulmak, kendi kör noktalarımızı da eğitir. Her review’da şu küçük ahlaki seçim yapılır: Haklı çıkmak mı istiyorum, yoksa sistemi daha doğru hâle getirmek mi? İlki egoyu besler, ikincisi ürünü. İyi reviewer, hatayı yakalayan kişi değil; hatanın ortaya çıkabileceği düşünme ortamını kuran kişidir. Ve bazen en iyi review yorumu, sadece şu sorudur: “Burada neyi doğru kabul ediyoruz?”