- Yazılım sektöründe, akranlarından 10 kat daha üretken olduğu söylenen yani "10x mühendis" mitine dair bir inanış vardır
- Ancak bu kavramın dayanağı zayıftır ve önyargıları güçlendirme ya da gerçekçi olmayan standartlar koyma riski taşır
Üretkenliği ölçmek karmaşık ve kusurludur
- Üretkenlik nasıl ölçülür?
- Mühendislerin çalıştığı alanlar çeşitlidir: mikroişlemciler, IoT, veritabanları, web servisleri, UX vb.
- Kullanılan diller ve framework'ler de çeşitlidir: Golang, Python, COBOL, Lisp vb.
- Yakın alanlardaki teknoloji, pazar ve ürünlere dair uzmanlık gerekir: güvenlik, veri görselleştirme, pazarlama, finans vb.
- Geliştirme aşaması ve ürünün ölçeği de farklıdır: bunun bir Mars keşif aracı mı yoksa basit bir yazılım mı olduğuna göre değişir
- Teknoloji değişir
- Geçmişte çok iyi olan bir mühendis bile zamanla belirli teknolojilerde geri kalabilir
- Belirli bir alanda "10x mühendis" olan biri, başka bir alanda ortalama düzeyde olabilir
Yazılımın sahibi mühendisler değil, ekiptir
- Yazılımın kalitesi bireysel performansla değil, ekibin performansıyla belirlenir
- Bir kişi ne kadar hızlı kod yazarsa yazsın, ekibin süreci yavaşsa sonuçta hız aynı olur
- Kod yazmaktan çok, test, inceleme, dağıtım ve bakım için zaman harcanır
- Belirli bir mühendis yazılımın sahipliğini üstlenirse, o kişi ortadan kaybolduğunda büyük bir risk ortaya çıkar
- Ekip merkezli yazılım geliştirme yapısı uzun vadede daha istikrarlıdır
En iyi mühendislik organizasyonları, "normal" mühendislerin güçlü sonuçlar üretebildiği yerlerdir
- En iyi mühendislik organizasyonları mutlaka yalnızca olağanüstü mühendislerden oluşmaz
- Önemli olan, ortalama mühendislerin günlük olarak iyi sonuçlar üretebildiği ve ürünüyle işi sürekli ileri taşıyabildiği bir ortamdır
- Ekibin sistemi anlayabilmesi ve kod dağıtımı, kullanıcı yanıtları, sorun çözümü gibi işleri günlük olarak yürütebilmesi gerekir
- En iyi mühendislik organizasyonları, normal mühendislerin gelişip sonuç üretebildiği ortamlardır
"Normal" mühendisin önemi
- Yazılım sektörü "zeki insanlara" büyük önem verme eğilimindedir
- Netflix, "ilk %10" içindeki yetenekleri; Coinbase ise "ilk %0,1" içindeki yetenekleri tercih ettiğini söylüyor
- Ancak insanların çoğu ortalamadır → bu yüzden ortalama insanların sonuç üretebildiği sistemlere ihtiyaç vardır
- Yazılım mühendisi doğuştan olunmaz; eğitim ve deneyimle gelişilir
"Normal insanlar" için sosyoteknik sistemler kurmak
- Sistemler, "normal insanların" kolay kullanabileceği şekilde tasarlanmalıdır
- İnsanın sıradan özellikleri hesaba katılmalıdır:
- doğrulama yanlılığı, yakın zaman yanlılığı, hale etkisi gibi bilişsel yanlılıklar vardır
- yorgunluk ve duygusal durum performansı etkiler
- alarm sabah 3'te çalarsa, hata olasılığı öğleden sonra 3'e göre daha yüksektir
- Sistem sezgisel ve kullanımı kolay olursa, mühendislerin enerjisi ürünü iyileştirmeye odaklanabilir
Harika mühendislik organizasyonları dünya çapında mühendisler yetiştirir
- Harika mühendislik organizasyonları, seçkin yetenekleri elinde tutan yerler değil; ortalama mühendislerin gelişebildiği yerlerdir
- İyi organizasyonlarda, ortalama düzeydeki mühendisler bile sürekli sonuç üretip gelişebilir
- En iyi mühendisler de bu tür ortamlardan doğal olarak çıkar
"En iyi insanı" değil, "uygun insanı" işe almak gerekir
- "En iyi yeteneği" bulmaktan çok, "ekibimize uygun yeteneği" bulmak daha önemlidir
- Sistem, bireysel performanstan çok ekip performansını teşvik etmelidir
- Bireysel başarıdan çok takım çalışması ve iş birliğinin önemli olduğu bir ortama ihtiyaç vardır
- Kapsayıcı ve adil bir kültür, performansı artırır ve farklı geçmişlerden gelen mühendislerin gelişmesi için fırsat sunar
Sonuç
- "10x mühendis" gerçekte var olabilir, ancak bunu ekip performansıyla ilişkilendirmek zordur ve risklidir
- Harika mühendislik organizasyonları, birkaç dâhiden değil, ortalama mühendislerin sonuç üretebildiği bir yapıdan oluşur
- Sistemler bireysel performanstan çok ekip performansını güçlendirmelidir
- Ortalama mühendislerin gelişip sonuç üretebildiği bir ortamın anahtarı, kapsayıcı kültürler ve iyi sistemlerdir
3 yorum
100 kat mühendislerin toplandığı bir şirkette, 100 kat mühendisler sıradan olandır. Sıradan olan önemlidir. Sıradanın çıtasını yükseltmek ise daha da önemlidir…
Steve Jobs gibi insanların sözünü ettiği 10 kat, 100 katlık yazılım mühendisi kavramının aşağıdaki anlama geldiğini düşünüyorum.
İnşaat işçiligi, teslimat, sürücülük gibi işlerde en iyi uzman kişinin ortalama bir insandan 2 kattan fazla verim üretmesi zordur. Ancak yazılım, finans gibi alanlarda iyi olan biri, sıradan 100 kişinin asla ortaya çıkaramayacağı bir işi ortaya koyabilir.
Yetenek yetiştirmeye yönelik eğitim elbette önemli, ama yetenek seçimi de önemlidir. Eğitim ile seçme arasında büyük bir fark var gibi görünüyor. İkisini karıştırıp birbirine bulaştırmamak gerekir.
Hacker News görüşleri
Yazılım mühendisliğinin özel olduğu düşüncesi zehirli olma eğiliminde
"Normal" bir mühendis yoktur; farklı seviyelerde geliştiriciler vardır
Yazılım ekipler tarafından değil, bireyler tarafından geliştirilir
Emekçi sınıfın insanlıktan çıkarılmasına ve sınıflandırılmasına karşı çıkılıyor
IEEE'nin clickbait benzeri içeriklerle ilgilenmesi hayal kırıklığı yaratıyor
10x mühendis yaratıcıdır ve kullanıcı deneyimi ile kodun bakımına önem verir
10x mühendis kavramı abartılı olsa da çok iş yapan bazı insanlar vardır
Mühendislik işleri diğer mesleklerden farklı özellikler taşır
Bazen başkalarıyla kıyaslandığında kendini yetersiz hissedebilirsin
Birçok mühendis para için çalışır ve tutku yoksa üstün bir mühendis olmak zordur