2026’da Neden Kod Yazıyoruz?
(softwaredoug.com)- Yazılım mühendisinin rolü, kod üretmenin ötesine geçip bir yazılım fabrikası kurup sürdürmeye kadar genişledi; ancak sistemi anlamak ve iyileştirmek için hâlâ kodla doğrudan çalışmak gerekiyor
- Prompt’lar,
AGENTS.mdve bilgi tabanlarıyla ajanlara yol gösterip sonuçları testler, linting, tip sistemleri ve değerlendirmelerle korursanız düşük performanslı modeller bile yeterince kullanılabilir değişiklikler üretebilir - Doğrudan kod yazmak, İngilizce üzerinden geçmeden çalışma ortamında düşünmeyi sağlar; böylece yalnızca pasif kod incelemesiyle kaçırılması kolay güvenlik açıklarını, zayıf testleri ve gereksiz istisnaları bizzat hissettirir
- Ajanlar derleyiciden çok yeni katılmış bir stajyere benzer; mevcut kodu ve hatalı gereksinimleri muhafazakâr biçimde izler, hatta insanların tek seferlik hatalarını sarma ve dolaylı katmanlarla büyütebilir
- İnsanlar yaklaşımı bizzat deneyip kalıpları oturtmalı, ajanların da bunları tekrarlamasını sağlamalıdır; böylece otomasyonun üretkenliğinden yararlanırken sahiplenme duygusu ve muhakeme korunur
Ajanların Çalıştığı Yazılım Fabrikası
- Yazılım mühendisi yalnızca yazılımı değil, herkesin değişiklikleri prompt ile isteyip hemen dağıtabilmesini sağlayan montaj hattını da sürdürür
- Prompt’lar, beceriler,
AGENTS.mdve bilgi tabanları aracılığıyla ajanların başarılı olabileceği altyapıyı proaktif olarak kurar - Sonuçları sonradan testler, linting, tip sistemleri, değerlendirmeler ve başka yapay zekâlardan yararlanan otomatik değerlendirme ile korur
- Prompt’lar, beceriler,
- Yeterli kısıtlar ve güncel bağlam sağlandığında, zekâ seviyesi düşük modeller bile yoldan sapmadan kullanılabilir değişiklikler üretebilir; bu yüzden insanların kod okumasına ya da doğrudan yazmasına gerek yokmuş gibi görünebilir
- Ancak Fable düzeyinde zekâya sahip bir ajan olsa bile, doğrudan kod yazmak İngilizce adlı ara katman olmadan çalışma ortamında doğrudan düşünmeyi sağlar
- Ajanın oluşturduğu diff ve yamaları pasif biçimde okumak, sistem mimarisiyle derin bağ kurmak için yeterli değildir
- Kodla doğrudan uğraşınca, üzerine özellik eklediğinizde neyin bozulduğunu hissedebilirsiniz
- Kodu düzenleyip birçok istisnanın eklenmediği tutarlı mimari ilkeleri belgelerseniz yazılım fabrikası da daha kararlı çalışır
- Hata ayıklama sürecinde test stratejisinin zayıflıklarını bulup düzeltmek, yeni türden hataların tamamını engelleyebilir
- Yazılımı anlamanın tek yolu doğrudan kod yazmak değildir; mıknatıslanmış iğne ve titremeyen el örneğindeki gibi aşırı el işçiliğinde ısrar etmeye de gerek yoktur
- Gerçek kodun çoğunu yapay zekâ üretse bile, doğrudan kod yazmak hâlâ yararlı bir araç olarak kalır
Doğrudan Kod Yazarak Düşünme Gücünü ve Sahiplenmeyi Korumak
- Yalnızca kod okuma ve onaylamadan sorumlu bir ters kentaur rolünde kalırsanız odak ve sahiplenme duygusu azalır, düşük kaliteli kodun incelemeden geçmesi kolaylaşır ve ince ayar yapmak zorlaşır
- Ayrıntılara dikkat edilmezse güvenlik açıkları birikir; uzun vadede düşük kaliteli kod ajanları da olumsuz etkiler
- İnsanlar yaklaşımı önce bizzat dener, ardından ajanların oturmuş kalıpları tekrarlamasını sağlarsa sonuçlara katılmaya ve onları sahiplenmeye devam edebilir
- İngilizce, hesaplamayı hassas biçimde ifade etmek için yetersiz belirtime sahip bir dildir
- Algoritma çalışmalarında yürütülebilir adımlar halinde tasarlamak ve düşünmek gerekir
- Duruma göre, tasarım alanı geniş düşük seviyeli diller ya da hesaplama ortamı daha sınırlı yüksek seviyeli diller seçilerek gereken hassasiyet ayarlanabilir
- Kodlama ajanlarını derleyici gibi görmek, kötü yazılmış kodun bile dağıtıma çıkarılabileceği bir tutuma yol açabilir
- Ajanlar derleyiciden çok yeni katılmış stajyere yakındır
- Eksik ve düşük kaliteli olabilecek mevcut kodu okur, hatalı değişiklik açıklamalarına dayanarak yeni değişiklikler üretirler
- İnsanlar düşünce ve zevklerini bir stajyerler topluluğuna aynen devredemez; bu yüzden tüketici olarak kalmayıp doğrudan dahil olmalıdır
- Ajanların, kodu bulduklarından daha iyi durumda bırakma anlamındaki İzci kuralını kendiliğinden izlemesi zordur; bunu onlara yüklemek de zahmetlidir
- Mevcut değişikliği olabildiğince güvenli kılmaya eğilimlidirler ve önceki kararları muhafazakâr biçimde korurlar
- Bir kod tabanında bir insan bazı durumlar için dikkatsizce tarayıcı yerel depolamasını kullanınca, kalan durumlar arka uç veritabanında saklanmasına rağmen ajan bu kararı sürdürmek için sarma ve dolaylı katmanlar ekledi; kod satırı sayısı yaklaşık 3 katına çıktı
- Bu muhafazakârlık, insanların verdiği tek seferlik yanlış kararları büyütebilir
- Kodu doğrudan silme ve keşfetme süreci, yalnızca İngilizce talimat vermeye kıyasla daha iyi bir mimariye ulaşmaya yardımcı olur
- Koda ne kadar çok ilgi gösterirseniz düşünme gücünüz, yazar olarak duyunuz ve yazılım fabrikasını yönetme beceriniz o kadar güçlenir
- Yazılım fabrikasında mimari kalıplardan algoritmalara ve performansa kadar ayrıntılar önemlidir
- Ajanlar değerlendirme, ölçüm ve koruma mekanizmalarına olan ihtiyacı artırdı; kişisel projelerde bile CI’ın sonradan yapılan bir iş değil, erken aşamada eklenmesini teşvik etti
- Bu sayede yazılım geliştirme durumu büyük ölçüde iyileşti, ancak her montaj hattında hâlâ zayıf noktalar kalır
- Otomobil fabrikasında bile montaj hattını sökmeniz, içten yanmalı motorun ayrıntılarına inip %10 iyileştirme yapmanız ya da sahadaki bir sorunun neden erken fark edilmediğini bulmak için tüm gün fren balatası testlerini izlemeniz gereken zamanlar olur
- Yazılımda da ayrıntılarla genel yapıyı birbirine bağlamak için neyi doğrudan ele alabileceğinize dair keyfî sınırlar çizmemelisiniz
2 yorum
Çünkü token maliyeti yok :(
Hacker News yorumları
Kod yazamıyorsanız kod incelemesi de yapamayacağınız apaçık görünüyor; ama Claude yazsın, Codex incelesin diyen insanlar ve şirketler var. Buna rağmen çıktıyı assembly ya da derlenmiş binary olarak değil de Python, Java gibi yüksek seviyeli dillerde istemelerinin nedeni sonuçta insanların kodu okuyabilmesi gerektiği
Geliştiricilerin kodu okumasını, debug etmesini ve akıl yürütmesini bekleyip de tam da bu yeteneği geliştirecek eğitimi vermek istememek çelişkili bir tutum
Tüm yaratımı LLM’lere bırakırken sektörün gelişmeye devam edip edemeyeceği ise şüpheli
Bu, bir tarafın daha iyi olduğu anlamına gelmez; ayrıntılara daha az önem veren insanlar dünyayı yönlendirebilir ya da her problem farklı düzeyde incelik gerektirebilir
Derleyici, LLM’in gerçekten derlenip çalıştırılabilen kod yazmasına yardımcı olur; ama doğrudan makine dili çıktısı verirse hiç çalışmama ihtimali yüksektir. Elbette hiç kod yazamıyorsanız inceleme yapmak çok daha zordur
“Bir program üretecek kadar kapsamlı ve kesin bir proje tanımına sektörde ne denir? Kod denir” — CommitStrip
Doğru yazıldıysa kodun özü, temelindeki iş mantığını en basit biçimde ifade etmelidir. Tüm destek katmanlarını incelemek gerekmeyebilir; ama kodu okumadıysanız iş mantığını da tamamen bildiğiniz söylenemez
https://softwaredoug.com/blog/2026/07/04/write-code-not-specs
Önemli soru, elle kod yazmaya kimin para ödeyeceği. Müşteri kodun yazılmasına ya da üretilmesine değil, problemin çözülmesine para öder; dolayısıyla işi en düşük maliyet ve en az tantanayla çözen taraf alır ve AI araçlarının takvimi sıkıştırma avantajını görmezden gelmek zordur
1990’lardan beri bu sektördeyim; olağanüstü olmayan geliştiricilerin vasat çıktılar üretmesi her zaman çok yaygındı. Elle yazılmış kod fazla romantize ediliyor; oysa gerçek kod tabanları zamanla bakımı zor ve hatalarla dolu hale gelmeye yatkındı, kötü yürütülen projeler de hiç yeni bir olgu değil
Şu an iki elimiz bağlı halde bir yazılım fabrikası inşa etmeye çalışıyoruz
Odaklanmak ve anlamak için ajanı uzaktan izleyip kodu pasif biçimde okumakla yetinmeyip kodu bizzat deneyimlemek gerekir. Sonuçta bu, kendi zihinsel modelinizi eğitmeniz gerektiği anlamına gelir
Kod yazarken bilinçaltı “bu doğru hissettiriyor” türünden pek çok yargı üretir; bu da yalnızca tekrar ve derin odaklanmayla gelişir, kod incelemesi ya da dokümantasyon okumakla sınırlı kalır. Böyle oluşmuş bir zihinsel modeliniz varsa, üretim ortamındaki bir arızanın hata mesajına bakarak nedeni hemen işaret edebilirsiniz; üretilmiş kodda ise yavaş, bilinçli düşünmeyle uzun süre aramanız gerekir
LLM’in gerçekten faydalı olması için tüm kod bakımını üstlenip harici bir kütüphane gibi çalıştığını varsayabilmeliyiz; aksi halde sürekli sorun çıkması kaçınılmazdır
Hangisinin doğru olduğunu henüz bilmiyorum, daha fazla araştırıyorum
2026’da bile AI tarafından üretilen kod hâlâ berbat. Fable olsun, özel Pi/opencode LeetCode harness’ları olsun, sonuçlar korkunç; kendi kodunuzla AI kodu arasındaki kalite farkını ayırt edemiyorsanız size kötü bir haberim var
Ajanın Boy Scout kuralına uymasını sağlamak için profil çalıştırma, kod kapsamını kontrol etme, eleştirel inceleme, rapor ve takip işleri yazma gibi şeyleri kurallarda açıkça belirtmiştim. Bugünün en ileri LLM’leri bu tür kurallara, birlikte çalıştığım insanların %90’ından çok daha iyi uyuyor; bunun kötü bir şey mi olduğu konusunda emin değilim.
Ajan muhafazakâr davranıyor ve insanların tek seferlik hatalarını büyütebiliyor. Bunu çözmenin pek çok yolu var ve herkesin düşünme biçimi farklı; bu yüzden hem kodu okumadan ilerleyen yöntemler hem de doğrudan okuyup yazan yöntemler mümkün. Ancak LLM’den geçmeyen kodun kesinliğinden gelen fayda da büyük.
Kodu kendim yazmamın nedeni, yazmazsam LLM’in aşırı fazla kod üretmesi. Problemi tamamen anlayıp genelleştirmek gerekiyor ki “Hello World”e 10 bin satır ve 5 soyutlama katmanı eklenmesin.
LLM bir token tahminleyicisi olduğundan, çözülecek problem sayısı arttıkça ürettiği kod token’larının da artma eğilimi var.
Çözülecek probleme sahip olan taraf insan olduğu için, problem anlaşılmazsa LLM’in gerçek ihtiyaçlarla ilgisiz bir problemi çözdüğü X/Y problemi doğabilir. LLM, kütüphaneler veya üst düzey diller gibi çekirdek olmayan unsurları daha iyi soyutlar; ancak problemin özü hâlâ biçimsel olarak ifade edilmelidir.
Kısıtları tek tek ekleyerek istenen sonuca ulaşan vibe coding de sonuçta gevşek ve biçimsel olmayan bir programlamadır. LLM’e problemin çevresel kısımlarını bırakıp çekirdeği doğrudan yazmak ve anlamak daha iyidir.
Dışarıdan bakınca isteği kusursuz çözmüş görünüyordu ama gereksiz ve sakil bir koddu. Kullanıma göre token satan bir şirketin, problemi kabaca çözerken token tüketimini azamiye çıkaran Rube Goldberg tarzı çözümler üretmesi için ekonomik teşviki var; üstelik yalnızca üretirken değil, içine yeni bug’lar karışmış devasa kodla daha sonra uğraşırken de daha fazla token harcatıyor.
Kopyala-yapıştır kodla alay eden insanların şimdi gelişigüzel yapıştırılmış koda hayran kalması komik.
Kasım 2022’de ChatGPT 3.5’ten bu yana kaydedilen ilerlemeye bakınca, 4 yıl sonra hâlâ kod inceleyip incelemeyeceğimizden emin değilim. Yapay zeka aşırılıkçısı olmasanız bile mevcut hız korunursa 5–10 yıl içinde bugünkü biçimiyle yazılım mühendisliği ve geliştirme büyük olasılıkla ortadan kalkabilir.
İnsanlara yalnızca UI tasarımı gibi işler kalabilir; geri kalan her şey soyutlanıp gerçek işi yapay zeka halledebilir.
Web zaten yeterince berbat; en azından mevcut durumda beceriksiz insanları suçlayabilmemize izin verilsin.
KPI baskısından bağımsız olarak fırsat buldukça kodu kendim yazıyorum; yapay zekadan da en fazla daha akıllı bir kod otomatik tamamlama bekliyorum.
Kodlamayı sevdiğim ve beni gerçekten mutlu ettiği için kodu kendim yazıyorum. Sevdiğim bir işi bırakmam için bir neden yok.