Basitlik Yanılsaması ya da Illusion of Simplicity

Basitlik Yanılsaması ya da Illusion of Simplicity ile kastettiğim şey şu: Aslen son derece karmaşık olan bir şeyin, görünüşü ve zihnimizde oluşturduğu ilk algısı itibariyle basit olarak görülmesidir. Bu kavram cc2.com‘da şöyle açıklanıyor: “Misconception that something will be simpler than it really will be. Leads to missing deadlines, demoralization, depression, and DeathMarch projects.” Yani “Bir şeyin gerçekte olduğundan daha basit olduğu şeklinde bir yanlış anlama. Yetişmeyen projelere, moral bozukluğuna, depresyona ve Ölüm Yürüyüşü projelere yol açar.” “Death March” ise, Edward Yourdon’un 1997 tarihli kitabının ismidir.

“Neden durup dururken böyle garip başlıklı bir yazı yazdın ki?” diye bana sorabilirsiniz. Kainattaki en temel yanılgılardandır çünkü, Basitlik Yanılsaması. Var oluş, zihnimiz tarafından, zihnimizin işlemesindeki en temel kuralların yönlendirmesiyle, her zaman bu yanılgıyla algılanır. Çünkü sonsuz karmaşıklıkta ve sonsuz derinlikte olan gerçeklik, fiziksel olan ve olmayan haliyle, ancak ve ancak zihnimizdeki indirgemeci olan soyutlama mekanizmasıyla anlaşılabilir. Ve ürettiklerinde kainatı örnek alan insanoğlu da bu prensibi her yerde kullanır. Mühendislik ürünleri olsun sanat ürünleri olsun bu marazdan uzak değillerdir. Hepsini devamlı “Basitlik Yanılsaması” çerçevesinde algılama taraftarı olur zihnimiz.

Sanatın en bilinen alanını, müziği alalım mesela. Beethoven’in “Ay Işığı Sonatı”nı (Moonlight Sonata) dinleyelim beraberce, buradan. Hepsini dinlemenize gerek yok, ilk yarım dakika yeter. Bu eserin “Basitlik Yanılsaması” ile alakası ne demeyin: Müzikten teknik detay seviyesinde anlamayan herkes, benim gibi, ilk 25 saniyedeki tamamen ayrık ve yavaşça gelen seslere bakarak notaları sayabilir. Ve Wikipedia‘nın da yardımıyla sonra, “acaba ilk 25 saniyedeki bu 60 notayı öğrenmem ve çalmam ne kadar sürer” diye düşünebilir. Benim hep aklıma gelir böyle şeyler mesela. Benim gibi lisede flüt çalmak dışında herhangi bir enstrumanla ilgilenmemiş ve teknik müzik bilgisi olmayan bir insan için sanırım bu ilk 60 notayı çalmak, 10 sene + 1 hafta sürebilir. 10 seneyi “Ay Işığı Sonatı”nı çalabilecek kadar müzik ve piyano için harcadıktan sonra muhtemelen yoğun bir 1 haftalık çalışmayla konser veremesem bile en azından evdekilere çalabilirim sanırım 🙂

Müzikteki karmaşıklığı daha iyi görmek için sanırım en iyi örneklerden bir tanesi yine Beethoven’in bir eseri olan 9. senfonisidir. Bu senfoninin özellikle 23-24 dakika süren 4. kısmı, 60 küsür kişilik orkestraya bir o kadar da koronun ve 4 de solistin katılmasıyla, yüzlerce sesin etrafta ahenk içinde yüzdüğü mucizevi bir atmosfere alıverir sizi. Dinleyin buradan, sonuna kadar ve ne demek istediğimi anlayın. Yetmediyse, bu eserdeki karmaşıklığı anlamak için isterseniz bir de bunu dinleyin ve bu muhteşem eserin seslerini görsel olarak ta takip edin.

Benzer örnekler bizim klasik müziğimizden de verilebilir pekala. Örneğin nefis Mahur Saz Semaisi ya da  Segah Peşrev benzer duyguları yaşatabilir bize.

