- Bir staff engineer, Claude Code kullanarak yapay zekayla birlikte çalışan bir geliştirme iş akışını 6 hafta boyunca denediği deneyimini paylaşıyor
- Yapay zekayı ‘öğrenmeyen bir junior geliştirici’ olarak görme yaklaşımı, başarılı entegrasyonun anahtarı
- İlk denemeler çoğunlukla %95 başarısız oluyor; ancak tekrarlar sayesinde kod giderek işe yarar hale geliyor
- Proje bazlı bağlam dosyaları (
Claude.md) ve MCP tabanlı araç entegrasyonu ile yapay zekanın bağlam eksikliği sorunu çözülebiliyor
- Geliştiricinin rolü kod yazmaktan problem çözme ve mimari tasarıma kayıyor; bu da yapay zeka çağında yeni bir üretkenlik modeli anlamına geliyor
Arka plan ve yaklaşım
- Yazı sahibi eskiden tüm kodu kendisi yazarken, son dönemde kodun %80’ini yapay zekaya yazdırıyor ve kendisi mimari, inceleme ve çok iş parçacıklı geliştirme yönetimine odaklanıyor
- Bu yazı, “yapay zeka devrimi yönlendiriyor” gibi pembe bir anlatı değil; yapay zekayı gerçek üretim geliştirme iş akışına entegre ederken yaşanan karmaşa ve gerçekçi yöntemleri paylaşıyor
- Yapay zekaya “öğrenmeyen bir junior geliştirici” gibi yaklaşmak, başarılı kullanımın kilit noktası
Geliştirme paradigmasının değişim süreci
- İlk 5 yılda kitaplara ve SDK dokümantasyonuna dayalı geliştirme biçimi sürdü
- Sonraki 12 yılda arama (google) tabanlı kolektif bilgi kullanımı dönemine geçildi
- Son 18 ayda Cursor üzerinden yapay zeka destekli kodlama denemeleri yapıldı
- Hemen önceki 6 haftada ise Claude Code ile bütünsel yapay zeka delegasyonu sayesinde keskin bir değişim yaşandı
- Claude Code’a uyum sağlamak, yalnızca birkaç saat içinde üretkenlik artışını hissettirdi
Gerçek yapay zeka tabanlı üretim iş akışı
- Üretime girecek kod üzerinde çalışırken, yapay zeka çoğunlukla “düşünmek için” kullanılıyor
- Tek seferde kusursuz kod üretmek mümkün değil. Bir mühendisin görevi, probleme en iyi çözümü bulmak
- İlk deneme (%95 başarısız): Yapay zeka sistem bağlamını toplamaya başlıyor, geliştirici de problemi netleştiriyor; ancak kod neredeyse tamamen yanlış oluyor
- İkinci deneme (%50 başarısız): Bağlam anlayışı gelişiyor ve yaklaşım somutlaşıyor; ama hâlâ yarısı işe yaramıyor
- Üçüncü deneme (kullanılabilir kod): Tekrar ve inceleme sonrası gerçekten kullanılabilir bir temel kod ortaya çıkıyor ve sonrasında iyileştirilebiliyor
- Bu süreç başarısızlık değil; bilinçli olarak planlanmış deneyler ve yinelemeli optimizasyon süreci
Bağlam sorunu ve çözümler
- Yapay zeka oturumlar arasında belleği koruyamadığı için aynı açıklamaları her seferinde yeniden vermek gerekiyor
- Çözüm olarak
Claude.md dosyası kullanılıyor; burada mimari kararlar, kalıplar ve doküman bağlantıları tutuluyor
- MCP entegrasyonu sayesinde Linear, Notion, GitHub, kod tabanı ve veritabanına bağlanarak bağlam otomatik sağlanabiliyor
- Linear ile ticket bağlamı sağlanıyor
- Notion veya Canvas üzerinden dokümanlara erişiliyor
- Üretim dışı veritabanı ile veri yapısı kontrol ediliyor
- GitHub üzerindeki geçmiş PR’ların arka plan bilgileri kullanılıyor
Paralel Claude örnekleri kullanımı ve temel stratejiler
- Birden fazla Claude örneği paralel yürütülüyor; yaklaşım, “her gün hafızasını kaybeden küçük bir geliştirme ekibini” yönetmek gibi
- Aynı problem alanında paralelleştirmeden kaçınma, tüm işleri Linear gibi proje yönetim araçlarına kaydetme ve insanın doğrudan düzenlediği kodu net biçimde işaretleme gibi stratejiler uygulanıyor
- Sadece kod yazımında değil, kod incelemesinde de yapay zeka yoğun biçimde kullanılıyor: eksik testler, açık hatalar ve iyileştirme noktaları hızla bulunarak tekrar eden işler azaltılıyor
- Yazarın şirketi Sanity’nin politikası gereği, yapay zekanın ürettiği kodda bile nihai kalite sorumluluğu mühendise ait
- Yapay zeka ve insanın ayırt edilmediği bir kod üretim ortamında, duygusal bağlılık azalıyor ve daha eleştirel, daha nesnel kod incelemesi mümkün oluyor
3 aşamalı kod inceleme süreci
- Kod yazmak işin bir parçasıysa, kodu incelemek de aynı ölçüde işin parçası
-
- inceleme: Claude’un ilk kontrolü
- Test kapsamı eksikleri ve bariz hataların tespiti
- İyileştirme önerileriyle ekip arkadaşlarının inceleme süresinden tasarruf sağlanması
-
- inceleme: Benim incelemem
- Bakım kolaylığı, mimari, iş mantığı ve entegrasyon kontrolü
- Kod yapay zeka üretimi olsa bile nihai sorumluluk mühendiste
-
- inceleme: Ekibin standart incelemesi
- Hangi bölümlerin yapay zeka üretimi olduğu bilinmiyor. Aynı kalite standardı uygulanıyor
- Duygusal bağlılık olmadan nesnel inceleme yapılabiliyor
- Yapay zekanın yazdığı koda karşı duygusal bağlılığın azalması, daha nesnel incelemeyi mümkün kılıyor
Slack tetiklemeli agent ve iş otomasyonu denemeleri
- Cursor ile Slack bağlantılı bir agent pilot olarak denendi: basit iş mantığı değişikliklerinde başarılı oldu, karmaşık CSS yerleşimlerinde ise başarısız kaldı
- Şu anda özel NPM paketlerini desteklememe, imzasız commit’ler, resmi takip mekanizmalarını baypas etme gibi sınırlamalar bulunuyor
- Yine de gelecekte agent’ların gece saatlerinde basit ve tekrar eden ticket’ları çözebileceği bir senaryo heyecan verici görülüyor
Maliyet ve ROI
- Claude Code kullanım maliyeti, şirketin mühendise ödediği ücret içinde kayda değer bir kalem
- Buna karşın bu yatırımın üretkenlik getirisi var
- Özellik yayınlama hızı 2-3 kat artıyor
- Birden fazla geliştirme akışı aynı anda yönetilebiliyor
- Tekrarlayan ve boilerplate kodu elde yazma ihtiyacı ortadan kalkıyor
- Yapay zekaya geçişin ilk döneminde senior mühendis başına aylık $1000-1500 bütçe gerekebiliyor; beceri arttıkça maliyet verimliliğinin iyileşmesi bekleniyor
Yapay zeka destekli geliştirmenin süregelen sorunları ve sınırları
- Öğrenme sorunu: Yapay zeka hatalarından ders çıkaramadığı için aynı yanlış anlamaları tekrarlayabiliyor; çözüm, zengin dokümantasyon ve açık talimatların güçlendirilmesi
- Güven sorunu: Yapay zeka yanlış kodu bile özgüvenle sunabiliyor; bu yüzden özellikle karmaşık durum yönetimi, performans ve güvenlik alanlarında mutlaka doğrulama gerekiyor
- Bağlam sınırı sorunu: Büyük kod tabanları yapay zekanın bağlam penceresini aştığı için problemi küçük parçalara bölmek ve net bağlam vermek şart
Koddan probleme duygusal geçiş
- Koda takılı kalmak yerine problem çözme odaklı düşünceye geçiş
- Hatalı kodu hızla silme, daha nesnel inceleme ve refactoring konusundaki yükün azalması = olumlu değişim
- Daha iyi yapay zeka araçları çıkarsa bunları hemen değiştirmeye istekli
- Esas mesele “kodun kendisi” değil, çözülmesi gereken problemin değeri
Mühendis bakış açısından yapay zeka benimseme önerileri
- 1. Farklı yapay zeka çözümlerinin denenmesine izin verin: Ekiplerin çeşitli araçları bizzat kullanarak pratik yetkinlik kazanması gerekir
- 2. Yapay zekayı tekrar eden ve basit işlerden başlatarak uygulayın: Hızlı etki görmek mümkün
- 3. Deneme-yanılma için bütçe ayırın: İlk ayın kaotik geçeceğini kabul etmek gerekir
- 4. İnceleme sürecini yeniden tasarlayın: Yapay zeka koduna uygun denetimleri güçlendirin
- 5. Titiz dokümantasyon yapın: Güçlü bağlam üretkenliği katlıyor
- Yeni yapay zeka iş akışına uyum sağlayan mühendisler, araç kutularına yeni ve çok keskin bir bıçak eklendiğini fark edecek
- Yapay zeka iş akışını benimseyen mühendisler, birden fazla yapay zeka agent’ını orkestre edip mimari, inceleme ve karmaşık problem çözümüne odaklanan yeni bir role evriliyor
Sıradaki adımınız
- Küçük ama iyi tanımlanmış tek bir özellik seçin,
- Yapay zekaya bu özelliği uygulaması için üç şans verin,
- Ve sonucu, tıpkı junior bir geliştiriciye mentorluk yapıyormuş gibi inceleyin
- Hepsi bu. Büyük bir değişime ya da süreç dönüşümüne gerek yok
- Sadece tek bir özellik, üç deneme ve dürüst bir inceleme yeterli
- Gelecek, yapay zekanın geliştiricilerin yerini alması değil
- Geliştiricilerin daha hızlı çalışması, daha iyi çözümler geliştirmesi ve en iyi araçları kullanması
Henüz yorum yok.