Silikon Vadisi'nin tüm teknoloji dünyasına bulaştırdığı çok zehirli bir efsane var: "10x Rockstar Developer" (Sıradan bir yazılımcının 10 katı iş yapan yıldız geliştirici). Bu efsaneye göre, karanlık bir odada kapüşonlusunu çekip saatlerce aralıksız kod yazan, kimsenin çözemediği o imkansız bug'ları tek gecede çözen ve tek başına koca bir altyapıyı ayağa kaldıran dahi bir mühendis tipi vardır. Şirketler bu efsanevi karakterleri bulmak için İK bütçelerini seferber ederler.

Ben mi? Ben o "Rockstar" yazılımcıyı Suku Tech'in kapısından içeri bile sokmam.

Nedenini anlamak için bu "10x" arkadaşlarla aynı ekipte çalışmış veya onların yazdığı kodu devralmış olmanız gerekir. Evet, bu insanlar gerçekten de inanılmaz hızlı kod yazarlar. Bazen bir haftalık sprint işini cuma akşamı birkaç saatte bitiriverirler. Ama sorun şu ki; arkalarında bıraktıkları şey genellikle devasa bir yıkımdır.

Rockstar developer'lar dokümantasyon yazmaktan nefret ederler. Çünkü onlara göre kod zaten kendini anlatıyordur (spoiler: anlatmıyor). İsimlendirme standartlarına uymazlar, "bunu daha optimize edebilirim" diyerek kimsenin anlamayacağı, okuması işkence olan abartılı (over-engineered) çözümler üretirler. Ve en kötüsü, kod gözden geçirme (code review) süreçlerinde ekip arkadaşlarına yukarıdan bakarlar. "Neden böyle yaptın?" diye sorduğunuzda size öyle bir ego ile cevap verirler ki, ekibin geri kalanı bir süre sonra soru sormayı bırakır.

Sonuç? Şirketteki tüm kritik bilgi o tek kişinin beynine hapsolur (Buna sektörde "Bus Factor" denir). O kişi şirketten ayrıldığında veya tatile çıktığında bütün sistem çöker, çünkü koduna kimse dokunmaya cesaret edemez.

Peki ben kimi işe alırım? Ben "1x", hatta "0.8x" mühendisi işe alırım.

Benim aradığım mühendis, "sıkıcı" kod yazan mühendistir. Standartlara uyan, okunduğunda bir roman gibi anlaşılan, testleri yazılmış, zekasını kanıtlamak için karmaşık algoritmalar kasmayan, basit problemleri basit çözen insanları arıyorum. Benim için iyi bir mühendis, cuma akşamı production'a kod çıkmayan mühendistir. Kodu commit etmeden önce "Bunu benden sonra okuyacak olan kişi ne demek istediğimi anlar mı?" diye durup düşünen kişidir.

Günün sonunda yazılım mühendisliği, kulaklıklarınızı takıp dünyadan koptuğunuz bireysel bir sanat dalı değildir. Yazılım, son derece sosyal bir takım oyunudur. Ürettiğiniz kod, diğer insanların kodlarıyla entegre olacak, diğer insanlar tarafından okunacak ve yıllarca bakımı yapılacaktır.

Bir şirketin yetenekli ama iletişimsiz ve egolu bir dahiyedense; ortalama hızda kod yazan ama iletişim kurabilen, etrafındaki junior'ları eğiten, bilgisini paylaşan ve egosunu kapıda bırakan 3 tane sağlam mühendise ihtiyacı vardır. Çünkü sistemler kahramanlar tarafından değil, birbirine güvenen ekipler tarafından ayakta tutulur. Kahramanlara sadece çizgi romanlarda ihtiyacımız var, sunucu odalarında değil.