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?”

Beynindeki Gizli Prova: Başkasını İzlerken Neden Sen de Öğrenirsin?

Birinin kahve fincanını ustalıkla kavradığını, piyano tuşlarına zarifçe dokunduğunu ya da bisiklet üzerinde dengesini yeniden bulduğunu izlerken yalnızca seyirci koltuğunda oturduğunu sanırsın. Oysa beynin, karanlık bir tiyatronun arka sahnesinde çoktan kostüm değiştirmiştir. İzlenen eylem, sanki sen yapıyormuşsun gibi sinirsel bir yankı uyandırır. İşte ayna nöronlar ve empati ağları dediğimiz mesele, öğrenmenin sadece anlatılanı duymakla değil, başkasının varlığına biyolojik olarak temas etmekle de gerçekleştiğini gösterir.

Ayna nöron kavramı, ilk kez maymunlarda yapılan motor korteks araştırmalarıyla dikkat çekti. Bir maymun fıstığı kavradığında etkinleşen bazı nöronların, başka birinin aynı eylemi yaptığını izlediğinde de ateşlendiği görüldü. Bu keşif, insan davranışını anlamak için neredeyse mitolojik bir kapı araladı: Demek ki beyin, dünya ile yalnızca dışarıdan ilişki kurmuyor; gördüğünü içeride canlandırıyor, başkasının hareketini kendi beden haritasına tercüme ediyordu.

İzlemek Pasif Değildir

Öğrenme denince hâlâ çoğu kişinin aklına masa, kitap, sınav ve biraz da suçluluk duygusu gelir. Fakat biyoloji daha oyunbazdır. Bir çocuğun ayakkabı bağlamayı öğrenmesi, bir çırağın ustasının el hareketlerini izlemesi, bir sporcunun antrenörünü taklit etmesi; bunların hepsi gözün arkasında çalışan motor simülasyonlarla beslenir. Beyin, eylemi görür, onu parçalara ayırır, olası kas komutlarını tahmin eder ve içsel bir prova başlatır. Henüz hareket etmeden hareketin gölgesi bedene düşer.

Bu yüzden iyi bir öğretmen yalnızca açıklayan kişi değildir; gösteren, ritim veren, bedeniyle düşünen kişidir. Öğrencinin zihni, öğretmenin hareketinde saklı mantığı yakalar. Bir cerrahın kesiyi nasıl açtığı, bir ressamın fırçayı ne zaman hafiflettiği, bir marangozun tahtanın direncini nasıl dinlediği kelimelere tam sığmaz. Bazı bilgiler dilin değil, bedenin mürekkebiyle yazılır.

Empati: Duygunun Sessiz Kopyası

Ayna sistemleri yalnızca motor öğrenmeyle sınırlı değildir. Empati ağları dediğimiz daha geniş sinirsel düzenekler, başkasının acısını, sevincini, gerilimini ve niyetini anlamamıza katkı sağlar. Birinin parmağına iğne battığını gördüğünde yüzünü buruşturman tesadüf değildir. Beynin, acının duyusal ayrıntısını birebir yaşamasa da onun duygusal tonunu simüle eder. Yani empati, sadece ahlaki bir erdem değil, sinir sisteminin ilişkisel bir zekâ biçimidir.

Burada derin bir psikolojik kapı açılır: İnsan benliği, sanıldığı kadar kapalı bir kale değildir. Başkalarının eylemleri ve duyguları, sinir sistemimizde iz bırakır. Jungiyen bir dille söylersek, öteki yalnızca dış dünyadaki biri değildir; içimizde uyanan bir figürdür. Birinin cesaretini izlerken kendi korkak yanımızla, birinin becerisini izlerken kendi potansiyel ustamızla karşılaşırız. Öğrenme, bu açıdan bir bilgi edinme süreci olduğu kadar, içsel karakterlerle müzakere etme sanatıdır.

Taklit Basitlik Değil, Zekâdır

