KISS (Keep It Simple, Stupid) Prensibi
Boilerplate, task runner, compiler ve interpreter araçlarının yer aldığı yazı serisine bir prensip, iş yapış biçimi ve yaklaşım olarak ifade edebileceğimiz bazı kavramlarla katkı sağlamak istiyorum.
Temelde yer alan düşünce esasında neden böyle araçların üretildiğini ve kullanım yaygınlığı kazandığını da açıklığa kavuşturmakta. Planladığım bir kaç konu başlığı mevcut, bunlardan ilki KISS (Keep It Simple, Stupid) Prensibi. Peki, nedir KISS?
KISS (Keep It Simple, Stupid) Prensibi
KISS prensibini genel olarak “Keep It Simple, Stupid” şeklinde genişletmek mümkün. Dilimizdeki karşılığı “basit tut, aptal!” olabilir. Keep It Short and Simple gibi alternatif söylemler de mevcut elbette. KISS, özünde basitlik için çabalamanın gerekliliğini vurgulayan bir tasarım / yazılım prensibi. Esasında bir disiplinde de sınırlamak yanlış olacaktır. Genel bir kapsamda ele almak gerekirse; KISS, bir soruna karşı üretilen çözüm önerileri / fikirler ve yaklaşımlarda en basit ve yalın olanın değerlendirilmesi ve “bir aptalın dahi” bu yaklaşımı anlayabilmesi gerektiğini belirtir. Bir askeri uçağın savaş koşullarında sınırlı sayıda araçla onarılması gerekliliğine atıfta bulunan Amerikan mühendis Clarence Leonard (Kelly) Johnson tarafından oluşturulan KISS prensibi, günümüzün de önemli iş yaklaşımlarından biridir1.
Biographic Memoirs‘in 12. bölümünde (sayfa 231) C. L. “Kelly” Johnson ile ilgili şu ifadeler geçer2:
Kelly Johnson’in başarısı bir sır değildi. Kelly, dünyanın en önde gelen tasarımcılarından sadece biri değildi, aynı zamanda sürekli daha iyi ürünler yaratması için uğraşan insanları bulan ve onlara alan yaratan yenilikçi bir yöneticiydi. Çoğumuz, Skunk Works’te Kelly ile birlikte çalışabilmek için diğer Lockheed organizasyonlarından gelen tekifleri de reddetti. Benzer bir yaklaşım Kelly için de söz konusuydu. Lockheed’te üç kez şirket başkanlığı teklif edildi. Ancak Kelly her defasında bu teklifleri reddetti ve Skunk Works kalmayı tercih etti. Kelly bu davranışını “Kurum içerisinde, benim için Advanced Development Projects (Skunk Works)’in başında olmaktan daha iyi bir iş olamaz” şeklinde açıklar. Kelly, Lockheed’ten 1975’te kıdemli başkan yardımcısı olarak emekli olduğunda bile, Johnson Skunk Works’te kıdemli danışman olarak devam etmiştir ve Skunk Works’te etkisi uzun yıllardır devam etmektedir. Kelly, Skunk Works’teki amaçlarını “zorlu sorunlara karşı sağduyulu, daha ucuz, daha erken ve daha iyi çözümler üretmektir. Eğer bu işe yaramıyorsa, bırakın öyle kalsın.”
“Raporları ve diğer evrakları en aza indirin.”
“Basit tut, aptal – KISS – sürekli yaklaşımımızı hatırlatır.” şeklinde özetlemektedir. _Çeviride ve ifadelerde hatalarım olabilir. Metnin orijinali için Biographic Memoirs Volume 67, sayfa 231‘e göz atabilirsiniz._
KISS, diğer yandan Albert Einstein tarafından söylendiği varsayılan “Her şey mümkün olduğunca basit yapılmalı, ancak daha basit yapılmamalı” sözünü de çağrıştırmaktadır3 4.
“Simple” (Basit)
Karşılaşılan bir sorunun (işleyişin aksaması, ihtiyaç, yeni bir yol…) ele alınışında, çoğu zaman zeka pırıltısı taşıdığı düşünülen fikirler öncelikli olarak öne sürülmektedirler. Ancak, KISS bu durumu reddeder. Çünkü en zekice yaklaşım karmaşık bir fikrin en basit ve herkes tarafından anlaşılabilecek şekilde ifade edilmesidir. Tasarım ve yazılım süreçleri zaman içerisinde genişleme ve karmaşıklaşma eğilimi gösterirler. Ekiplerin tecrübe ve yeterlilikleri çerçevesinde, projenin sınırları aşması sürecin kontrolden çıkması anlamına gelmektedir. Bu durumda, üretilen fikirler / çözümler ne kadar sofistike ise uygulanmaları da o derece ekstra maliyet (zaman, para, motivasyon…) doğuracaktır. Bu nedenle, önemli olan gereksinimlerin asgari karmaşıklık düzeyinde ele alınmasıdır. Çünkü, sadece anlayabildiğimiz süreçlerin bir parçası olabiliriz. Eğer sistem daha kompleks olması yerine daha basit bir şekilde işlerse, sistemde çıkabilecek hatalar kontrol edilebilir ölçüde olacaklardır. Bu nedenle yaklaşım basitlik üzerine olmalı ve gereksiz karmaşadan kaçınılmalıdır.
Brief yazısında vurgulanan konular da bu yaklaşıma paralellik göstermektedir. Müşteri-ajans ilişkisinde, raporlama süreçlerini de yine KISS prensibi ile ele almak mümkündür. Bu prensip gereksiz açıklamalar ve tekrarların da önünü keser.
Başlangıç Noktası
Basit yaklaşım hızlı ve etkin bir uygulama süreci, daha az hata ve daha hızlı çözüm, daha az kaynak (zaman, para, motivasyon…) ve çeviklik demektir. Kendimize şu soruyu sorabiliriz; “bu çözümü 2 yaşında bir çocuğa nasıl anlatabilir(d)im?”. Peki, nasıl? Elbette, olmadığında eksikliği hissedilmeyecek tüm elemanları süreçlerden hariç tutarak ve bolca pratik yaparak. Ek olarak, The Laws of Simplicity web sitesi / kitabı da başlangıç için biçilmiş kaftan.