10 Ekim 2023 Salı

İyi Yazılımcı, Daha İyi Yazılımcı

     S.A. Arkadaşlar,

    Geçenlerde okuduğum iyi ürün yönetici ve daha iyi ürün yöneticisi(yazıyı aradım maalesef bulamadım, aynı isimli kitabın özetiydi diye aklımda kalmış) adlı bir blog yazısı okumuştum. O yazıyı okuyunca her zaman kullandığım "iyi yazılımcı debug yapar, daha iyi yazılımcı log okur" (bir yerden okumuştum), sözü aklıma geldi ve bu 2 noktadan yola çıkarak ben de bu yazıyı yazmaya karar verdim. Hazırsak başlayalım...

    İyi yazılımcı kodunu güzelce yazar, daha iyi yazılımcı yaptığı kodun test ve dokümantasyonunu da yazar. Yazılımda kodu yazmak ne kadar değerliyse yazılan kodun testini ve dokümantasyonunu yazmak da bir o kadar değerlidir. Bu hemen yaptığınız işi sağlam yapmanızı sağlar hem de bu işi neden ve nasıl yapılacağını da tüm ekibe net bir şekilde anlatmış olur.

    İyi yazılımcı işini iyi yapar, daha iyi yazılımcı yaptığı iyi işi ayrıca anlatır. Yazılımcılara asosyal insanlar deseler de bu işin aslı sosyallik bence. Yaptığımız işin önemi kadar onu anlatıp, ekiple paylaşıp onu görünür kılabilmek de en az o kadar önemlidir.

    İyi yazılımcı kendini geliştirir, daha iyi yazılımcı yanındakileri de geliştirir. Bizim mesleğin olmazsa olmazı belki de hızlı gelişen teknolojiye karşı kendini güncel tutmaktır. Bunun önemli olduğu doğru, fakat bununla birlikte ekip arkadaşlarının da gelişimine katkı sağlamak da önemli.

    İyi yazılımcı verilen işi yapar, daha iyi yazılımcı sorumlulık alır. Birçok durumda bize verilen işi eksiksiz yapmaya çalışırız, ama bazen sorumluluk alıp o verilen işin diğer gerekliliklerini yapmamız gerekir. Bu bazen başka bir ekibi harekete geçirmektir, bazen düşünülemeyen işi düşünmektir, kısacası taşın altına eline sokmaktır.
 
    İyi yazılımcı code-review yapar, daha iyi yazılımcı gerekirse pair de olur. Yazılan kodları zaman zaman inceliyoruz, varsa gördüğümüz eksikler geri bildirimlerde bulunuyoruz. Bunun belki de daha iyisi gerektiğinde bu geri bildirimlerin üzerinde birlikte çalışarak geçip bunları daha iyi paylaşmak olacaktır.

    İyi yazılımcı yardım istenildiğinde eder, daha iyi yazılımcı yardım istenmeden de gerektiğinde yardım etmeyi teklif eder. Yardım istenildiğinde yardım eden yazılımcı çok istenilen bir şeydir (bu konuda tek başına bir yazıyı hak eder), fakat yardım istenmeden de arkadaşının karın ağrısını hissettiğinde ona yardım teklif eden yazılımcı nimettir.
 
    İyi yazılımcı problem olduğunda çözer, iyi daha yazılımcı problemi önceden öngörüp çözer. Çıkan bir problemi hızlı bir şekilde çözmek güzel bir özelliktir, fakat potansiyel oluşabilecek probleme önceden set çekmek daha da güzel bir özelliktir.

    İyi yazılımcı kodu bulduğu gibi bırakır, daha iyi yazılımcı kod bulduğundan daha temiz bırakır. Her yazılımcı kodu temiz yazmayı hedefler ama farklı durumlardan bunu başaramayabilir. İyi yazılımcı eline aldığı kodu en azından bulduğu gibi bırakır, ama daha iyi yazılımcı bunu mümkün mertebe refactor eder, eksikliklerini gidermeye çalışır, özetle bulduğundan daha iyi bırakmaya özen gösterir.
 
    İyi yazılımcının teknik ekiple iletişimi kuvvetlidir, daha iyi yazılımcının müşteriyle de iletişimi kuvvetlidir. İletişimin bizim meslekteki kıymeti çok bilinmese de en az teknik yetenekler kadar önemlidir ve bunu başarabilen yazılımcılar bütüncül olarak baktığınızda çok daha iyidirler (bence). İyi yazılımcı bu iletişimi kendi ekibiyle iyi yapabiliyor iken, daha iyi yazılımcı teknik olmayan ekiplerle de bu iletişimi iyi yapar.

    İyi yazılımcı varsa eksikleri belirtir, daha iyi yazılımcı çözüm önerisi de sunar. Bir hatayı bulup onu tespit etmek önemlidir, fakat bu hataya bir çözüm önerisi sumak daha da önemlidir. Bazen problemden birçoğumuz şikayetçi olur, ama azımız çözüm önerisiyle gelir.
 
    İyi yazılımcı yorum satırı yazar, daha iyi yazılımcı yorum satırına ihtiyaç olmayan kodu yazar. Tartışılan bir konudur belki de yorum satırı yazmak (yazmamak lazım diyenler de var çünkü), ama daha iyi yazılımcı bu yorum satırlarına ihtiyaç duyulmayacak şekilde kodu yazmaya özen gösterir.

    İyi yazılımcı kodu testçiden geçince arkasına yaslanır, daha iyi yazılımcı kodu canlıya çıkınca arkasına yaslanır. Kodun test aşamasından geçmesi insanı gerçekten rahatlatır ve oh bu işi de kapattık gibi düşünebiliriz, ama asıl önemli olan bu kod canlıya çıkıp kullanılmaya başladığında rahatlamalı (bu bile yetmez, canlıdan hata gelirse daha çok terleyebiliriz :) ).

    Özetle işini iyi yapan yazılımcılara ek olarak verilenin/istenilenin ötesine geçip gerektiğinde sorumluluk da alan yazılımcılara selam olsun :)

    Yazıyı Kehf suresinin 30.ayetiyle bitirelim.
İman edip dünya ve âhiret için yararlı işler yapanlar bilmelidirler ki, biz güzel iş yapanların ecrini asla zâyi etmeyiz.


 

Hiç yorum yok:

Yorum Gönder