Yazılım geliştiriciler arasında önemli bir yere sahip olan Dave Farley, TestIstanbul etkiniği çerçevesinde Türkiye’de yazılım geliştiricilere hitap etti. Biz de kendisi ile zoom üzerinden bir görüşme gerçekleştirerek, yazılım testi, yapay zeka ve yazılım dünyasının geleceğini konuşma fırsatı bulduk.
Dave Farley yazılım geliştirmenin bir zamanlar mühendislikten ziyade bir ustalık, ya da zanaatkarlık olarak tanımlandığını belirtiyor. Ancak günümüzde iyi kod yazmanın, bu ustalığın da yeterli olmadığını anlatıyor. “Çünkü ustalık standart bazı temellere dayanmaz. Her bir ustaya göre işin yapılış şekli değişebilir. Usta bir işe başladığında nasıl sonuçlanacağı konusunda da net bir öngörü veremez. Bu tüm sanatlarda böyledir, kendiliğinden gelişir ve sonuç çıkar. Haliyle her bir ustanın eseri de diğerinden farklıdır. Bu metodu artık yazılım mühendisliğinde kullanmamız mümkün değil. Bizim çıkan sonuçlardan emin olduğumuz bir yönteme ihtiyacımız var. Yazılım geliştirmede ve mühendislikte ustalık gereklidir ancak artık yeterli değildir.”
Dave Farley bu çerçevede DevOps yaklaşımının da kendine has bazı problemleri olduğunu belirterek, yöntemin sürekli denetlenmesi ve sürekli iyileştirilmesi gerektiğini söylüyor. Ampirik metotların daha geçerli olduğunu böylece geliştirilen yazılımın sürekli bir değişim ve dönüşüm içerisinde olduğunu belirten Farley bu modele de “Continuous Delivery” diyor; “Continuous Delivery, geliştirilen yazılımın sürekli bir döngü içerisinde test edilip, inşa edildiği ve mükemmele ulaştığı bir süreç. Günümüz teknoloji ihtiyaçları artık yazılımların bu yöntemle geliştirilmesini zorunlu kılıyor.”
Dave Farley’e yazılımların gelecekte yine akıllı yazılımlar tarafından geliştirilip geliştirilmeyeceğini ve insanın buradaki rolünün değişip değişmeyeceğini soruyorum. Şöyle diyor: “Yapay zeka giderek gelişiyor ve otomasyonda ciddi faydalar sağlıyor. Yapay Zekanın yazılım geliştireceği uzun zamandır söylenen bir iddia. Bu konuda bazı çalışmalar da var. Ancak bir yazılım geliştirmenin tek bir doğru yolu yoktur. Yazılım geliştiriciler farklı farklı yöntemler ve yaklaşımlar sergilerler. Dolayısıyla bir yapay zekanın gelip tüm yazılımları kendisinin geliştireceği fikri bana uzak geliyor. Birçok otomasyon işinde, basit algoritmalarda ve işlerde çözümler sağlayacaktır. Ancak kapsamlı bir yazılım projesinin yapay zeka ile geliştirilmesi şimdilik mümkün değil.”
Yazılımda test döngüsü çok önemli
Test İstanbul etkinliğinde de test süreçlerinin öneminden bahseden Dave Farley, Continuous Delivery metodu ile testin sürecin en önemli parçası haline geldiğini belirtiyor. Uzun bir süre İngiltere’de finansal uygulamalar alanında yazılım geliştirdiğini belirten Farley şöyle dedi: “Büyük ve kapsamlı yazılımlarda ortaya çıkacak bir hata milyonlarca dolarlık bir kayba neden olabiliyor. Yazılımlar kimi zaman çok hızlı bir şekilde canlıya alınmak zorundalar. Kimi zaman da canlıda çalışan bir yazılım için geliştirmeler yapıyor ve bir yandan da değişiklikleri bir an önce uygulamak istiyorsunuz. Artık test süreçlerinin yazılım geliştirme süreçlerinden bağımsız olarak düşünmek mümkün değil.”