Deneyimli yazılımcılar yapay zeka ile neden daha az üretken?

Dzone üzerinde yayınlanan bu yazıda deneyimine göre yazılım geliştiricilerin yapay zekâ ile üretkenliği ölçülüp değerlendilrilmiş. Beş farklı şirkette 250 kadar yazılım geliştirici üzerinden yapılan araştırmanın sonuçlarını sizlerle paylaşmak istedik.

----

Kıdemli Yazılımcılar AI Copilot ile Neden Aslında Daha Az Üretken? (Ve Bu Bize Ne Anlatıyor?)

Uzman geliştiricinin bir API uç noktası için GitHub Copilot önerileriyle boğuşarak kırk beş dakika harcadığını izledim. Aynı görev, yapay zeka asistanı olmadan on beş dakika sürerdi. 

Bu durum münferit bir olay değildi. Organizasyon genelinde bir model fark etmeye başladık: Deneyimli yazılımcılar, AI kodlama asistanlarını kullanırken junior yazılımcılara göre daha yavaştı. Bu model, bu araçları nasıl kullandığımızı yeniden düşünmemizi sağladı. AI kodlama asistanları deneyimli yazılımcıları yavaşlatırken, junior yazılımcılar ivmelerini korudu.

Birden fazla kuruluştan gelen veriler, çoğumuzun bizzat deneyimlediği şeyi doğruluyor. Junior yazılımcılar AI asistanlarıyla %30-40 oranında üretkenlik artışı görürken, kıdemli yazılımcılar genellikle %10-15 oranında üretkenlik düşüşü yaşamaktadır. Bu sezgisel olmayan bulgu, uzmanlık, güven ve yazılım geliştirmenin geleceği hakkında derin bir gerçeği ortaya koyuyor.

Deneyim seviyesine göre AI Copilot kullanılırken üretkenlik değişimlerini gösteren grafik.


 

Güven Vergisi: Doğrulama Maliyeti Oluşturma Maliyetinden Fazla Olduğunda

Ana sorun teknik değil, psikolojiktir. 

Kıdemli yazılımcılar, sistemlerin nasıl çalıştığına dair zihinsel modeller oluşturmak, uç durumlar (edge cases), performans etkileri ve mimari takaslar hakkında zor kazanılmış bilgiler toplamak için yıllarını harcarlar. AI Copilot kod önerdiğinde, bunu basitçe kabul edemezler. Uzmanlıkları onları her satırı doğrulamaya zorlar. 

Bir junior yazılımcı AI tarafından oluşturulan koda bakar ve şunu sorar: 

  • "Bu çalışıyor mu?" 

Bir kıdemli yazılımcı aynı koda bakar ve şunları sorar:

  • "Bu çalışıyor mu?"
  • "Bu optimal mi?"
  • "Uç durumlar var mı?"
  • "Güvenlik etkileri nelerdir?"
  • "Bu nasıl ölçeklenir?" 
  • "Bellek ayak izi nedir?" 
  • "Teknik borç yaratıyor muyuz?"

Bu doğrulama vergisi oldukça büyüktür. Beş organizasyonda 250 yazılımcı üzerinde yapılan yakın tarihli bir çalışmada, kıdemli yazılımcılar her bir AI önerisini incelemek için ortalama 4,3 dakika harlarken, bu süre junior yazılımcılar için 1,2 dakikadır. Günde onlarca öneriyi inceliyorsanız, bu iş yükünüze saatler ekler.

 

Örüntü Tanıma Sorunu

İşin ilginçleştiği yer burasıdır. Kıdemli yazılımcılar, üretim olaylarını (production incidents) ayıklayarak ve zararsız görünen kodun sonuçlarını bizzat görerek örüntü tanıma yeteneklerini geliştirmişlerdir. 

Copilot büyük bir veri kümesi üzerinde basit bir map işlemi kullanılmasını önerdiğinde, junior bir yazılımcı zarif bir fonksiyonel kod görür. Kıdemli bir yazılımcı ise yoğun trafik sırasında potansiyel bir bellek artışı görür çünkü daha önce tam da bu tür bir sorun için sabahın 3'ünde uykusundan uyandırılmıştır. Yapay zeka, birisi milyonluk bir dizi üzerinde haritalama yaptığı için servisinizin çöktüğü o zamanı bilmez. Siz bilirsiniz.

Gerçek Dünya Örneği: 

Danışmanlık yaptığım bir şirkette, junior bir geliştirici temiz görünen ve tüm testleri geçen AI tarafından oluşturulmuş bir kimlik doğrulama fonksiyonunu kabul etti. Kıdemli bir geliştirici, bunun zamanlama saldırılarına (timing attacks) karşı savunmasız olduğunu fark etti; bu, standart testlerde ortaya çıkmayacak ancak geçerli kullanıcı adları hakkında bilgi sızdırabilecek ince bir güvenlik açığıydı. Junior geliştirici bunu araması gerektiğini bilmiyordu. Kıdemli geliştirici ise bunu görmezden gelemezdi.

 

