İçeriğe geç →

KISS (Keep It Simple Stupid) Prensibi

Başlıktan anlaşılacağı üzere KISS bir yazılım geliştirme prensibidir. Wikipedia’ya göre 1960 yılında Amerika Donanmasının belirlediği bir prensip.

Aslında internette araştırdığımızda hakkında bir çok kısa açıklama bulunan bu prensip için bu yazıda kendi fikirlerimi de sizlere aktarmak istiyorum.

Software Architect dünyasında bu prensibin amacı geliştirilen yazılımda gereğinden fazla komplike ve karmaşık senaryolara yer verilmesinin engellenmesi ve oluşmamış senaryolar için öngörü yaparak bunlara önden çözümler üretmenizi engeller.

İlk okunduğunda kulağa hoş gelmediğinin farkındayım. Ne demek yani ön görülen senaryolar için çözüm üretmemek? Şöyle açıklayalım bu durumu.

Örneğin bir API geliştirmesi yapmaktasınız, bu API için gerekli tüm kurgular yapılmış. Yani istek tipleri, isteğin geliş şekli, dönüş yöntemi vs. tüm senaryolar net. Geliştirilen bu API servisi için JSON istekleri kabul edecek ve dönüşünüz de JSON olacak. Fakat siz bu geliştirme sırasında olası “XML”, “YAML” veya farklı içerik tiplerinin de kabulü için geliştirme yapmak isterseniz, işte burada devreye KISS girmekte.

Bu kadar basit mi? Elbette değil. Aslında ilk başta ne var bunda diyebiliyoruz. Fakat büyük projelerde geliştirme yaparken bazen o denizin içinde fark etmeden işleti komplike hale getiriyoruz. Bu nedenle bu prensibi her kod yazarken aklımızın bir köşesinde tutmamızda fayda var.

Basit demek kalitesiz demek değildir

Simple can be harder than complex.

Steve Jobs

Steve Jobs’ın da söylediği gibi Sade olmak, komplike olmaktan daha zordur. Bu nedenle geliştirdiğimiz ürünün gerek kod kısmı olsun, gerek structure’ı olsun basit tutabilmek önemlidir.

Günümüzde bu konuyla ilgili maalesef ilk görüş başlığın tam tersi. Eğer bir sistem komplike değilse, o sistem kalitesiz veya yeteri kadar değerli bir konu değilmiş gibi bir yaklaşım söz konusu.

Aslında durum bunun tam tersi. Bir structure tasarlarken yada bir yazılım geliştirirken, geliştirdiğimiz ürünü yeteri kadar basit ve anlaşılır tutabilmek aynı zamanda o ürünün anlaşılabilirliğini, yönetebilirliğini, geliştirilebilirliğinin de hızlı ve maliyetinin düşük olacağı anlamını taşımaktadır.

Siz siz olun, günümüz de size dayatılan her türlü aracı, yöntemi ve ürünü, geliştirdiğiniz sisteme dahil etmek yerine gerçekten ihtiyacınızın olup olmadığını analiz edip kullanın.

Başka bir yazıda görüşmek dileğiyle.

Kaynak:

https://en.wikipedia.org/wiki/KISS_principle

Kategori: Yazılım Teknolojileri