7.10.2024

The Oversimplificator!

Başlıkta bahsi geçen Oversimplificator ben oluyorum. Bir kaç yıl önce maalesef kaybettiğimiz çok değerli arkadaşım Berkin Bozdoğan'ın uzun seneler önce benim için tasarladığı iki MTG (Magic The Gathering) kartının görselini aşağıya bırakıyorum. 


MTG bilenler ve beni tanıyanlar kümelerinin kesişimindeki az sayıda insan espriyi (eleştiriyi) anlamıştır muhtemelen. Berkin kendine has üslubuyla bana hediye ettiği bu kart tasarımlarında hem benim önemli bir yetenek olarak gördüğüm hem de aşırıya kaçılması halinde olumsuzluklara neden olabilecek basitleştirme (simplification 1 2) kavramından bahsediyor. 

Günlük hayat açısından basitleştirme ya da aşırı basitleştirme hakkında yazmayacağım. Bunlar insanın içinde bulunduğu durum, içinde yaşadığı toplum, kültür ve benim adını dahi bilmediğim pek çok şarta bağlı sanırım. Dolayısıyla beni aşar. Ama size yazılım geliştirme açısından basitleştirme ve aşırı basitleştirme hakkında bir iki cümle yazabilirim. Lütfen buyurun:

Simplification, yazılım geliştirilirken çeşitli durumlarda kullanmamız gereken bir düşünsel işlev. Proje sahibinden gelen fikri yazıya dökerken, bir kullanıcı arayüzü tasarlarken ya da daha okunur bir kod yazmaya çalışırken farklı şekillerde kullanıyoruz. Bunun için de bazı durumlarda genelleştirmek bazı durumlarda ise detayları göz ardı etmek ya da önem sırası vermek gerekebiliyor. 

Çok fazla işlev barındıran bir görsel ara birim hayal edin. Kullanıcının isteyebileceği her şey tek bir ekrana toplanmış. Ne ararsa var! Harika değil mi? Maalesef değil. Böyle bir ara birim kullanıcının şaşırmasına adeta yolunu kaybetmesine neden olacaktır. Kullanıcının bu ara birimi öğrenmek için harcayacağı zamanın da negatif bir ekonomik karşılığı olacağı aşikar. 

Yeni bir müşteri tarafından size birkaç toplantı ile aktarılan "müthiş!" bir proje fikri hayal edin. 3 sene sonra projenin geleceği yer bile konuşulmuş toplantılarda. Her türlü analiz yapılmış. Çeşitli dokümanlar sağlanmış. Her yerden veri fışkırıyor. Bir feature (özellik) listesi var: Say say bitmez! Harika değil mi? Maalesef değil. O projenin başlaması için önce bu projenin kalbinde yatan fikirden uzaklaşmadan, yapılabilir en küçük ürünün (MVP) özelliklerinin ayrıştırılması ve bu bu kısım için bir proje planı yapılması gerekiyor. Hayaller başka, gerçekler başka.

İşte bütün bunlar için ortada olanı biraz daha basit bir şekilde ifade edebilmek. Daha küçük adımları sıralayarak yapılabilir kılmak. Daha anlaşılır olmak kaydıyla daha az cümleyle daha çok şey anlatmak gerekebiliyor. Ve aşırı basitleştirme de burada karşımıza çıkıyor. Anlaşılır olma kaygısı taşınmadığında ya da başlangıç noktasındaki asıl fikrin "ruhu" göz ardı edildiğinde, kullanıcının aklı karışmasın derken yapması gereken işleve ulaşması zorlaştırıldığında, basitleştirme amacından uzaklaşmış oluyor.

Dezavantajları ortadan kaldırıp geliştirme sürecini kolaylaştıracak kadar ama gereklilikleri göz ardı etmeyecek kadar basitleştirmek yaptığımız işin önemli bir kısmı diye düşünüyorum. :)

Değerli arkadaşım Berkin'i sevgiyle anıyor sizlere esen kalın diyorum. Okuduğunuz için teşekkürler.