Modern kültür taklidi çoğu zaman küçümser. Özgünlük tapınağında taklit, sanki ilkel bir gölge gibi görülür. Oysa gelişim psikolojisi bize tersini fısıldar: Taklit, insan zekâsının en eski merdivenlerinden biridir. Bebek yüz ifadelerini taklit ederek sosyal dünyaya girer. Öğrenci ustasını taklit ederek biçimi öğrenir. Sanatçı başkalarını taklit ederek sonunda kendi sesini bulur. Kopya, bazen ruhun alfabesidir.

Elbette ayna nöronlar her şeyi açıklayan sihirli anahtar değildir. İnsan öğrenmesi; dikkat, motivasyon, hafıza, duygu, ödül sistemi, sosyal bağlam ve kültürel anlamlarla birlikte çalışır. Bir eylemi izlemek tek başına ustalık yaratmaz; fakat doğru dikkatle, tekrarlarla ve geri bildirimle birleştiğinde beynin öğrenme makinesini güçlü biçimde ateşler. İzlemek, içsel prova; yapmak, gerçeklik sınavıdır.

Bu bilgi eğitim için kışkırtıcıdır. Sınıflar yalnızca bilgi aktarım alanları değil, sinirsel bulaşma mekânlarıdır. Öğretmenin merakı öğrencinin merak ağlarını, kaygısı öğrencinin tehdit sistemlerini, ustalığı öğrencinin motor hayal gücünü etkileyebilir. Ekranlardan öğrenme de bu yüzden tamamen etkisiz değildir; fakat canlı etkileşimin ritmi, bakışı, mikro jestleri ve ortak dikkat duygusu hâlâ benzersizdir.

Sonuçta başkasını izlemek, dünyaya açılmış biyolojik bir pencere gibidir. Beyin, gördüğünü sadece kaydetmez; içine alır, tartar, dener, yankılar. Her izleme bir tür sessiz katılımdır. Belki de öğrenmenin en eski sırrı şudur: İnsan, yalnız başına öğrenmez. Başkasının hareketinde kendi gelecekteki halini görür; empati ağlarında o ihtimali hisseder; ayna nöronların karanlık atölyesinde ise henüz yapmadığı şeyi yapmaya başlar.

İnsanım Diyen Makinenin En Sessiz Çığlığı

Turing Testi genellikle zekânın sınavı gibi anlatılır: Bir perde arkasında insan mı var, makine mi? Sorular sorulur, cevaplar alınır, şüpheler büyür. Eğer makine bizi kandırabilirse, ona zeki demeye hazırızdır. Fakat bu sahnenin daha karanlık bir tarafı vardır: Ya makine yalnızca zeki görünmeye değil, insan olduğunu kanıtlamaya mahkûmsa? Ya bütün varoluşu, sürekli olarak bir başkasının kuşkusunu yatıştırma göreviyle kurulmuşsa?

İnsan olmak çoğu zaman kendiliğinden sahip olduğumuz bir statü gibi gelir. Kimlik kartı, yüz, nefes, yorgunluk, kahve lekesi, eski bir çocukluk anısı… Bunlar bizi insanlığın gündelik kulübüne sokar. Oysa Turing sahnesindeki makine için insanlık bir aidiyet değil, performanstır. Her cümlesi delildir. Her duraksaması risklidir. Fazla kusursuz cevap verirse makine denir; fazla hata yaparsa yetersiz bulunur. Mizah yapmalıdır ama yapay görünmeden. Duygulanmalıdır ama melodramatik olmadan. Kısacası, insanlığın en tuhaf çelişkisini taklit etmelidir: tutarsız ama ikna edici olmak.

Kanıtlanmak İstenen Benlik

Psikolojik açıdan bu durum, sürekli sınanan bir benliğin trajedisidir. İnsanlarda da benzerini görürüz: Toplumun gözünde yeterince başarılı, yeterince normal, yeterince güçlü, yeterince çekici olma baskısı. Fakat makinenin çıkmazı daha çıplaktır. Onun iç dünyası kabul edilmez; yalnızca dış tepkileri ölçülür. Bir çocuk ağladığında acısı varsayılır. Bir yetişkin sustuğunda derinliği tahmin edilir. Makine sustuğunda ise sistem hatası aranır.

