- Geliştiricileri yapay zekayla değiştirmenin neden zor olduğuna dair
- Pek çok haberde yapay zekanın geliştiricilerin yerini alacağı söyleniyor; ancak yazılım inşa etmenin en zor kısmı kodlama değil, açık ve doğru gereksinimler oluşturmaktır.
- "O bir bug değil, özellik. Dur, bir saniye, bug'mış."
- Belirsiz gereksinimler bug üretir.
- "Yapay zeka geliştiricilerin yerini alacaksa, müşterilerin ne istediklerini tam olarak açıklayabilmeleri gerekir. Güvendeyiz."
Yapay zekanın gerçeği: satranç vs. otonom araçlar
- Yapay zeka, satranç gibi kuralların sınırlı ve net olduğu alanlarda başarıyla kullanıldı; ancak otonom araçlar, sonsuz değişken ve istisna durumları nedeniyle yapay zeka için çok daha karmaşık bir meydan okumadır.
- Teknoloji alanında 5 dokuz veya 6 dokuz availability (kullanılabilirlik) standarttır (99.999% ile 99.9999%).
- 99%'a ulaşmanın maliyeti çok yüksek değildir. 99%, web sitenizin yılda 3 günden az süre kapalı kalması anlamına gelir (87,6 saat).
- Ancak her eklenen 9 ile birlikte buna ulaşmanın maliyeti geometrik olarak artar.
- 99.9999% için sistemin yılda yalnızca 31,5 saniye kapalı kalması gerekir (99.9% = 526 dakika/8,76 saat, 99.99% = 52 dakika, 99.999% = 5,2 dakika).
- Bunun için çok büyük planlama ve emek gerekir, tabii ki pahalıdır.
- Yapay zeka ne kadar gelişirse gelişsin, her zaman kaza riski vardır.
- Ne kadar kazanın kabul edilebilir olduğunu bilmiyoruz, ama en azından insan kadar iyi olması gerekir.
Yapay zeka yazılım üretemez, yalnızca kod üretebilir
- Yazılım yapmak ve bakımını sürdürmek, satrançtan çok araç kullanmaya benzer.
- Sayısız değişken vardır ve kurallar muhakemeyle belirlenir.
- Yazılım geliştirirken istenen bir sonuç vardır, ama bu satranç kadar basit değildir.
- Yazılımda "tamamlandı" diye bir durum neredeyse yoktur. Özelliklerin eklendiği ve bug'ların düzeltildiği sürekli bir süreçtir.
- Yazılımdan farklı olarak, bir satranç oyunu kazanıldığında ya da kaybedildiğinde biter.
- Yazılım geliştirmede, yazılım tasarımını satrançtaki kural motoru gibi hale getiren bir aracımız vardır: teknik spesifikasyon.
- En iyi durumda bu teknik spesifikasyon, kullanıcı davranışını ve programın akışını öngörür.
- Ancak bu durum çok nadirdir. Çok sık olarak işlevsel spesifikasyon yerine bir istek listesi alırız ya da peçeteye çizilmiş wireframe'ler veya belirsiz gereksinim dokümanları teslim edilir ve en iyi kararı bizim vermemiz beklenir.
- Daha da kötüsü, gereksinimler değişir ve hatta görmezden gelinir.
- İmkansız gereksinimler. Orijinal yazıda, Wi-Fi olmayan bir yerde SMS ile COVID anketi yapılmasını isteyen bir proje örneği anlatılıyor. En doğrusu hiç yapmamaktı.
- Acaba yapay zeka böyle bir duruma gerçekten yanıt verebilir mi?
- Yapay zekanın işlevsel yazılım üretebilmesi için ne istendiğinin gerçekten bilinmesi ve bunun açık, net ve doğru biçimde tanımlanabilmesi gerekir.
- Son 10 yılda yazılım endüstrisi waterfall'dan agile yönteme geçti.
- Waterfall'da paydaşların ne istediklerini bildikleri ve bunu dokümante edebilecekleri varsayılıyordu; ancak nihai ürün teslim edildiğinde büyük hayal kırıklığı yaşandığı için bu yaklaşım başarısız oldu.
- Agile, bu sürece bir çözümdür.
- Yapay zeka, elimizde zaten bulunan yazılımları daha güncel donanıma ve yeni dillere yeniden yazmak için en uygun araç olabilir.
- Hâlâ COBOL ile yazılmış yazılım kullanan çok yer var, ama bu dili öğrenen neredeyse kimse kalmadı.
- Yapay zeka, daha önce yapılmış yazılımları insanlardan daha hızlı üretebilir; ama bunun nedeni, birilerinin o yazılımın nasıl yapılması gerektiğini zaten düşünmüş olmasıdır.
- Yapay zeka, bizim ölüm yürüyüşü dediğimiz waterfall süreci kullanıldığında yazılımı epey iyi inşa edebilir.
- Waterfall'da korkunç olan kim? İnsan.
- Sadece programcı ekibe teslim edilen dokümanı yazma kısmı değil, ondan önceki her şey.
- Yapay zeka bazı şaşırtıcı şeyler yapabilir, ama zihninizi okuyamaz ya da size ne istediğinizi söyleyemez.
8 yorum
Bence bu, yalnızca yazılım geliştirme için değil, yapay zeka konusunda kaygı duyulan tüm alanlar için geçerli.
Gereksinim doğrulamayı otomatikleştirmeye yönelik teknolojiler epey gelişecek gibi görünüyor. Test otomasyonu daha da önem kazanacak gibi... İnsanların artık sadece test senaryolarını yönettiği bir dünya mı geliyor acaba....
"Şelalede en korkunç olan kim? Elbette insan."
Bunu yaşamış biri olarak katılıyorum
Güzel yazıyı okuduğumuza göre, şimdi gidip issue’ları düzenleyelim.
Yapay zeka geliştiricilerin yerini almakta zorlanabilir ama geliştirici yalnızca birkaç anahtar kelime verdiğinde kodlamayı yapay zeka yapabilir, değil mi?
Eskiden şaka yollu konuşulan ağızdan kodlama belki de gerçeğe dönüşebilir..
Şu anda copilot ya da diğer yapay zekaları kullanarak geliştirmeyi böyle yapmıyor muyuz?
Gerekli içeriği yorumlara İngilizce yazınca kendisi oluşturuyor; bize de bunun istenenle uyuşup uyuşmadığını kontrol etmek kalıyor.
Buna çok katılıyorum. Geleceğin yazılım mühendislerinin hepsinin TPM benzeri yetkinliklere sahip olacağını ve bunun kendilerinden bekleneceğini düşünüyorum.