50 Yaşındaki Tecrübeli Bir Yazılımcıdan: Yazılım Sektörünün Akıbeti Nasıl İlerleyecek?
"şaka maka yazılım sektörünün bitmiş olması"
açılın, ben 50 yaşında dinozor bir çözüm üreticisiyim. ihtiyaç anında yazılım geliştirdiğim de oldu evet. yüzbinlerce satır kodum dünyanın çeşitli fabrikalarında çalışmaya devam ediyor.
yazılım bitmiyor, evrim geçiriyor. bunun benzeri 90'lı yıllarda rad (rapid application development) ve görsel geliştirme araçları (visual basic, delphi, power builder vb.) yükselişi ile de yaşanmıştı.
bu tarihin öncesinde satır satır kod yazılırken yeni araçlar ile sürükle bırak tarzında kod yazımına başlandı. beraberinde tartışmalar da geldi tabi, dediler ki "eğer bir muhasebeci kendi formunu tasarlayıp arkasına da iki satır mantık ekleyebiliyorsa bilgisayar mühendislerine neden ihtiyaç duyalım?"
bilgisayar mühendislerine daha çok ihtiyaç duyuldu çünkü işin ehli olmayan kişiler spagetti kod yazıp ölçeklenemez yazılımlar geliştirince işletmeler koşa koşa gidip mühendislerin elini ayağını öptüler.
2000 li yıllarda low-code platformları geldi, dediler ki "iş analistleri kendi uygulamalarını yapacak". olmadı tabi.
bu benim şahit olduğum kısım. öncesinde aynı döngü yaşanmış. örneğin 1950 li yıllarda fortran gibi yüksek seviyeli diller geldiğinde "artık makine dili (assembly) bilmeye gerek kalmadı, herkes ingilizce gibi kod yazacak" tartışması yapılmş.
araçlar sadece teknik zorlukları çözer, düşünsel zorlukları çözemez. her yeni araç düşünsel zoruklara da yeni eklemeler yapar.
ilk kodumu 10 yaşımda yazdım, şimdi 50 yaşıma az kaldı. şunu diyebilirim. ne istediğini bilmek kod yazmaktan daha zor. program yapmak arka planda süreçleri analiz etmeyi ve binlerce mikro kuralı yönetmeyi gerektirir.
hani klasik bir söz var, "üniversiteden mezun olman yetmez yiğenim, önce 'işi öğrenmen' lazım" heh işte o "işi öğrenmek" kısmı mikro kuralları öğrenmek.
sekörü geçtim, bu mikro kurallar şirketten şirkete farklılık gösterir.
geçmiş yıllarda yaşanan "spagetti kod" benzeri bir sorun güncel gelişmede de yaşanacak. geçen hafta şirketimizde bir yapay zeka aracını test ettik. şirket içinde farklı departmanlarda çalışan arkadaşlar var. test için daha önce bizim departman ile ilgili hiç deneyimi olmayan bir arkadaşa yapay zeka kullandırtarak kod yazdırdık. basit bir proje seçtik. task tanımı verildi. örnek bir iki proje verildi.
sonuç? şaşırtıcı derecede iyi. ürkütücü derecede iyi, çünkü task tanımında eksik olan detaylara rağmen yapay zeka bu eksiklikleri fark edip koda eklemiş. büyük ihtimalle örnek kodlardan görüp öğrendi.
fakat yapay zeka ajanını uyarlayan arkadaşımız kodun ne yaptığını bilmiyor.
muhteşem bir sistem hazırlamış. sadece verilen görevi yapmakla kalmıyor, kendi kendine de öğreniyor, not alıyor. eğer geçmişte yazılmış uygulamarda yeni öğrendiği bilgilere uymayan bir şeyler varsa uyarı veriyor ve emir verilirse gidip onları da düzeltiyor. ürkütücü olan tarafı bu.
ama ne? tekrar edeyim.
yapay zeka ajanını uyarlayan arkadaşımız kodun ne yaptığını bilmiyor. genel bilgisi olsa da "mikro kurallar" kısmına hakim değil.
üretilen "sentetik" kodlar çığ gibi büyüyecek elbet. sonra bir yerlerde "mikro kurallar" ile çelişen bir durum olacak. eskisinden daha fazla sayıda olacak, niye çünkü eskisinden daha fazla kod var.
işte o zaman "yetiş ya nerd" diye ağlayacak insanlar olacak.
yazılım sektörü bitmiyor. ihtiyar kurtlar için havayı koklayıp, sislerin içinden yol bulma vakti. ha, kolay mı? değil tabii ki.