- Yapay zeka çağında en aykırı gibi görünen uygulama, ne zaman yavaşlamak gerektiğini bilmek; uygulama ucuzladıkça, ondan önceki karar verme aşaması daha da önemli hale geliyor
- Daniel Kahneman’ın System 1 (hızlı örüntü eşleştirme) ve System 2 (yavaş analitik düşünme) çerçevesi, yapay zeka çağındaki yazılım geliştirmeye uygulanıyor
- Yanlış gereksinimler ya da tasarım varsayımları, yapay zeka tarafından daha hızlı yayılıyor; bu yüzden uygulama öncesindeki yavaş aşamaların maliyet/fayda etkisi en üst düzeye çıkıyor
- Yapay zeka, yalnızca uygulamayı değil, ön inceleme, pre-mortem ve edge case keşfi gibi düşünme aşamalarını hızlandırmak için de kullanılabilir
- "Yapay zeka kullansak ya?" şeklindeki yeni hız baskısı kültürüne karşı koymak için, yavaş aşamaları açıkça görünür kılan ve timebox uygulayan bir strateji gerekiyor
İki düşünme hızı
- Daniel Kahneman’ın Thinking, Fast and Slow kitabında sunduğu iki düşünme modu, yapay zeka çağındaki geliştirmeye uyarlanıyor
- System 1: hızlı, otomatik ve örüntü eşleştirme temelli düşünme
- System 2: yavaş, kasıtlı ve analitik düşünme
- Andrej Karpathy, Dwarkesh Patel ile sohbetinde LLM’leri hayalet ya da cine benzetiyor; insan metninin istatistiksel damıtımı olarak, kelimeler girildiğinde örüntü eşleşmesi yapıp kelimeler üreten, özünde System 1 benzeri varlıklar
- Yapay zeka, büyük ölçekli hızlı örüntü eşleştirme konusunda mükemmel; ancak neyin yapılacağına, neden önemli olduğuna ve doğru problemin çözülüp çözülmediğine karar vermek hâlâ insan yargısının alanı
- Aykırı gibi görünen temel nokta: yapay zeka, yavaş aşamaları daha az önemli hale getirmedi; onları daha önemli hale getirdi
- Uygulama ucuzlayıp hızlandıkça, kaldıraç uygulama öncesindeki karar verme aşamasına kayıyor
- Yanlış gereksinimler, yanlış anlaşılan problemler ve kusurlu tasarım varsayımları, yapay zekanın inşa ettiği her şeye yayılıyor; üstelik artık daha hızlı yayılıyor
- System 1 ne kadar güçlenirse, System 2’nin kötü uygulanmasının maliyeti de o kadar artıyor
Hız yanılsaması
- Akademide eski bir şaka vardır: "Kütüphanede birkaç saatte yapılacak iş laboratuvarda birkaç hafta sürer"; yazılım sürümü ise: "Birkaç haftalık kodlama, birkaç saatlik planlamadan tasarruf sağlar"
- Asıl mesele bunun gerçekte tam tersi olması — aceleyle başlandığında temel hatalar sonradan fark edilir ve acı verici yeniden çalışma gelir
- Yazılım mühendisliğinde, hataların mümkün olduğunca gereksinim ya da tasarım aşamasında erken yakalanması gerektiğine dair net bir sezgi vardır
- Kutu diyagramları kolayca değiştirilebilir, yanlış anlaşılan gereksinimleri düzeltmek daha zordur, temelden kusurlu bir dağıtım mimarisi ise yeniden yazma düzeyinde maliyet yaratır
- Yapay zekanın sorunu: teknik borcu tarihte hiç olmadığı kadar hızlı üretebilmesi
- Uygulama öncesindeki kararlar kusurluysa, yapay zeka bu kusurları tam işlevsel kod gibi görünen biçimlerde sadakatle hayata geçirir
- Yanlış anlaşılan gereksinimlere dayanarak binlerce satır kod üretebilir ve yanlış problem için zarif çözümler kurmaya isteklidir
- Hız yanılsaması: ilerliyormuş gibi hissedilir, ama gerçekte daha derin bir çukur kazılıyordur
- Çözüm, hızdan vazgeçmek değil; onu bilinçli biçimde konumlandırmak — yapay zekanın hızı ancak doğru yönün teyit edilmesinden sonra devreye girmeli
Yavaşlığın etkili olduğu an
- Kasıtlı yavaşlığın işe yaradığı noktalar büyük ölçüde değişmedi
- Gereksinimler, dokümandaki kelimelerken değiştirilmeleri ucuzdur; gerçek kullanıcılara hizmet veren dağıtılmış koda dönüştüklerinde ise pahalıdır
- Tasarım kararları diyagram üzerinde kolayca düzeltilebilir, production sistemlerinde ise zordur
- Yapay zeka bu temel fiziği değiştirmedi; yalnızca doğru yapıldığında elde edilen kaldıracı artırdı
- Thinking First protokolü: işi yapay zekaya devretmeden önce gerçekten ne istendiğini netleştirmek için zaman ayırmak, hataları yakalamanın en ucuz noktasıdır
- İlginç paradoks şu ki yapay zeka, yalnızca uygulamayı hızlandırmak için değil, düşünmenin kendisini hızlandırmak için de kullanılabilir
- Kodlamadan önce gereksinim netleştirme: 10 dakika boyunca çözülecek problemi, başarı ölçütlerini ve kısıtları yaz; sonra üretime geçmeden önce yapay zekaya bunu gözden geçir
- Pre-mortem yürütme: tasarımı kesinleştirmeden önce yapay zekaya "Bu yaklaşımda ne ters gidebilir?" diye sorarak gözden kaçan riskleri ortaya çıkar
- Problemi tersine çevirme (Invert): yapay zekaya "Bu projeyi başarısız kılacak şey nedir?" diye sorarak gizli varsayımları açığa çıkar
- Atılacak prototip inşa etme: yapay zeka ile birkaç saatte bir şey üretip paydaşlara göster; büyük yatırım öncesinde anlayış düzeyini doğrula — yavaşlık için hız yatırımı
- Basit iç araç geliştirme: gerçek ürüne maliyet yüklemeden önce yapay zeka ile kaba bir sürüm yaparak neyin gerçekten gerekli, neyin gereksiz olduğunu anla
- Edge case’leri erken çıkarma: implementasyona başlamadan önce yapay zekaya tasarımın edge case’lerini ve başarısızlık modlarını ürettir, böylece bunları diyagram aşamasında ele al
Yeni kültürel karşı rüzgâr
- "Yapay zeka kullansak ya?" ifadesi yeni bir hız baskısı biçimi; üretkenlik görüntüsü ile gerçek throughput’u karıştırdığı için özellikle tehlikeli
- Yapay zeka saniyeler içinde kod üretebilir, ama kod üretmek ile doğru problemi çözmek aynı şey değildir
- Karşılık verme stratejileri:
- Şu anda hangi aşamada olunduğunu açıkça paylaşmak: yavaş aşamadaysanız, gereksinimleri netleştirdiğinizi, edge case’leri düşündüğünüzü ve doğru problemi çözdüğünüzü doğruladığınızı anlatın
- Paydaş katılımını teşvik etmek: şu anda paydaş girdisini yansıtmanın maliyeti düşüktür; daha sonra ise pahalı olacaktır
- Çalışma sürecini paylaşmak: gereksinim dokümanları, tasarım eskizleri, pre-mortem çıktıları gibi yavaş aşamanın çıktılarını görünür kılın ki ilerleme olduğu görülsün
- Yavaş aşamalara timebox koymak: "Kod yazmadan önce 2 gün gereksinim netleştirme" gibi net sınırlar koyarak, kasıtlı yavaşlığın uçsuz bucaksız değil planlı olduğu hissini verin
- Öğrenilenleri paylaşmak: keşfedilen edge case’ler, yanlış olduğu ortaya çıkan varsayımlar gibi şeyleri kısa güncellemelerle aktararak yavaş aşamayı değerin görünür akışına dönüştürün
- Quick win göstermek: atılacak bir prototipi ya da mockup’ı erkenden üretip hızlı hareket edebildiğinizi gösterin; böylece yavaş ve dikkatli çalışma için güven kazanın
- Bu, Basecamp’in Shape Up metodolojisindeki Hill Chart kavramına benzer
- Yokuş çıkışı: belirsizliğin yüksek olduğu ve işin ne olduğunun keşfedildiği yavaş aşama
- Yokuş inişi: yolun net olduğu ve yalnızca uygulamanın kaldığı hızlı aşama
- Bu, gecikmeye bahane değil; iyi işin gerçekte nasıl yapıldığına dair bir açıklama — uzun vadede en hızlı şekilde yayına çıkan ekipler, çoğu zaman doğru anda yavaşlayan ekiplerdir
Nasıl uygulanır
- Bir sonraki yapay zeka destekli işten önce şunları deneyin:
- 10 dakika ayırıp gerçekten çözmeye çalıştığınız problemi yazın; başarının nasıl görüneceğini ve nelerin kapsam dışında olduğunu tanımlayın
- Geliştirmeye başlamadan önce yapay zekaya yaklaşım için bir pre-mortem yürüttürün
- İş yeterince büyükse, yönü doğrulamak için önce atılacak bir prototip inşa edin
Sonuç
- Hız ve yavaşlık zıt şeyler değil, farklı aşamalar için kullanılan araçlar
- Yapay zeka her iki tarafta da etkilidir: yön net olduğunda hızlı uygulama, belirsizlik varken hızlandırılmış düşünme
- Asıl yetkinlik, şu anda hangi aşamada olduğunuzu anlayıp uygun tempoyu uygulamak
4 yorum
Yavaşça hızlı diye bir söz vardır :)
Lisansüstü dönemimde hocamdan bunu sık sık duyardım,
uzun zaman sonra yine PTSD tetiklendi.
Bunu askerde duymuştum.
Bunu notalarda okumuştum
allegro non troppo (hızlı ama acele etmeden)