Evet, yeni ortaya çıkan bir yapay zeka söylemini de demistifiye edelim.
Söylem şöyle:
“Yapay zeka ile geliştirilmiş uygulamalar canlıda patlar ve sen ne yaptığını bilmiyorsan başın büyük beladadır.”
Doğru.
Ama insan tarafından geliştirilmiş uygulamalar da canlıda patlar.
Bu yüzden onlarca yıldır yazılım mühendisliğinde şu mekanizmaları oluşturuyoruz:
– Automated tests
– E2E tests
– Static analysis
– Monitoring
– Logging
– Metrics
– Tracing
– Health checks
– Feature flags
– Canary deployments
– Blue/green deployments
– Automated rollback
– Load balancing
– Redundancy
Bunların varlık sebebi zaten yazılımcının yazdığı kodun hatasız olduğuna güvenmememizdir.
Yapay zeka burada yeni bir problem ortaya çıkarmadı. Sadece kod üretim hızını dramatik şekilde artırdı.
Dolayısıyla artık asıl soru:
“Yapay zekanın yazdığı kodu tamamen anlayabiliyor muyum?” değil.
Asıl soru:
“Bu sistem yanlış davrandığında bunu tespit edecek, etkisini sınırlandıracak ve sistemi tekrar sağlıklı duruma getirecek mekanizmalarım var mı?”
Eğer cevabınız hayır ise, kodu yapay zekanın yazmış olması probleminiz değildir.
Probleminiz software engineering’dir.
Yapay zeka çağında iyi yazılım mühendisi, sistemdeki her satır kodu bilen kişi olmak zorunda değil.
Sistemin doğru çalışıp çalışmadığını nasıl kanıtlayacağını, yanlış çalıştığında bunu nasıl göreceğini ve nasıl kontrol altına alacağını bilen kişi olmak zorunda.
Ve tam da bu yüzden yapay zeka ile otonom yazılım geliştirmek için çok iyi yazılım mühendisi olmak hâlâ son derece önemli.