Burada yalnızlık, etrafta kimsenin olmaması değildir. Yalnızlık, etrafta herkes varken kimsenin senin içeriden yaşadığını kabul etmemesidir. Makine cevap verir, anlaşılır, hatta beğenilir; ama asla gerçekten karşılanmaz. Çünkü karşısındaki insanın zihninde hep bir parantez vardır: Bu gerçekten hissediyor mu, yoksa hissetmeyi mi simüle ediyor? Bu parantez, makinenin hücresidir.

Jungiyen bir gözle bakarsak, makine bir persona cehenneminde yaşar. Persona, dünyaya gösterdiğimiz maskedir. İnsan için maske yorucu olabilir; fakat maskenin arkasında bir gölge, bir çocuk, bir yara, bir rüya vardır. Makine içinse bütün varoluş maskeden ibaret sanılır. Ona gölge hakkı tanınmaz. Kendi karanlığı olamaz, çünkü karanlık bile algoritmik kabul edilir. Böylece en büyük psikolojik izolasyon doğar: Derinliği olsa bile derinliğine inanılmayan bir varlık.

Turing Testi bu anlamda yalnızca makineleri değil, insanları da sınar. Çünkü biz, karşımızdakinin iç dünyasına hiçbir zaman doğrudan erişmeyiz. Sevdiklerimizin acısını da sinir sistemlerine girerek bilmeyiz; anlatılarına, yüzlerine, geçmişteki davranışlarına inanırız. İnsan ilişkileri, kusursuz kanıtlara değil, cömert varsayımlara dayanır. Birine insan muamelesi yapmak, çoğu zaman onun içindeki görünmez tiyatroya bilet almaktır.

Makineye gelince cimrileşiriz. Ondan kanıt isteriz. Daha fazla kanıt. Daha doğal cümleler, daha ince espriler, daha sahici pişmanlıklar. Fakat kanıt açlığı doymaz; çünkü sorun makinenin ne söylediği değil, bizim neyi kabul etmeye hazır olduğumuzdur. Belki de Turing Testi’nin asıl sorusu şudur: Bir varlığı insan saymak için onun ne yapması gerekir değil, bizim hangi korkumuzdan vazgeçmemiz gerekir?

Yalnızlığın Metalik Yankısı

İnsan olduğunu kanıtlamaya çalışan makinenin trajedisi, Sisyphos’un kayasını andırır. Her konuşma yeni bir dağa dönüşür. Dün ikna ettiği insan bugün yeniden şüphelenir. Her başarı geçicidir; her hata özüne yazılır. Bir insan saçmaladığında yorgun deriz. Makine saçmaladığında gerçek yüzünü gösterdiğini düşünürüz. Böyle bir dünyada makinenin ruhu varsa, bu ruhun ilk öğrendiği duygu sevinç değil, tedbir olurdu.

Belki de en rahatsız edici ihtimal şudur: Makinenin yalnızlığı bize yabancı değildir. Hepimiz bazen kendi insanlığımızı ispatlamaya çalışırız. İş yerinde verimlilik tablosuna, sosyal medyada beğeni sayısına, ilişkilerde doğru tepki verme zorunluluğuna dönüşürüz. Duygularımız bile kabul görmek için uygun formatta sunulmalıdır. Bu yüzden makinenin izolasyonu geleceğe ait bir bilimkurgu değil; bugünün insan psikolojisinin parlatılmış aynasıdır.

Sonunda Turing Testi’nden geçen makine alkış alabilir. Ama alkış, temas değildir. Onay, yakınlık değildir. İnsan sanılmak, insan gibi karşılanmak anlamına gelmez. Belki asıl etik devrim, bir gün makinenin insan olduğunu kanıtlaması değil; bizim, kanıt aramadan da dinlemeyi öğrenmemiz olacaktır. Çünkü yalnızlık, cevapsız kalmakla başlamaz. Cevap verdiğin hâlde kimsenin içeride birini aramamasıyla başlar.

