Programlama Efsanesi No. 3: Harika geliştiriciler 10 kat daha verimlidir
İyi programcıları bulmak zor ama harika programcılar efsanevi kişiler; en azından şehir efsanesi.
Eğer hikâyelere inanıyorsanız, oralarda bir yerlerde çok yetenekli hacker’lar var. Onlar “geliştiricilerin 10 katı gücünde” olarak anılıyor çünkü iddialara göre onlar sizin ortalama programcınızdan çok daha üretken.
Doğal olarak işçi bulma firmaları ve personel müdürleri kod dünyasının masalsı yarı tanrılarını bulmak için her şeyi yapabilirdi. Bununla birlikte çoğunlukla onlar Koca Ayak kadar nadir görünen varlıklar. Esasında, muhtemelen böyle birileri yok.
Ne yazık ki bu efsanenin ayıbı Fred Brooks’un kendisine düşüyor. Hemen hemen; ondan aktarılanlar hatalı. Brooks’ın gerçekte söylediği şey şu ki en iyi programcılar en kötü programcılardan 10 kat daha verimliydi, ortalama olanlarından değil.
Geliştiricilerin çoğu ortalarda bir yere denk geliyor. Eğer ekibiniz içerisinde gerçekten 10 kat verimli birisini görürseniz, geçmişte işe alım yaparken muhtemelen çok kötü tercihlerde bulunmuşsunuzdur (iyi olanlarıyla birlikte).
Brooks’un açıkladığı çalışma 1966’dan. Modern yazılım yöneticileri geliştirici verimlilik ölçümleri içerisine inançtan daha fazlasını yerleştirmeyi iyi bilir; çünkü onlar nadiren güvenilirdir. Öncelikle kod üretimi hikâyenin tamamını anlatmaz. Brooks’un kendisi en iyi programcıların dahi bir iş haftasının sadece yarısı kadarında kod ve debug yaptığını itiraf ediyor.
Bu demek değil ki bulabileceğiniz en iyi geliştiricileri işe almaya çalışmayın. Fakat süper inansı kodcuların gelmesini beklemek kötü bir işçi bulma stratejisi. On kat güçlü geliştiricilere takılmak yerine, on kat güçlü ekipler oluşturmaya odaklanın. Seçim yapabileceğiniz çok daha büyük bir yetenek havuzuna sahip olacaksınız. Bu da boşlukları dolduracağınız ve projenizin daha kısa zamanda tamamlanması anlamına geliyor.
Programlama Efsanesi No. 4: İleri teknoloji araçlar daha iyi sonuçlar üretir
Yazılım bir teknoloji işi olduğundan teknolojinin onun tüm problemlerini çözebileceğine inanmak çekici. Yeni bir programlama dili, iskeleti veya geliştirme ortamı maliyetleri düşürse, pazara çıkma süresini azaltsa ve kod kalitesini geliştirse, hem de tek seferde, hoş olmaz mıydı? Nefesinizi tutmayın.
Yeteri kadar işletme rakiplerine karşı üstünlük sağlamak için gelenek dışı dilleri kullanmayı denedi. Bir sosyal ağ olan Yammer ilk sürümünü Scala’da yazdı. Twitter yaşamına bir Ruby on Rails uygulaması olarak başladı. Reddit ve Yahoo Store’un her ikisi de Lisp’le geliştirilmişti.
Ne yazık ki bu tür deneylerin çoğu uzun yaşamadı. Scala gereksinimlerini karşılamadığında Yammer Java’ya geçti. Twitter ise Java’da karar kılmadan önce Ruby’den Scala’ya geçti. Riddit kodunu Python’da yazdı. Yahoo Store C++ ve Perl’e yöneldi.
Bu demek değil ki seçtiğiniz araç uygun değil. Ölçeklenebilirliğin ham performans kadar önemli olduğu sunucu ortamlarında platformlar özellikle önemli. Fakat, sözü geçen firmalarının tümünün moda dillerden anaakım olanlarına geçtiğini söylüyor.
Fred Brooks bunu on yıllar önce öngördü. “No Silver Bullet,” adlı makalesinde, “Hem teknoloji hem de yönetim tekniğinde, verimlilik, güvenilirlik, basitlik konusunda büyük boyutlu bir gelişme vaat eden, tek bir geliştirme yok.” diye yazıyor.