← Tüm yazılar
Yazılım· ·6 dk okuma

Kod Yazmayı Bırakmak Değil, Kodu Anlayabilmek

AI kodun büyük bölümünü yazabiliyorsa geliştirici neyi kendisi yapmalı? Hız ile teknik derinlik arasındaki yeni dengeyi tartışıyorum.

#yapay zeka#yazılım geliştirme#developer productivity#kodlama#kariyer
Yapay zekânın kod üretimi ile geliştiricinin teknik sorumluluğu arasındaki dengeyi anlatan editoryal illüstrasyon

Bir geliştiricinin artık gününün büyük bölümünü kod yazarak geçirmemesi şaşırtıcı değil. Kod üretimi ucuzladı. Bugün yapay zekâ; bileşen oluşturabiliyor, test yazabiliyor, dokümantasyon hazırlayabiliyor, hata ayıklayabiliyor ve bazı görevleri baştan sona yürütebiliyor.

Bu değişim, “Geliştirici artık kod yazmalı mı?” sorusunu gündeme getiriyor. Bence soru biraz yanlış yerde duruyor. Mesele, insanın her satırı kendisinin yazması değil. Mesele, yazmadığı kodun sorumluluğunu taşıyacak kadar onu anlayıp anlayamadığı.

Bir geliştirici bütün kodu yapay zekâya yazdırıp yalnızca sistem mimarisine bakabilir mi? Bazı işlerde evet. Hatta bu, üretkenliğin doğal sonucu olabilir. Fakat bunu her durumda doğru çalışma biçimi saymak, geliştiricinin teknik karar verme kapasitesini zamanla zayıflatabilir.

Kod üretimi artık işin tamamı değil

Yapay zekânın yazılım geliştirmedeki rolü konusunda elimizde artık yalnızca iyimser ürün tanıtımları yok. Anthropic’in 2025 tarihli Economic Index çalışması, Claude Code etkileşimlerinin yüzde 79’unu “otomasyon”, yüzde 21’ini ise “destekleme” olarak sınıflandırıyor. Claude.ai tarafında otomasyon oranı yüzde 49’da kalıyor. Bu fark, kodlama ajanlarının sohbet tabanlı yardımcı araçlardan daha fazla işi doğrudan üstlendiğini gösteriyor. (anthropic.com)

Aynı çalışma, kullanıcı arayüzü ve basit web uygulaması geliştirme gibi işlerin yapay zekâ tarafından daha erken dönüştürülebileceğini öne sürüyor. Bu, yapay zekânın yalnızca birkaç satırlık otomatik tamamlama yaptığını değil, daha geniş görev zincirlerini üstlendiğini gösteren önemli bir işaret. (anthropic.com)

Dolayısıyla “AI sadece yardımcıdır” cümlesi bugünün araçlarını tam olarak anlatmıyor. AI, kodun önemli bir kısmını yazabilir. Testleri oluşturabilir. Bir projeyi inceleyip değişiklik önerebilir. Hatta insanın yalnızca hedefi tarif ettiği ve sonucu denetlediği bir çalışma biçimi bazı görevlerde yeterli olabilir.

Ama bundan “kod bilgisi artık gereksiz” sonucu çıkmıyor. Çünkü üretim ile sorumluluk aynı şey değil.

Hızlanmak, öğrenmek anlamına gelmiyor

Yapay zekâ ile daha hızlı kod yazmak mümkündür. Fakat hızın kendisi, geliştiricinin daha iyi öğrendiğini veya daha iyi yazılım ürettiğini kanıtlamaz.

2026’da yayımlanan bir meta-analiz, 23 çalışmadaki 27 etki büyüklüğünü inceleyerek yapay zekâ destekli programlamanın üretkenlikte orta düzeyde ve istatistiksel olarak anlamlı bir artış sağladığını bildiriyor. Ancak öğrenme çıktılarında istatistiksel olarak anlamlı bir etki bulunmuyor. Başka bir deyişle, insanlar bazı görevleri daha hızlı tamamlayabiliyor; bu, aynı insanların programlamayı daha iyi öğrendiği anlamına gelmiyor. (arxiv.org)

Bu ayrım özellikle kariyerinin başındaki geliştiriciler için önemli. Bir problemi çözmeye çalışırken kodun neden öyle yazıldığını anlamak, yalnızca doğru çıktıyı almaktan farklı bir deneyimdir. İnsan her zorlandığında görevi AI’a devrederse, zorlanmanın öğrettiği zihinsel modelleri daha az kurar.

