Mühendislikte iyi zevk, beceriden farklı bir kavramdır [Çeviri]
(blogbyash.com)Yazılım mühendisliğinde “iyi zevk”, belirli bir teknoloji yığınını tercih etmek değil; verilen projenin koşullarına en uygun mühendislik değerlerini esnek biçimde seçebilme yeteneğidir.
Zevk, beceriden farklı bir kavramdır
- Teknik zevk, yemek damak tadı gibi beceriden bağımsız bir duyarlılıktır; kişi doğrudan iyi kod yazamasa bile “bu kod güzel görünüyor/görünmüyor”, “bu tasarım kararı hoşuma gidiyor/belirsiz geliyor” ayrımını yapabilme becerisinde ortaya çıkar.
fordöngüsü ilemap/filtergibi seçimler, mutlak teknik üstünlük meselesi değil; herkesin daha önemli gördüğü değerlere göre (okunabilirlik, sadelik, performans vb.) ayrışan zevk farklarıdır ve mühendisler sonuçta önemsedikleri değerler kümesine göre karar verir.
Mühendislik zevki = değerlerin öncelik sırası
- Yazılım mühendisliğindeki kararların çoğu; performans, okunabilirlik, doğruluk, esneklik, ölçeklenebilirlik, dayanıklılık, taşınabilirlik, geliştirme hızı gibi değerler arasındaki trade-off sorunlarıdır ve her zaman tek tarafın mutlak olarak doğru olduğu durumlar nadirdir.
- Bir mühendisin zevki, bu değerlerden hangilerine ne kadar öncelik verdiğiyle tanımlanır; örneğin hız ve doğruluğu geliştirme hızından daha çok önemsiyorsanız Rust’a veya belirli bir buluta yönelirsiniz, dayanıklılığı hızdan daha çok önemsiyorsanız da çok bölgeli dağıtım gibi seçimler doğal hale gelir.
Kötü zevk: esneklikten yoksun “best practice” tapınması
- Kötü zevk, kişinin tercih ettiği değerler mevcut projeyle uyumlu olmadığı halde, geçmişte işe yaradığına inandığı yöntemleri (biçimsel doğrulama, belirli bir dille yeniden yazım, aşırı çok bölgeli yapı, karmaşık metaprogramming vb.) bağlamdan bağımsız biçimde dayatmasıyla ortaya çıkar.
- Bu kişiler seçimlerini “bu bir best practice” gibi mutlak ölçütlere dayanarak meşrulaştırır; bu yaklaşım özel durumlarda iyi çalışsa da bağlam değiştiğinde pusulası şaşmış gibi ekibi yanlış yöne sürükleyebilir.
İyi zevk: bağlama uygun değer seçimi ve esneklik
- İyi zevk, belirli bir problem ile organizasyonel ve iş kısıtları içinde hangi değerleri öne çıkarıp hangilerinden ödün verileceğini doğru seçme yeteneğidir; bu yüzden basit soru-cevaplarla ya da teorik testlerle ölçülmesi zordur ve ancak gerçek projelerin tasarımında ve sonuçlarında görünür hale gelir.
- Desteklediğiniz tasarım kararlarının yer aldığı projeler iyi giderken, katılmadığınız seçimlerin yer aldığı projelerin zorlandığını birçok projede tekrar tekrar gözlemlediğinizde ancak o zaman “benim zevkim bu bağlamda doğruydu/yanlıştı” diye sınama yapabilirsiniz.
İyi zevk nasıl geliştirilir
- İyi zevkin tek bir doğru cevapla ya da ders kitaplarıyla kazanılmadığı; farklı türde projeler deneyimlenirken “neresi kolay ilerledi, nerede zorlanıldı”, “hangi değer seçimi sonradan ayağa dolandı” gibi soruların bilinçli biçimde sürekli gözden geçirilmesiyle yavaş yavaş biriktiği savunuluyor.
- Temel nokta esnekliktir; belirli bir dili, kalıbı ya da mimariyi mutlak kural gibi görmemek, yeni alanlara ve ekip arkadaşlarının zevklerine açık olmak, farklı bakış açılarını ve dilleri denemek ve kendi temel zevkini sürekli güncellemek önemlidir.
Henüz yorum yok.