Aşırı Mühendislik, Ürünü öldürür

Ferhat Ünlükal
6 min readApr 28, 2022

İnanç sistemlerimiz bazen zoru başarmanın çok daha iyi olduğuna bizi inandırabilir. Google’un zor soruları gibi, mühendislerde zor soru sorabilmeyi salt mükemmel bir şey olarak değerdirdiğinde, ürünü öldürme ihtimali artar.

Aşırı mühendislik, bir ürünü gereğinden daha karmaşık şekilde tasarlanmasıdır. Bir ürünü tasarlama veya bir soruna aşırı karmaşık bir şekilde çözüm sağlama eylemidir. Özgün tasarımdır.

Bu bazen sahip olmadığımız problemleri çözen bir ürünü oluşturabilir. Sahip olmayan bir problem olduğu içinde genellikle ürün ticari başarı elde edemez.

Peki sahip olunmayan bir problemi çözmeyi kim yapar? Üst sınıf mühendisler için, aşırı mühendislik bir istisna değil, normdur.

Esasında kimsenin bir kötü niyeti yoktur. Aşırı mühendislik, geleceği tahmin etmek istememiz, analitik yaklaşmamız ve bilinmeyene hazır olma istediğimizden gelir.

Bir ürün özelliği oluşturduğunda, her ihtimale karşı biraz daha zaman ayırarak onu geleceğe hazır hale getirebileceğimizi düşünmek kolaydır. Microsoft bunun için good enough — yeterince iyi felsefesini oturtmaya çalışmıştır. O nedenle uzun yıllar mavi ekranlar gördük ancak buna rağmen onları kullandık. Belki de bugünün bilgisayar sistemlerine de böyle ulaşabildik. Her zaman ilk aşamada mükemmelini yapamıyoruz ve o nedenle de çok mükemmeliyetçi olmanın bazen de zorlukları olur.

Olasılık dersini aldığınızda, bunlar ile karşılaşma olasılığınız %10'un altındadır. Ancak bu süreçte değerli zamanınızı kaybederiz. 80'e 20 pareto kuralı da benzer bir şeyi söyler. %80 işi %20 zamanınızda, geri kalan %20 işi %80 zamanınızda yaparsınız. İşleri zihninizde büyütmek, onları yapamamız anlamına gelir. Beyin çoğu zaman bu oyunu bize oynar. Başlamak o nedenle bitirmenin yarısıdır.

Bu nedenle, çevik methodolojileriniz bir fikri prototiplemenin ve müşteri geribildirimlerini almanızı öğütlüyor. Bu sayede aşırı mühendisliğin önüne geçerek, müşteri odaklılığı arttırmaktadır.

Projelerin karmaşıklığını, tüm hayat çevrimi içerisinde her şeyi düşünerek karmaşık hale getirebiliriz. İnternete bağlı bir dünyada ürün ve servisler uzaktan güncellenebildiği için, yeni sürümünde daha iyisini çıkarmaya her zaman şansınız var. Bunun için çokta endişelenmenize gerek yok. Biraz deneysel gitmeniz, öğrenme sürecinizi de çok hızlı arttıracaktır. Yoksa ekipleriniz, çok düşünerek, eylemsizlik durumuna geçeceklerdir.

Aşırı mühendisliğin bir başka nedeni, deneyim eksikliği ve hata yapmaktan korkmaktır. Kıdeminiz arttığında aşırı mühendislik konusunda daha az eğilimli olursunuz, çünkü karmaşıklık nedeniyle çok projeyi patlatmışsınızdır.

  1. Basit şekilde başlayın ve işi prototipleyin.
  2. Nesne yönelimli programlamayı keşfeder ve detayları atlarsınız.
  3. Tasarım kalıplarına uymaya çalışırsınız, her durumda sınırları bozmamaya çalışırsınız.
  4. Gereksiz karmaşıklıklara çok maruz kaldığında, artık işleri basit yapmaya başlarsınız.

Problemleri iyi tanımladığınızda, analitik düşünen mühendisler, belirsizlikten kaçmak için aşırı mühendislik eğilimine girecektir.

Eğer ölçülebilir, hesap verilebilir bir sisteminiz yoksa, işi kimse bilmiyorsa ve işi teslim alma ile ilgili bir termin yoksa, can sıkıntısı aşırı mühendisliğe yol açar. Bir mühendisin karşılaşacağı heyecan verici zorluğu yoksa, yeni bir şey deneyerek herhangi bir sorunu karmaşık hale getirebilir. O nedenle, çevik bir amaç fonksiyonu küçük takımların içerisinde tanımlanmalı ve ödüllendirme sistemi bunun içerisine gömülmelidir ki, o heyecan aşırı mühendislikten kaçınarak, ürüne dönüşebilsin. Müşteri ile interaksiyon sağlanarak ta değere dönüşebilsin.

