Kod Yazmayı Bıraktım. Uygulamam Yine de 3 Günde Yayına Çıktı.
Üç ay önce, full-stack bir SaaS paneli inşa ettim. Yaklaşık 200 satır kod yazdım. Geri kalanı yapay zeka tarafından oluşturuldu, yapay zeka tarafından incelendi ve yapay zeka tarafından refactor edildi.
Uygulama yayında. Kullanıcılar bunun için ödeme yapıyor. Hatalar için uykusuz geceler geçirmiyorum.
Bu bir övünme değil. Bu bir uyarı.
Yazılımcı rolü hızla değişiyor. Kazanan yazılımcılar yapay zekaya karşı savaşanlar değil, bu değişimi anlayanlardır.
AI-native geliştirme yeni bir zihinsel modeldir. Bu sadece otomatik tamamlama (autocomplete) değildir. Yapay zekayı bir iş ortağı olarak görmektir. Uygulamayı (implementation) yapay zeka üstlenir. Mimari, niyet ve karar verme süreçleri ise size aittir.
Değişim şu şekilde görünüyor:
- Eski model: Siz kod yazarsınız. Yapay zeka daha hızlı yazmanıza yardımcı olur.
- Yeni model: Siz "ne" ve "neden" olduğunu tanımlarsınız. Yapay zeka "nasıl" kısmını halleder. Siz ise doğrular ve yönlendirirsiniz.
Eğer kodu yapay zeka yazıyorsa, kodlama becerileri sizi vazgeçilmez kılmaz. Sizi vazgeçilmez kılan meta-becerilerdir.
Yapay zeka desenler (patterns) konusunda harikadır. Ancak bu desenleri seçme konusunda kötüdür. Yapay zeka şunları bilemez:
- Bir server action'a mı yoksa bir API route'una mı ihtiyacınız olduğunu.
- State'in Zustand'da mı yoksa bir URL parametresinde mi olması gerektiğini.
- Bir monorepo'ya ihtiyacınız olup olmadığını.
Bunlar karar verme süreçleridir. Ekibiniz ve ölçeğiniz hakkında bağlam (context) gerektirirler. Bu bağlam sizde var, yapay zekada yok.
Junior ve senior bir yapay zeka geliştiricisi arasındaki fark, prompt'tur.
- Zayıf prompt: Bir rate limiter yaz.
- Güçlü prompt: Next.js API route'u için Redis tabanlı bir rate limiter middleware'i yaz. IP başına dakikada 10 istek ile sınırla. 429 hatası döndür. Admin kullanıcıları için rate limiting'i atla. Sınırlandırılan (throttled) istekleri bir Prisma tablosuna kaydet.
İkinci prompt size üretime hazır (production-ready) kod sağlar. Hassasiyet, artık en önemli mühendislik becerilerinden biridir.
Ayrıca hata modlarına (failure modes) karşı da dikkatli olmalısınız. Yapay zeka kodu genellikle doğru görünür ama ince ayrıntılarda hatalıdır. Testlerden geçebilir ancak bir güvenlik açığına veya bir race condition'a neden olabilir. Yapay zeka çıktısını, bir junior geliştiriciye baktığınız aynı eleştirel gözle inceleyin.
Yapay zekadan korkan yazılımcılar yanlış şeye odaklanıyor. Daha az kod yazmaktan endişe ediyorlar. Asıl risk, kodun etrafındaki becerileri geliştirmeyi başaramamaktır.
Hedef yazılımcı olmayı bırakmak değil, daha iyi bir yazılımcı olmaktır.
Uygulama 3 günde yayına çıktı çünkü vaktimi şunlara ayırdım:
- Veri modeli.
- Kullanıcı akışı.
- Uç durumlar (edge cases).
- İş mantığı (business logic).
Artık iş bu.
Sizin şu anki yapay zeka ve elle yazılan kod oranınız nedir? Yorumlarda bana bildirin.
Kod yazmayı bıraktım, uygulamam yine de 3 günde yayına çıktı: İşte bu bize 2GHP olmanın ne anlama geldiğini söylüyor
Eskiden bir uygulama geliştirmek istediğimde, ilk yaptığım şey bir kod editörü açmak ve her bir satırı tek tek yazmaya başlamaktı. Saatlerimi (bazen günlerimi) sözdizimi hatalarını ayıklamakla, kütüphane uyumsuzluklarıyla ve "neden çalışmıyor?" diye düşünerek geçirirdim.
Geçen hafta bir şey denedim. Kod yazmayı bıraktım.
Ve uygulamam sadece 3 günde yayına çıktı.
Bu deneyim, yazılım dünyasında büyük bir paradigma değişiminin ortasında olduğumuzu kanıtlıyor. Artık sadece "kod yazan" biri olmanın ötesine geçmemiz gerekiyor. Artık bir 2GHP (2nd Generation High Performer - 2. Nesil Yüksek Performanslı Çalışan) olmamız gerekiyor.
Neler Oldu?
Bir fikrim vardı. Normalde bu fikri hayata geçirmek için bir yol haritası çıkarır, veritabanı şemasını tasarlar ve ardından kodlamaya başlardım.
Bu sefer farklı bir yol izledim. Bir "orkestra şefi" gibi davrandım.
Kod yazmak yerine, yapay zekayı (AI) kullanarak sistemin nasıl çalışması gerektiğini tarif ettim. Cursor, Claude ve diğer araçları kullanarak, kodun kendisini yazmak yerine, kodun ne yapması gerektiğini yönettim.
2GHP Nedir?
Birinci nesil yüksek performanslı çalışanlar (1GHP), teknik becerileriyle, karmaşık algoritmaları çözme yetenekleriyle ve kusursuz kod yazma becerileriyle öne çıkarlardı. Onlar "nasıl" sorusuna odaklanırlardı.
İkinci nesil yüksek performanslı çalışanlar (2GHP) ise "ne" sorusuna odaklanırlar. Onlar, yapay zekayı bir kaldıraç olarak kullanarak, teknik detayların içinde boğulmadan, ürünün değerine ve mimarisine odaklanırlar.
Bir 2GHP için kod, nihai amaç değil, bir araçtır.
3 Günlük Süreç
1. Gün: Mimari ve Planlama Kod yazmadım. Sadece sistemin nasıl çalışacağını, veri akışının nasıl olacağını ve kullanıcı deneyiminin nasıl hissettireceğini planladım. Yapay zekaya mimariyi kurması için talimatlar verdim.
2. Gün: İterasyon ve Birleştirme Yapay zeka parçaları oluştururken, ben sadece bu parçaların birbirine uyup uymadığını kontrol ettim. Hataları ben ayıklamadım; hataları yapay zekaya buldurup düzelttim.
3. Gün: Yayına Alma ve Test Uygulama çalışıyordu. Testleri yaptım, son rötuşları ekledim ve yayına aldım.
Çıkarımlarımız
Bu deneyim bana üç önemli şey öğretti:
- "Nasıl"dan "Ne"ye Geçiş: Teknik detaylar (nasıl) artık ikincil planda. Önemli olan, doğru ürünü (ne) inşa etmek.
- Orkestrasyon, Yazmaktan Daha Değerli: Kod yazmak bir beceriydi, ancak sistemleri yönetmek (orkestra şefliği) artık asıl yetenek.
- Hız, Kaliteyi Besler: Daha hızlı iterasyon yapabilmek, daha hızlı öğrenmek ve daha hızlı mükemmelleşmek demektir.
Gelecek, en iyi kodu yazanların değil, en iyi ürünleri inşa edenlerin olacak.