Yanlış Pozitif Yükü

Kıdemli geliştiricilerin, artan şüphecilikleri nedeniyle daha yüksek oranda yanlış pozitiflerle mücadele ettiğini izledim. Potansiyel sorunları aktif olarak ararlar ve bazen belirli bağlamda aslında sorun olmayan meseleler bulurlar. Bu genellikle AI tarafından oluşturulan kodun gereksiz yere yeniden düzenlenmesine ve aşırı mühendisliğine (over-engineering) yol açar. 

Kıdemli geliştiriciler bazen AI önerilerini reddederler çünkü kod, mevcut kullanım durumuyla eşleşmeyen kalıplara dayanarak yanlış hissettirir. İçgüdülerine güvenirler, bu bazen yardımcı olur ancak ayrım gözetmeksizin uygulandığında işi yavaşlatabilir.

 

Bağlam Pencereleri ve Mimari Düşünme

İkinci büyük faktör, kıdemli geliştiricilerin kod hakkında nasıl düşündüğüdür. Sadece o anki soruna odaklanmazlar; bunun yerine daha geniş sistem tasarımını, sürdürülebilirliği ve gelecekteki genişletilebilirliği göz önünde bulundururlar. 

AI kodlama asistanları yerel optimizasyonda mükemmeldir. Önlerindeki belirli sorunu çözmekte oldukça iyidirler, ancak önerilerinin mimari etkilerini anlamakta zorlanırlar.

Deneyim seviyelerine göre karar faktörlerini gösteren diyagram.

Kıdemli bir geliştirici AI tarafından oluşturulan koda bakar ve yapay zekanın cevaplayamayacağı sorular sorar: 

  • "Bu, servis ağı (service mesh) mimarimize nasıl uyuyor?" 
  • "Ekibimizin kodlama standartlarını takip ediyor mu?" 
  • "Bu koda dokunacak bir sonraki geliştirici niyeti anlayacak mı?" 
  • "Gelecekteki değişiklikleri zorlaştıracak bir bağımlılık yaratıyor mu?" 

Bunlar sadece akademik endişeler değildir. Karmaşık sistemlerde, yerel optimizasyonlar küresel sorunlar yaratabilir. İzole halde mükemmel olan bir fonksiyon, aylar sonra sorunlara neden olabilecek ince bağımlılıklar getirebilir.

 

Otomasyon İronisi

Burada bir ironi var. AI asistanlarının en çok yardım sağladığı görevler, kıdemli geliştiricilerin zihinlerinde zaten otomatikleştirdikleri görevlerdir. Yılların deneyiminden sonra, rutin kodlama kas hafızası haline gelir — üzerinde neredeyse hiç düşünmezsiniz. 

Bir junior geliştirici bir CRUD uç noktası yazdığında, bu odaklanma gerektiren dikkatli ve adım adım bir süreçtir. 

Bir kıdemli geliştirici aynı uç noktayı yazdığında, bu büyük ölçüde bir yazma hızı meselesidir. 

AI desteği junior geliştiricilerin daha hızlı çalışmasını sağlar, ancak kıdemli geliştiricileri önemli ölçüde etkilemez çünkü onlar rutin görevler için zaten optimal hıza yakın çalışmaktadırlar. 

Yapay zekanın kıdemli geliştiricilere yardımcı olabileceği yerler — gerçekten yeni sorunlar, karmaşık mimari kararlar, ince hata düzeltmeleri — mevcut AI araçlarının en zayıf olduğu alanlardır. Sonuç olarak, kıdemli geliştiriciler rutin görevlerde yavaşlar (doğrulama yükü nedeniyle) ancak karmaşık görevlerde buna karşılık gelen kazanımlar elde edemezler.

 

Bu Bize Gelecek Hakkında Ne Söylüyor?

Bu üretkenlik paradoksu, AI destekli geliştirme ve yazılım uzmanlığının doğası hakkında birkaç önemli gerçeği ortaya koyuyor:

Uzmanlık Hızdan Daha Fazlasıdır

Üretkenliği çeşitli şekillerde ölçtük, ancak "günlük kod satırı" metriği her zaman kusurluydu. AI asistanları bu kusuru daha belirgin hale getiriyor. Yirmi satır kod yazmadan önce mimari hakkında bir saat düşünen kıdemli bir geliştirici, teknik borç yaratan iki yüz satır AI üretimi kod yazan bir geliştiriciden daha değerlidir. 