Aşırı mühendislik, startup ruhunu da öldürür. Geliştirme maliyetleri çok arttığı için bir startupın bunu karşılama ihtimali düşer ve iş ölür. Bu nedenle paranın aktığı, aşırı konfor alanlarında da aşırı mühendislik eğilimi yüksektir. Bunun dışında, kendilerini mühendis kimliği ile ön plana çıkartan liderlerde aşırı mühendislik tuzağına düşmenizi sağlayabilir.

Mühendisler bir sorunu çözmek için en basit çözümü seçmezlerse, zaman ve para maliyetleri artar ve daha hızlı yenilenmenizi engeller.

Bunun yanında ürün ve servislerin bakım maliyetleri artar. Basit kodu programlamak, test etmek ve değiştirmek çok kolaydır. Karmaşık hale geldiğinde, karmaşıklık katlanarak büyüt, yenileme hızı düşer, riskler arttığı için kimse çalışan sisteme dokunmak istemez. Ürün geliştirme hızınız ve müşteri memnuniyetiniz düşer.

Bu nedenle aşırı mühendislik, ürünleri öldürür. Çok kullanılan uygulamalar, ürün pazar uyumunu yakalamış uygulamalardır. Aşırı mühendislik ürün pazar uyumunu da ilk aşamada ortadan kaldırır. Bunun için çok büyük kadrolarınız ve çok büyük paranız olması gerekebilir. Ancak yetenek pazarının bu kadar hızlı değiştiği bir noktada, işe aşırı mühendislik ile başlamamak yaşamak için temel mottodur.

Mikro servis mimarisinde aşırı mühendislik örneklerini görmek mümkündür. Vakaların %99'unda ilk aşamada gerekli değildir. Monolit daha basit bir mimari model kullanarak, önemli ölçüde fayda sağlayacak girişimler, aşırı mühendislik örnekleri ile ticari olarak ortadan kalkmaktadır. Ben buna futbol oynanırken, topu kaleye atmak yerine, uzaya gönderme yaklaşımı olarak adlandırıyorum. Ticari ve girişim perspektifinden de, birçok kez de bu örneği vermek durumunda kalırım.

Pazara uyum sağladıktan sonra mikro servis mimarisine geçmek zorunda kalabilirsiniz ancak bunu ilk aşamada yaptığınızda olmayan bir işiniz olur.

Ürün ilk çıktığında hemen optimize etmeye çalışmayın. Aşırı mühendislik için tipik bir örnektir. Çok ta yaygın gözükür. Kullanıcınız yoktur veya kısıtlıdır, aşırı karmaşık bir altyapı kurarak, büyük miktarda trafiği emecek bir sistem hazırlayabilirsiniz. Birçok durumda iş modelinizi doğrulmak için tek ihtiyacınız olan şey, tek sunucuda çalışan monolitik bir yapıdır. Ancak bunu mükemmel şekilde optimize etmeyi planlarsanız, tek kullanıcılı mükemmel bir sistem yaratırsınız ve ürünü öldürürsünüz.

Tasarımınızın ve ygulamanızın ne kadar mükemmel olduğunun bir önemi yoktur. İflas etmiş veya ciro oluşturmayan bir şirkette onun çalıştığını kimse göremez.

Yazılımları yeniden yazmakta aşırı mühendislik örneklerindendir. Bunun tamamıyla yeni versiyonunu çıkartacağız ve mükemmel bir çözüm oluşturacağız ile başlayan bir serüven genellikle iyi bitmez. Bu durum mühendislerin eski kod tabanları üzerinde çalışmayı sevmemesinden kaynaklanır. Doğal eğilim, herşeyi sıfırdan yapmaktır. Asla yapmamanız gereken şeyleri yeniden yazmak, amaca nadiren hizmet eder ve genellikle sonucu işin elden gitmesi ile biter.

Müşterileriniz kodlarınızın ne kadar temiz olduğuna bakmıyor. Sorunun çözülüp çözülmediğine bakıyor. Onlar değer için para öderler. Sizin titizliğiniz müşteriye bir değer sağlamıyor olabilir.

Aşırı mühendislikten kaçınmanın en iyi yolu, mühendislerinizi gerçek ürün mühendisine dönüştürmektir.

Onların günlük işlere dahil edilmesi, disiplinler arası çalışmaları, müşterinin sesini duyabilmeleri, her girişimin nedeninin açıklanması, kuruluş vizyonunun ortaya konulması ve benimsetilmesi, onların metrikler ile ölçeklendirilmesi aşırı mühendisliği engelleyebilir.

