- Yapay zeka destekli geliştirme ortamlarında, deneyimsiz mühendislerin doğrulanmamış büyük PR'ler göndermesi giderek daha sık görülüyor
- Geliştiricinin temel görevi yalnızca kod yazmak değil, çalıştığı kanıtlanmış kodu teslim etmektir
- Bunun için manuel test ve otomatik test olmak üzere iki adım mutlaka uygulanmalıdır
- Kodlama ajanları da kendi yaptıkları değişiklikleri kendileri doğrulayacak şekilde yapılandırılmalıdır
- Sonuç olarak sorumluluk insandadır ve yalnızca doğrulama kanıtı içeren kod gerçek değer taşır
Doğrulanmamış kod göndermenin sorunu
- LLM araçlarını kullanan junior mühendislerin devasa, doğrulanmamış PR'ler gönderip kod incelemesine bel bağladığı örneklerden söz ediliyor
- Bunun saygısız, verimsiz olduğu ve geliştirici sorumluluğunu yerine getirmemek anlamına geldiği belirtiliyor
- Yazılım mühendisinin rolü yalnızca kod üretmek değil, çalıştığı kanıtlanmış kod sunmaktır
- Doğrulanmamış kod, yükü gözden geçirene aktarmak olarak görülüyor
Kodun çalıştığını kanıtlamanın iki adımı
- İlk adım manuel testtir; kodun gerçekten doğru çalıştığını bizzat doğrulamanız gerekir
- Sistemi başlangıç durumuna getirme, değişikliği uygulama ve ardından sonucu doğrulama süreci gereklidir
- Terminal komutları ve çıktı sonuçları kod inceleme yorumuna eklenebilir ya da ekran kaydı videosu ile kanıt sunulabilir
- Normal çalışmanın ardından, sorunları bulmak için uç durum testleri de yapılmalıdır
- İkinci adım otomatik testtir ve LLM araçlarının gelişmesi sayesinde vazgeçilmez bir prosedür olarak vurgulanır
- Değişikliklerle birlikte otomatik testler de eklenmeli ve uygulama geri alındığında testler başarısız olmalıdır
- Test yazımı, manuel testle aynı prosedürü izler ve test harness entegrasyonu becerisi önemlidir
- Yalnızca otomatik testlerin yeterli olduğunu düşünüp manuel testi atlamak yanlış bir yaklaşım olarak gösterilir
Kodlama ajanlarının rolü ve doğrulama
- 2025'te LLM alanındaki ana eğilimlerden biri kodlama ajanlarının hızlı yükselişi; Claude Code ve Codex CLI bunun öne çıkan örnekleri
- Bunlar kodu çalıştırıp sorunları kendi başlarına düzeltebilir
- Kodlama ajanları da kendi değişikliklerini kanıtlamak zorundadır; manuel ve otomatik test yapmalıdırlar
- CLI araçlarında, ajan doğrudan çalıştıracak şekilde eğitilebilir ya da Click'in CLIRunner gibi sistemleriyle otomatikleştirilebilir
- CSS değişikliklerinde sonuçları doğrulamak için ekran görüntüsü yakalama ayarlanabilir
- Projede mevcut testler varsa, ajan bunları genişletir ya da kalıpları yeniden kullanır
- Test kodunun yapısı ve kalitesi, ajanın ürettiği testlerin kalitesini doğrudan etkiler
- Test koduna yönelik estetik anlayış, senior mühendisleri ayıran temel yetkinliklerden biri olarak anılır
İnsanın sorumluluğu ve kodun değeri
- Bilgisayarlar sorumluluk üstlenemez; bu rolü insanlar almak zorundadır
- LLM'lerin büyük yamalar üretmesi artık tek başına değerli bir iş değildir
- Gerçek değer, çalıştığı kanıtlanmış kod sunmaktadır
- PR gönderirken, kodun doğru çalıştığını gösteren kanıtlar mutlaka eklenmelidir
4 yorum
Kesinlikle katılıyorum. Mevcut PR tabanlı süreçte kodun sorumluluğu maintainer ve reviewer’lara devredilen bir yapı var. İncelenmemiş LLM kodunu gönderen kişi için bir dezavantaj yok.
Google kod tabanına katkıda bulununca contributor’ın credit’i gibi şeylerin ölçüldüğünü görüyorsunuz; sanırım diğer açık kaynak projeleri / şirketler de buna benzer şeyleri benimsemeye başlayacak. Güvenin daha da önemli bir varlık haline geleceğini düşünüyorum.
Aa, demek Google böyle bir kavram kullanıyor.
> Çalışan kodu teslim etmek senin işin
Hacker News görüşleri
Son zamanlarda sıkça görülen moral bozucu bir anekdot var. LLM araçlarıyla güçlenen junior mühendisler, devasa ve test edilmemiş PR’ları ekip arkadaşlarına ya da açık kaynak ana bakımcılarına fırlatıp kod incelemesinin gerisini halledeceğini bekliyor. Daha da kötüsü, bu davranışın sadece junior’lardan değil senior geliştiricilerden de gelmesi
İyi PR yazma yöntemi sadece AI üretimi kod için değil, her durumda geçerli. Ben PR açıklaması yazarken mevcut davranışın ne olduğunu, neden değişiklik gerektiğini ve neyin değiştiğini sırayla anlatıyorum. İnceleyenin yükünü azaltmak için test yöntemi, ekran görüntüleri ve hatta E2E test komutları da ekliyorum. Bu yaklaşım asenkron iş birliğinde ya da farklı saat dilimlerindeki ekiplerde de işe yarıyor
Mühendisin özü, gereksinimleri anlamak, onları mantıksal akışa dönüştürmek, trade-off’ları dengelemek ve sonucun sorumluluğunu almaktır. Kod üretmek ya da rastgele PR göndermek, bu temellerin eksikliğinin belirtisi. Kodlama ajanları ise tam tersine mühendisliğin özünü yeniden hatırlatıyor
Test gerekli ama yeterli değil. Kodu mantıksal olarak doğrulamak gerekir. Testler yalnızca belirli girdiler ve ortamlar altında doğru çalıştığını gösterir
Ben testleri zorunluluk olduğu için yapmıyorum. Sadece kodun gerçekten çalıştığını görmek istediğim için yapıyorum. Kodun çalıştığını görmek seni heyecanlandırmıyorsa, bu meslek sana göre olmayabilir
LLM yüzünden junior’ların devasa PR’lar attığına dair şeyler duydum ama bizim organizasyonda henüz böyle bir durum yok
“İşin, kanıtlanmış durumda kod teslim etmek” olduğu sözüne katılmıyorum. Asıl iş iş problemini çözmek. Elbette çoğu durumda bu kodla sonuçlanıyor ama ayrım önemli
Önceki iş yerimde Japonya’daki yüksek kaliteli bir donanım üreticisinde çalışıyordum. QA departmanı bir hata bulursa ürün lansmanı durduruluyordu. Bu yüzden her geliştirme departmanı kendi QC ekibini kurup ön testleri güçlendirdi. Sonuç olarak yazılım son derece titiz biçimde doğrulanıyordu
Bugünlerde işin özü ticket kapatmak haline geldi. Kod kalitesi metriklere yansımadığı için önemsizleşiyor. Ben böyle bir sistemin parçası olmuyorum. Artık zanaatkârlık kayboldu; herkes ucuz kontrplak ve tutkal istiyor
Buradaki sorun “kanıtlanmış kod”un ne anlama geldiği. LLM’in yazdığı testleri ekleyip devasa PR gönderenler de var. Ben kişisel projelerde vibe coding yapıyorum ama ekip düzeyinde bunu yapmak kötü bir alışkanlık. Mühendisleri işe alma nedenimiz, onların uzmanlığını satın almak