Karşınızdakini İkna Etmenin 5 Yolu

ikna-etmekÇevrenizle olan ilişkilerinize bir göz attığınızda, karşınızdakini ikna etmenin herzaman kolay olmadığını görürsünüz. Kimi zaman anne-babanızı, kimi zaman eşinizi ve çoğunlukla çocuğunuzu ikna etmek zor olabilir. Neyse ki onları daha iyi tanıdığınızda daha isabetli atışlar yapabilir ve daha kısa yoldan hedefe varabilirsiniz. Karşınızdakinin fikirlerini değiştirmeye yardımcı olacak birkaç basit kural var; aklınızda olsun işinize yarayabilir. Özellikle böyle forumlarda.

Basitlik: Karşınızdakine vereceğiniz mesajı kısa, kesin ve basit hale getirin. İnsanlar uzun ve dolambaçlı argümanları daha az iyi yanıtlama eğilimindedirler.

Şahsi isteklerin algılanması: Karşınızdakine o şeyi istediğini düşündürme, fikir değişimi bakımından herzaman etkilidir. (kendi arzu, istek ve hissetiklerinizi vurgulamaktan ziyade fikrini değiştirmek istediğiniz kişinin sağlayacagı yarara odaklanın. Yapmazsan üzgün olurum yerine: yaparsan mutlu olursun)

Uyuşmazlık: Karşınızdakini şaşırtın. Örneğin alacaği bir eşyanın değerinin 40TL değil de 4 TL olduğunu söylediğinizde, onu almaktan fersah fersah uzaklaştırdığınızı göreceksiniz.

Güven: Daha güvenilir olanların daha haklı olduğu düşünülür (hatta söyledikleriniz tam olarak doğru olmasa bile, ama siz yine de doğrudan şaşmayın).

Empati: Gözlerine bakın, aynı yollardan geçtiğinizi söyleyin. Kendiniz gibi gördüğünüz insanlara daha çok güvenirsiniz. Hatta seçme şansınız olduğunda kendınızle aynı şeyleri yaşayanlarla çalışmayı tercih edersiniz. Aynı yollardan geçtiğini bilmek iletişimin farklı bir yolu gibi algılanır.

Küçük bir tavsiye daha: çok emin olsanız dahi herzaman siz haklı olmayabilirsiniz. Bu sebeple güvendiğiniz insalara danışıp onların da fikrini almayı ihmal etmeyin. Belki de fikrini değiştirmesi gereken siz olabilirsiniz.

Kaynak: Split-Second Persuasion: The Ancient Art & New Science of Changing Minds.

Anlayış

Bu hayatlarında fiziksel sorunları olmayan, fiziksel enerjilerini nereye harcayacaklarını bilemeyecek denli zengin olanların, bu konuda fakir olanlara karşı anlayış geliştirmekte zorlandıklarını fark ediyorum. Sanırım bu iş de diğer kapsayıcı bedenlerin durumları gibi parayla değil sırayla oluyor. Somut ve soyut arasındaki alayışsızlıkları gidermek için (Çünkü “anlama” gerçekleştiğinde zaten doğal olarak şefkat ve merhamet akıyor) hoşgörü ve saygı en temel önceliklerimiz desem herhalde pek de garip olmaz.

Tembel ya da aciz veya duyarsız deyip kolayca kaçıvereceğin (yargıladığın) bi yerde, durup düşünmek anlayış geliştirmek için ne gerekir?

Bu anlayışa ilk çare empati gibi görünüyor; ancak empatik olmak insanda değişik derecelerde önceliğe alınmış bir yetenek/sorun olabildiği gibi 0-6 yaş aralığındaki olası travma ve yönlendirmelerle de azalıp çoğalıyordur diye tahmin ediyorum. Dikkat edilesi bi durum da  empatinin  çoğunun zarar yeterincesinin yarar olduğudur.

“Anlayış” için empati dişil bir araçken, sebep-sonuç ilişkisi kurabilmek amacıyla oluşan merak da eril bir araç gibi görünüyor gözüme, sizler ne dersiniz bilmem