OKR methodolojisi, önemli olanı ölçmek ve tanımlamak, organizasyondaki aşırı mühendislik çabalarını azaltacaktır.

Onları müşterilerine yaklaştırmanın yolu, müşterinin problemlerine, onlar ile olan görüşmelere ve keşif oturumlarına onları davet etmek ve müşterinin problemlerini keşfetmesini sağlamaktır. Mühendisler genellikle bunu zaman kaybı olarak görür ve önüne müşteri talebinin gelmesini ve onun da kısıtlı zamanında yazmasını ister. Daha çok kaç proje yaptığının niceliğine odaklanır ticari başarı için, müşteri tarafındaki değere ve niteliğe bakmak, iş modeli, ticari model oluşturmak ve para kazanmak için elzemdir.

Geliştirme ekibi müşterilerin problemleri ile empati kurabildiğinde, çözümleri daha verimli şekilde oluşturacak, aşırı mühendislik çabalarını bir kenara atacaktır.

Tek görevi bir backlogu ve kullanıcı hikatelerini uygulamak olan bir üretim zinciri kuruyorsanız, mühendislik ekibinizin karmaşıklıktan kaçınmasını beklemeyin. Her kararın arkasında nedeni anladıklarında ikna olurlar. Akıllı insanlardır ancak farklı persfektifleri en optimum şekilde göstermeniz gerekir. Çok uzun şekilde müşteriyi anlatmaya kalkarsanız da sıkılırlar. Bu da en sık yapılan, müşteri analizi yapılmamış ve özümsenmemiş, yazılımcının çalıştırılmasına odaklanmış bir yaklaşımdır ki, burada da denge sağlanmalıdır. Bu nedenle ürünle haşır neşir olmuş profesyonel kaynakları buraya koymak zorundasınızdır.

Belirsizlikleri azaltmanın yolu analizdir. Analizin ilk evresi de problemin iyi şekilde tanımlanmasıdır. Mühendisler sebep sonuç ilişkileri ile analitik bir zekaları olduğundan dolayı, nedenini bilmek isterler, aynı zamanda ne beklemeleri gerektiğini bilmek durumundadırlar. Problemleri ne kadar daraltıp, odaklayabilirseniz, aşırı mühendislikten daha fazla kaçınabileceklerdir.

Mühendisleriniz, şirketinizdeki en yaratıcı kişilerdir. Eğer onlar içerisinde güven yaratabiliyorsanız, onlar geleceği çok daha kolay hayal edebileceklerdir. Yeni fikirler ve girişimleri çok kolay şekilde ortaya koyacaklardır. Onları müşteri sorunlarını çözmeye odaklarsanız, aşırı mühendislikten de kaçabilirsiniz.

Küçük bir startupınız varsa, bu söylediğim konular hayati öneme sahiptir. Bu tuzaklara düşmemek için mutlaka kıdemli bir mühendis ile çalışmanız gerekir. Alım esnasında bu yoldan geçip geçmediğine bakın ve ne kadar savaştığının izlerini arayın. Acı verici deneyimleri ve bu deneyimlerden nasıl çıktığı kararınızı etkileyecektir. Müşteriyi, sadeliği, basitliği çözümlerin odağı yapanları işe alın.

Mükemmel, bir şeyi eklediğinizde değil, çıkartacak bir şey olmadığında oluşur.

Çalışan daha az seçeneğe sahip olmak, çalışmayan daha fazla seçeneğe sahip olmaktan daha iyidir. Basit ve sadelik size değer katacaktır.

Ürünün asgari seviyede temel işlevlerin sürdürmesine teşvik edin. Ürüne karmaşık katabilecek bir şey eklemekten kaçının.

Aşırı mühendislik, girişimlerinizi yok eder. Gereksiz karmaşıklı eklemeyin. Geliştirme ve bakım maliyetlerini arttırmayın. Yenileme hızınızı yükseltin, pazara uyumu kaçırmayın.

Aşırı mühendislik malesef bir istisna değildir. Bir nordur. Mühendislerinizi müşteri ile karşılaştırın ki, gerçeklikten uzaklaşmayın.

Gerçek bir müşteri sorunu çözmeyen girişimler ölmeye mahkumdur. Bu. tuzağa düşmeyin.

Mezarlıklar, hiç bir zaman en ufak ilgi görmemiş , ölçeklenememiş, zarif tasarlanmış yeni firmalar ve ürünler ile doludur. Hiçbir zaman aklınızdan çıkartmayın ve onlardan biri olmayın.

--

--

Ferhat Ünlükal

Fintek sektöründe deneyime sahip bir liderdir. İş dünyasında girişimcilik ve değer yaratma üzerine, bilgi ve deneyimlerini paylaşmaktadır​.