Kıdemli geliştiriciler, yazma hızları veya ham problem çözme hızlarıyla değil; muhakemeleri, dalgalanma etkilerini görme yetenekleri ve neyin inşa edilmemesi gerektiği konusundaki bilgelikleriyle değer katarlar.

Güven Ayarı Yeni Beceridir

AI asistanlarıyla başarılı olacak geliştiriciler, ne her öneriyi sorgusuz sualsiz kabul edenler ne de hepsini reddedenler olacaktır. Başarılı geliştiriciler, AI asistanlarına ne zaman güveneceklerini ve ne zaman daha derine ineceklerini belirlemelerine yardımcı olan zihinsel modeller inşa edeceklerdir. 

Bu yeni bir uzmanlık türü gerektirir: Doğrulama çabasını verimli bir şekilde tahsis etmek için yapay zekanın güçlü ve zayıf yönlerini yeterince iyi anlamak. Bazı kıdemli geliştiriciler, AI önerilerine junior ekip üyelerinden gelen kodlara uyguladıklarıyla aynı ayarlanmış şüphecilikle yaklaşmayı öğreniyorlar — sorunları yakalamak için yeterli inceleme, ancak verimsiz olacak kadar fazla değil.

Gelişen En İyi Uygulama

Gördüğüm en etkili kıdemli geliştiriciler, AI tarafından oluşturulan kodun her detayını doğrulamaya çalışmıyor. Bunun yerine, neyi dikkatlice kontrol edecekleri (güvenlik, performans, mimari uyum) ve neyi minimum incelemeyle kabul edecekleri (iyi anlaşılmış kalıpların basit uygulamaları) konusunda sezgisel kurallar geliştirdiler. Esasen AI kodu için bir "tehdit modeli" oluşturuyorlar.

Bağlam Sorunu Kendi Kendine Çözülmeyecek

AI kodlama asistanları sınırlı bağlamla çalışır. Üzerinde çalıştığınız dosyayı ve birkaç ilgili dosyayı görebilirler, ancak mimarinizi, ekibinizin kurallarını, performans gereksinimlerinizi veya teknik borç durumunuzu gerçekten anlamazlar. 

Bunu iyileştirmek, sadece daha büyük bağlam pencerelerinden fazlasını gerektirir. Gerçek mimari anlayışı inşa edebilen ve sürdürebilen AI sistemleri gerektirir bu, mevcut yeteneklerin hala büyük ölçüde ötesindedir. O zamana kadar, "çalışan kod" ile "uyan kod" arasındaki boşluk geniş kalacaktır.

 

 

Ekipler İçin Pratik Sonuçlar

Tablo, geliştirici deneyim seviyesine göre önerilen AI kullanım stratejilerini özetlemektedir.

Kod İncelemesini (Code Review) Yeniden Düşünmek

Ekiplerin kod inceleme pratiklerini AI çağı için geliştirmeleri gerekiyor. Soru sadece kodun doğru olup olmadığı değil, aynı zamanda AI tarafından üretilip üretilmediği ve geliştiricinin bunu uygun şekilde doğrulayıp doğrulamadığıdır. Bazı ekiplerin, yasaklamak için değil, uygun incelemeyi sağlamak için geliştiricilerin pull request'lerde (çekme istekleri) AI tarafından oluşturulan kodu işaretlemelerini istediğini gördüm. 

Benim görüşüme göre, AI asistanları kod oluşturma ekonomisini temelden değiştiriyor. Kod üretimini önemsiz derecede kolaylaştırdıklarında, darboğaz doğrulama ve entegrasyona kayar. Bu, kod incelemesini daha kritik hale getirir ve etkili inceleme için gereken beceriler daha değerli olur.

Eğitim ve Beceri Geliştirme

Öncelikli olarak AI yardımıyla öğrenen junior geliştiriciler gerçek bir riskle karşı karşıyadır: Kodu zor yoldan yazmanın getirdiği derin anlayışı asla geliştiremeyebilirler. Bu, tüm hazırlık işini yapan bir şefle öğrenen bir aşçı gibidir — yine de yemek yapabilirler, ancak temel bıçak becerilerini asla geliştiremezler.

Organizasyonlar, yeni sürücülerin manuel sürüşü öğrenmeden önce otopilot kullanmasına izin vermediğimiz gibi, junior geliştiricilerin ilk altı ay ila bir yıl boyunca AI asistanları olmadan çalışmasını düşünmelidir. Amaç onlara eziyet etmek değil, AI desteğini sadece hızlı değil, aynı zamanda değerli kılan temel anlayışı inşa etmelerini sağlamaktır.

 

Meta-Ders: Araçlar Düşünceyi Şekillendirir

Kıdemli geliştirici üretkenlik paradoksu, araçlar ve düşünce arasındaki derin bağlantıyı ortaya koyuyor. 

