Yazılım işi zordur. Bunu söyleyince, hemen herkes cevap vermek üzere, savunma durumuna geçer, kendilerine göre onların işi de zordur çünkü. Aşağıda buna cevap niteliğinde bir şeyler söylemeye çalışacağım; yazılım işi belli objektif kriterlere göre zor bir iştir. Burada zahmetten ya da çalışma saatlerinin acayipliğinden başka bir şeyden bahsedeceğim.
Algoritma teorisinde, derinleme bilgi sahibi olanlar, “Halting Problem” denen şeyi bilirler. Problem şudur: Bir algoritma (ya da bilgisayar programı) verildiğinde, bu programın sona erip ermeyeceğini belirlemek mümkün müdür? Sona ermeyi, “beklenen işi bitirme” olarak da düşünebiliriz elbet. Bunun cevabı şudur: “Herhangi bir algoritmanın sona erip ermeyeceğini sonlu sürede belirleyecek bir algoritma yazılamaz.” Bunun ispatı var; fakat burada yazacak değilim.
Şimdi bu ne anlama geliyor? Yani, genel olarak bir algoritma yazdığınızda, bunun istenen işi yapıp yapmayacağını genel olarak anlamayı sağlayacak sistematik bir yöntem yoktur. Ancak belli durumlarda bu çözümlenebilir.
Bu anlamda, programlama “zor” bir iştir. Yazdığınız kod doğru çalışmıyorsa, bunda şaşılacak bir şey yoktur. Tabii burada püf noktası, kodda hiçbir zaman analizi zora sokacak yapılar kullanmamaktır. Kodlama konvansiyonları ve tecrübe bu noktada devreye girer.
Matematikten anlayanlar için, bunu diferansiyel denklemlere benzetebiliriz. Bir anlamda, tüm diferansiyel denklemleri göz önüne alırsak, hemen hemen hiçbirinin “kapalı” çözümü yoktur. Ancak işimize gelen bir kaç çeşit difreansiyel denklemi çözmeyi biliriz.
Olay bununla bitse, bir şey değil. Yazılan kodun okunabilir olması, sonradan başkaları tarafından bakım yapılabilir olması, hepsinden dertlisi de, makul sürelerde çalışması yani performansının iyi olması gerekmektedir! İşte yazılım işinde çalışanların derdi bunlardır.
Bir cevap yazın