Bir fonksiyonun nasıl yazıldığını bilmek tek başına yeterli olmayabilir. Fakat fonksiyonun neden o sınırda durduğunu, hangi varsayımlara dayandığını, hangi durumda bozulacağını ve nasıl değiştirileceğini anlayabilmek hâlâ gerekir.

Mimar olmak, koddan uzaklaşmak değildir

“Ben kodu AI’a yazdırırım, mimariye bakarım” fikri kulağa makul geliyor. Ancak mimari, koddan bağımsız bir üst katman değildir. Mimari kararlar çoğu zaman kodun ayrıntılarında görünür.

Bir servisin sınırlarını belirlemek, veri akışını çizmek veya bileşenleri ayırmak üst düzey kararlar gibi durur. Fakat bu kararların kalitesi; hata yönetimi, eşzamanlılık, veri tutarlılığı, gözlemlenebilirlik, performans ve bakım maliyeti gibi ayrıntılarla sınanır.

Kodun tamamını okumadan mimariyi değerlendirmek, bir binanın yalnızca dış cephesine bakarak taşıyıcı sistemini yorumlamaya benzeyebilir. AI’ın ürettiği kod çalışıyor olabilir. Testlerden geçebilir. Yine de sistemin ileride nasıl değişeceğini, hangi parçanın gereksiz bağımlılık oluşturduğunu veya hangi varsayımın sessizce yanlış olduğunu anlamak için kodun davranışını takip etmek gerekir.

Bu, geliştiricinin her satırı klavyeyle yazması gerektiği anlamına gelmez. Asıl ihtiyaç, kodu okuyabilmek, sorgulayabilmek ve gerektiğinde baştan yazabilecek kadar hâkim olmaktır.

İnsan hangi işi kendisi yapmalı?

Bence yapay zekâ çağında geliştiricinin kendisinin yapması gereken işlerin sınırı “kod satırı” üzerinden çizilmemeli. Daha anlamlı sınır, kararın geri dönüş maliyetine göre çizilebilir.

Düşük riskli, tekrarlı ve kolay doğrulanabilen işler AI’a bırakılabilir. Basit bir dönüştürücü, standart bir test dosyası, tekrar eden bir veri modeli veya iyi tanımlanmış bir arayüz bileşeni bu gruba girebilir. Burada insanın görevi, çıktıyı hızlıca incelemek ve sistemin genel kurallarına uyduğunu doğrulamaktır.

Daha pahalı sonuçlar doğuran kararlarda ise geliştiricinin doğrudan sürece girmesi gerekir. Veri modelinin temelini değiştiren bir karar, güvenlik sınırlarını etkileyen bir uygulama, yoğun trafik altında çalışacak bir mekanizma veya uzun süre yaşaması beklenen bir modül buna örnek olabilir.

Bu kararları da mutlaka insanın elle yazması gerektiğini söylemiyorum. AI taslağı oluşturabilir. Alternatifler sunabilir. Deneyler yapabilir. Ama geliştirici, önerinin dayandığı varsayımları anlamadan onu sisteme almamalı.

Kısacası AI’ın yazdığı kodu kullanmak ile kodu AI’a sorgusuz teslim etmek arasında büyük fark var.

Kod yazma becerisi nasıl değişecek?

Kod yazmanın değeri azalacak, fakat tamamen ortadan kalkmayacak. Değişen şey, kodun üretimindeki kıtlık. Daha önce bir özelliği hayata geçirmek için uzun süre harcamak gerekiyordu. Şimdi aynı ilk taslağı çok daha hızlı almak mümkün.

Bu durum, geliştiricinin değerini başka alanlara kaydırıyor: doğru problemi seçmek, gereksinimleri netleştirmek, sistemin sınırlarını çizmek, çıktıyı değerlendirmek ve değişikliklerin sonuçlarını öngörmek.

Bununla birlikte, bu yeni alanlar kod bilgisinden bağımsız değil. AI’ın ürettiği onlarca dosyayı incelemek, yanlış bir soyutlamayı fark etmek veya bir önerinin neden riskli olduğunu anlatmak için teknik temel gerekiyor.

