Yapay zeka
Kod Artık Bedava. Peki Ne Yazacağız?
Kod yazdırmak ucuzladı. Ama istediğimiz sonucu yeterince detaylı tarif etme işi hala önümüzde duruyor.
Bir yazılımcı için ideal müşteri, tam olarak ne istediğini tarif edebilen ve süreç başladıktan sonra yeni şeyler istemeyen müşteridir. Doğal olarak bugüne kadar böyle bir müşteri hiç olmadı.
Bunun sebebi müşterilerin kötü olması değil. Bir şeyi istemekle, o şeyin nasıl çalışması gerektiğini tarif etmek farklı beceriler. Çoğu zaman ne istediğimizi de ancak karşımıza bir şey çıktığında anlıyoruz. “Evet ama burada şöyle olması lazımdı.” Baştan söyleseydin keşke. Ama baştan sen de bilmiyordun.
Yapay zeka ile kod yazarken de benzer bir yere geliyoruz.
Kod kısmı kolaylaştı
Kod artık bedava diyebiliriz. En azından eskiden yazdırmak için harcamamız gereken para ve zamanla karşılaştırınca.
Milyonlarca insanın kullanacağı bir üründen bahsetmiyorum. Kendi şirketindeki insanların işini görecek bir araç için birkaç LLM aboneliği ve yeterince uğraşla, daha önce bütçe ayrılmayacak bir yazılımı yapmak artık mümkün hatta baya kolay.
Bence bunun şirketler için önemli bir sonucu var. Herkese satılmak için yapılmış bir ürün, senin şirketinin işleyişine hiçbir zaman yüzde yüz oturmayacak. Bir yerde Excel açılacak, bir bilgi başka yere elle taşınacak, birisi iki sistem arasındaki boşluğu kapatmakla uğraşacak.
Artık bu boşluklar için kendi yazılımını yapmak çok kolay. Sırf kullandığın ürün öyle tasarlanmış diye işini ona uydurmak zorunda değilsin.
Ama burada başka bir sorun başlıyor.
“Sistem anlasın”
İnsanlar bizden bir özellik istediğinde sorular soruyoruz. Hangi durumda çalışacak? Kim kullanacak? Neye göre karar verecek?
Bazen cevap “sistem anlasın” oluyor.
Tamam, anlasın da nasıl anlayacak?
Hangi bilgiye bakacak? O bilgi yoksa ne yapacak? İki bilgi birbiriyle çelişiyorsa hangisine güvenecek? Normal akışın dışında bir şey olduğunda işlemi durduracak mı, birine mi soracak?
İlk başta gayet açık görünen bir istek, bu sorularla birlikte belirsizleşebiliyor. Çünkü istenen sonuç kabaca belli olsa da o sonucun tam olarak ne demek olduğu henüz düşünülmemiş.
Burada eksik olan şey bir programlama dili bilmek değil. Bazen daha Türkçe veya İngilizce olarak ne olması gerektiğini tarif edemiyoruz. Koda gelene kadar yapılacak iş var.
Aradaki iş duruyor
Kod yazmayı bilen, özellikle de programatik düşünebilen biri için LLM’ler inanılmaz bir güç. İşi parçalara ayırabiliyor, eksik bir kuralı fark edebiliyor, çıkan sonucun nerede yanlış olduğunu görebiliyor. Eskiden uzun uzun kendisinin yazacağı şeyi artık çok daha hızlı yaptırabiliyor.
Hayatı zaten süreçler olarak görmeyen biri için aynı araçlar o etkiyi vermiyor. Bir ekran çıkıyor, düğmeler çalışıyor, bir şeyler kaydoluyor. Ama bu, işin doğru yapıldığı anlamına gelmiyor. Başta cevaplanmayan sorular, bu sefer “çalışan” yazılımın içinde karşımıza çıkıyor.
Sanki arada hala birine ihtiyaç var. İsteneni dinleyecek, soruları soracak, sonucu yeterince detaylandıracak ve bunun teknik olarak nasıl çalışacağına karar verecek birine. Benim analiz derken kastettiğim iş bu.
Bu rolü de bir insanın yapması şart olmayabilir. Doğru kullanılan bir LLM soruları sorabilir, belirsizlikleri gösterebilir, isteği netleştirmeye yardım edebilir. Ama bunun için onu yalnızca “şunu yap” dediğimiz bir kod yazarı olarak kullanmanın ötesine geçmemiz gerekiyor.
Herkesin elinde acayip bir mühendislik becerisi var artık. Bu büyük bir değişim. Yine de o becerinin işe yaraması için ne istediğimizi biraz daha iyi anlamamız gerekiyor.
Kod yazdırmak ucuzladı. Ne yazdıracağımızı tarif etme işi hala önümüzde duruyor.