Kıdemli geliştiriciler AI ile daha yavaştır; uzmanlıklarına rağmen değil, uzmanlıkları yüzünden. Yaşadıkları doğrulama yükü, aracın geliştirmenin nasıl çalışması gerektiğine dair zihinsel modelleriyle uyuşmamasından kaynaklanmaktadır. 

Junior geliştiriciler zihinsel modellerini henüz oluşturmaktadır, bu yüzden AI destekli iş akışlarına daha kolay uyum sağlarlar. Ancak kıdemli geliştiriciler, yılların deneyimiyle bilenmiş yaklaşımlara güvenirler ve AI asistanları genellikle bu yaklaşımları tamamlamak yerine onlara karşı çalışır. 

Bu, her iki grup için de bir eleştiri değildir. Uzmanlığın nasıl çalıştığına dair bir gözlemdir. Gerçek uzmanlık sadece bilgi değildir — sezgi, örüntü tanıma ve derinlemesine içselleştirilmiş iş akışlarıdır. Bu iş akışlarını bozan herhangi bir araç dirençle karşılaşacaktır ve bu direnç genellikle inatçılıktan ziyade gerçek bir bilgeliği yansıtır.

 

 

İleriye Bakış

Bugün gördüğümüz üretkenlik paradoksu kalıcı değildir. AI kodlama asistanları geliştikçe, daha iyi bağlamsal farkındalık ve kodlama kurallarına saygı geliştireceklerdir. Kıdemli geliştiricilerin gerçekten ihtiyaç duyduğu üst düzey yardımı sağlayacaklardır. 

Ancak, boşluğun tamamen kapanmasını beklememeliyiz. AI'nın önerileri ile insan muhakemesi arasındaki gerilim muhtemelen her zaman var olacak ve bu gerilim sağlıklıdır. Amaç doğrulamayı ortadan kaldırmak değil, onu daha verimli hale getirmektir. 

Bu arada, geliştirici üretkenliğini yalnızca çıktı hızıyla ölçme cazibesine direnmeliyiz. Kıdemli geliştiricilerin AI asistanlarıyla daha yavaş olması, daha az değerli oldukları anlamına gelmez. Genellikle tam da yapmalarını istediğimiz şeyi yapıyorlardır: Muhakeme uygulamak, etkileri düşünmek ve kod tabanını iyi niyetli ama nihayetinde sorunlu önerilerden korumak.

Temel Çıkarım:

Kıdemli geliştirici üretkenlik paradoksu, deneyimli geliştiricilerin yapay zekayı nasıl kullandığıyla ilgili bir hata değil, uzmanlığın kendisinin bir özelliğidir. Yaşadıkları doğrulama yükü, muhakemenin maliyetidir ve bu muhakeme tam da onları kıdemli geliştirici yapan şeydir.

 

 

Sonuç: Üretkenliği Yeniden Tanımlamak

Yazılımın nasıl inşa edildiğine dair temel bir değişimin ortasındayız. AI kodlama asistanları güçlü araçlardır, ancak tüm dönüştürücü teknolojiler gibi karmaşıklık getirirler. Kısa vadede kıdemli geliştiricileri yavaşlatmaları bize önemli bir şey söylüyor “önemli olanı ölçmüyoruz”. 

Yazılım geliştirmenin değeri hiçbir zaman ham kodlama hızında olmamıştır. Düşüncelilik, muhakeme, tasarım içgörüsü ve sorunları öngörme yeteneğindedir. Eğer AI asistanları junior geliştiricilerin daha üretken olmasına yardımcı olurken kıdemli geliştiricileri daha temkinli hale getiriyorsa, bu hiç de bir üretkenlik kaybı olmayabilir. Bu, darboğazın yaratımdan kürasyona, yazmaktan düşünmeye kaydığını temsil edebilir. 

Uzun vadede, bu değişim tam da endüstrinin ihtiyaç duyduğu şey olabilir. Çok az düşünerek çok fazla yazılım inşa ettik. Eğer AI asistanları, inşa sürecini biraz yavaşlatsalar bile bizi ne inşa ettiğimiz konusunda daha kasıtlı olmaya zorlarsa, daha iyi sistemlere sahip olabiliriz. 

Soru, kıdemli geliştiricilerin AI asistanlarını kullanıp kullanmaması gerektiği değildir — bu karar piyasa tarafından zaten verildi. 

Soru, iş akışlarımızı, metriklerimizi ve beklentilerimizi, deneyim ve üretkenlik arasındaki ilişkinin temelden değiştiği bir dünyaya nasıl adapte edeceğimizdir. Bunu ilk çözenler, girmekte olduğumuz AI destekli geliştirme ortamında önemli bir avantaja sahip olacaklardır.

Ahmet Oğuz Koca
Ahmet Oğuz Koca

Üretken yapay zeka araçları ve yazılım uzmanı.

Paylaş