Microsoft Research ve GitHub tarafından yapılan erken dönem çalışmalarda geliştiricilerin Copilot ile daha üretken hissettiği görülmüştü. Ancak bu tür sonuçlar çoğunlukla belirli araçlara, görev tiplerine ve ölçüm yöntemlerine bağlı. (github.blog) Daha gerçekçi koşullarda yapılan METR çalışmasında ise, 2025’in erken dönem araçlarını kullanan deneyimli açık kaynak geliştiricileri görevleri AI açıkken ortalama yüzde 19 daha uzun sürede tamamladı. Çalışmanın kapsamı sınırlıydı ve sonuçlar bugünkü araçlara doğrudan genellenemez; yine de “AI kullanmak her zaman hızlandırır” varsayımının güvenilir olmadığını gösteriyor. (metr.org)

2026 başında METR, daha yeni araçlarla geliştiricilerin daha fazla hızlanıyor olabileceğini ve AI kullanımının yaygınlaşmasının ölçüm yapmayı zorlaştırdığını belirtti. Bu da sonuçların zamana, araca ve görev bağlamına çok duyarlı olduğunu gösteriyor. (metr.org)

Körelme riski nerede başlıyor?

Körelme, AI kod yazdığı için başlamaz. Geliştirici artık kod üretmediği için de otomatik olarak körelmez. Risk, kişinin karar verme ve doğrulama sürecini de dışarıya devretmesiyle başlar.

Bir geliştirici üretilen kodu okuyorsa, alternatifleri karşılaştırıyorsa, testlerin neyi kapsamadığını biliyorsa ve gerektiğinde çıktıyı reddedebiliyorsa AI güçlü bir üretim aracı olur. Fakat geliştirici yalnızca “çalıştı” sinyaline bakıyor, açıklamayı yeterli kabul ediyor ve kodun iç mantığını takip etmiyorsa zamanla kendi teknik sezgisini daha az kullanır.

Bu nedenle iyi bir AI destekli çalışma düzeninde geliştirici bazen kodu kendisi yazmalıdır. Bunun amacı romantik bir zanaat anlayışını korumak değil; sistemin nasıl davrandığını zihninde canlı tutmaktır. Özellikle yeni bir kavram öğrenirken, kritik bir modülü tasarlarken veya üretilen çözümün neden yanlış olduğunu araştırırken klavyeyi tekrar eline almak hâlâ değerlidir.

Sonuç

Geleceğin geliştiricisi bütün kodu kendisi yazan kişi olmayacak. Fakat kodu anlamadan yalnızca sistemi yöneten kişi de olmayacak.

AI’ın işin büyük bölümünü yapabildiğini kabul etmek gerekiyor. Bu, geliştiricinin değerini küçültmüyor; değer üretilen yerin değiştiğini gösteriyor. Daha az zaman kod yazmaya, daha fazla zaman karar vermeye ayrılabilir.

Fakat karar verebilmek için teknik derinlik gerekir. AI’a bırakılan her satır, insanın bırakması gereken her düşünme adımı değildir.

Bence doğru yaklaşım şu: Kodun tamamını elle yazmaya çalışma; ama sistemin önemli kararlarını, üretilen kodun davranışını ve başarısızlık ihtimallerini anlayacak kadar kodun içinde kal.

AI geliştiriciyi köreltmez. Geliştiricinin düşünmeyi de otomatikleştirmesine izin vermesi köreltebilir.

Doğrulama

Kaynaklar

Yazıdaki dış iddiaları doğrulamak ve daha derine inmek için kullandığım ana kaynaklar.

  1. 01
    Anthropic Economic Index: AI’s impact on software development ↗

    500.000 kodlama etkileşiminin otomasyon ve destekleme biçimleri; Claude Code kullanımındaki görev türleri.

  2. 02
    Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity ↗

    16 deneyimli açık kaynak geliştiricisiyle yapılan randomize çalışma; erken 2025 araçlarıyla görev süresi sonucu.

  3. 03
    METR: We are Changing our Developer Productivity Experiment Design ↗

    2026 başındaki araçlarla AI etkisinin değişmiş olabileceği ve ölçüm zorlukları.

  4. 04
    A meta-analysis of the effect of generative AI on productivity and learning in programming ↗

    23 çalışma ve 27 etki büyüklüğünün meta-analizi; üretkenlik ve öğrenme sonuçları.

  5. 05
    Research: How GitHub Copilot helps improve developer productivity ↗

    GitHub’ın 2022 tarihli erken dönem Copilot araştırması; algılanan üretkenlik ve kullanım verileri.

Yazan

Recep Özgür Mıh

Mobil, backend ve ürün geliştirme kesişiminde çalışan bir yazılım mühendisi.

Hakkımda