Bu yazıyı yazarken internette “Illusion of Simplicity”yi arattığımda karşıma MacWord dergisinin kapağı için iki tane iPhone’un fotoğrafını çeken fotoğrafçının hikayesi çıktı. Hikaye burada ve tam da demek istediğimi yansıtıyor. Bu hikayedeki videoyu da seyredin özellikle, ne demek istediğimi anlayacaksınız.

Peki tüm bunların bir yazılım blogunda işi ne? Ben “Illusion of Simplicity”yle ilk defa Grady Booch’un 1993 baskılı “Object-Oriented Analysis and Design with Applications” kitabında karşılaşmıştım.  Aşağıdaki resim bu kitaptaydı ve altında şu yazıyordu: “The task of the software development team is to engineer the illusion of simplicity.” Yani “Yazılım geliştirme takımının görevi, basitlik yanılsamasının mühendisliğini yapmaktır.”

Illusion of simplicity

Evet biz yazılımcılar, son derece karmaşık olan, onlarca, yüzlerce insan-yıl süresince geliştirilen yazılım sistemlerini, ilkokul mezununun bile kolayca kullanabileceği basitlikte yapmalıyız. Paradoks da burada işte, karmaşıklığı basit gösterirken, basitliğin karmaşıklığı içinde kaybolmamalıyız.

Gerçekte durum şu ki, biz yazılımcılar da kendi silahımızla vuruluyoruz. Yazılım projelerinde yer alan gerek mühendisler gerek ise yöneticiler, oluşturmaya çalıştığı basitliğin arka tarafındaki karmaşıklığı göremiyorlar. Gittikçe gelişen diller, araçlar, yaklaşımlar, metotlar vs. hep bu yanılsamayı körüklüyorlar. Çünkü örneğin diller gittikçe daha soyut (abstract) dolayısıyla da ifade gücü yüksek (expressive) hale geliyor. Bundan 5 sene önce 30-40 satırda yaptığını artık 1 satırda yapabilen bir programcı başka ne düşünebilir ki? Zaten büyük yazılım şirketleri, yöneticilerin rüyası olan, “sürükle-bırak programcılığı”nı çoktan getirdiler bile!

“Basitlik Yanılsaması” özellikle yazılımı yönetenlerin önündeki en büyük tehlikedir. Özellikle de önlerinde “bunu yaparız” ya da “çok zor olmaz” gibi sözleri sıkça sarfeden yazılımcılar varsa! Yazılım yöneticileri, teknik çalışanların “özellikle Xxx ile zor olmaz bu” şeklindeki sözlere kesinlikle ve kesinlikle kanmamalılar. Çünkü F. Brooks haklı, önümüzde yazılımın üretme hızımızı ciddi şekilde arttıracak bir dil, araç ya da yaklaşım olmadığı gibi hiç bir zaman da olmayacak gibi görünüyor. Yazılım basit değil çünkü, yazılım, her türlü yaratılmış veya üretilmiş gibi bize “Basitlik Yanılsaması” perdesinden görünüyor.

Ben bir yöneticinin tecrübeli bir yazılım yöneticisi hatta tecrübeli bir yönetici olduğunu nereden anlamaya çalışıyorum biliyor musunuz? “Basitlik Yanılsaması”nın ne kadar kurbanı olma ihtimalini tahmin ederek. Yönettiği insanları dinleme, dediklerini sorgulama ve nihayetinde karar alma şekli, bir yöneticinin bu konuda nasıl bir stratejiye sahip olduğunun çoğunlukla ele verir.

Gerek yazılımcılar gerek yöneticiler, basit bir yapı ortaya koymaya çalışırken, bu basitliğin ancak karmaşık bir süreçle oluşturulabileceğinin farkına varmaları gerekli. Aksi taktirde basitliğin karmaşıklığında kaybolmaya devam ederiz.

 

Bu yazı toplam 674 defa görüntülenmiştir.