Yazılım üretirken kıvam tutturmak
Yazılım üretiminde 15 yıldan fazlası geride kalmış. Sektörün tarihi düşünülürse uzun zaman. Bunca zamandır tempolu bir şekilde üretimin her kademesinde yer aldım. Geçirdiğim bu uzun ve keyifli yolculukta kafamın bir tarafında sürekli canlı olan bir soruyu bu yazıda kaleme almaya çalışacağım. Soru şu : "Olmuş mu ? " Bu yazılım "Kullanışlı", "Kolay", "Basit" olmuş mu ?
Öteden beridir dijitalde bir kıvam yakalamanın peşinde oldum. Bu doğru kıvam yakalanmadan ortaya çıkan yazılımın , karakteristik bir ürün sayılamayacağını, iş görse bile uzun süre yaşamayacağını biliyordum. Bu yüzden "olmuş mu" sorusuna üretimin farklı aşamalarında kendimi tatmin edecek yanıtı bulmaya çalıştım. Zannediyorum ürünlerimize inancım bu yaklaşım sayesinde gelişti.
Bir yazılım projesini/çözümünü doğru sınırlar içersine alıp, bir "ÜRÜN KONSEPTİ" ile çevreleyebilmek için doğru yerden bakmak, doğru yerden tutmak, konuyu doğru yorumlayıp çözümlemek öylesine önemli ki : teknik üretimin ince ince zahmetli yolculuğunu iki ileri bir geri yapmamak ve ortaya doğru düzgün bir sonuç çıkartmak için işin bu can alıcı noktalarına kulak vermek gerekiyor.
Neden bazı e-ticaret siteleri, bazı ilan siteleri, bazı ATM ekranları , bazı bankaların internet şubeleri, bazı paket programlar, bazı mobil uygulamalar bizim için daha çok tercih ediliyor ? Aynı işi yapmalarına rağmen, birini ötekine tercih edişimizi hangi püf noktalar belirliyor ? Bu sorunun bir çok yanıtı olduğunun farkındayım. Bu soyut karşılaştırmayı ele almak istiyorum. Şimdi sözü uzatmadan konuya doğrudan bir giriş yapalım.
1- Yazılım Projesini Sadeleştirme
Sadeleştirmenin sihirli yanını çok geç farkettim. Basitleştirebilmenin ustaca bir arındırma olduğunu çok sonra anladım. Bugün dahi yazılımı analiz ederken kendimi , çözümün üzerine fazlaca fonksiyon yüklerken yakalıyorum. Böyle anlarda hemen kendimi daha basit düşünmeye zorluyorum. Üretimdeki genel yanılgımız şudur : Ne kadar iyi unsur - değer - fonksiyon bir araya gelirse o kadar derin ve güçlü bir sonuç ortaya çıkar. Zamanla görmüş olduk ki her zaman: güzel + güzel = daha güzele karşılık gelmiyormuş. Altın kural şu : "Bir ürün gereksiz, kullanılmayan unsurlar taşımıyorsa ( temizlenmişse ) işte o zaman doğru kapsamda ele alınmış demektir. "
Unsurların sayısı arttıkça beklentiyi yönetmek , ürünü taşımak , kapsamı korumak ve zamanı geldiğinde ürünü geliştirmek zorlaşıyor. Ürün kompleks hale geldikçe hedef kitle karışıyor, fiyatı belirlemek konusundaki özerkliğiniz kayboluyor. Bu yüzden mümkün oldukça kapsamı , tasarımı , sunumu , kullanışlılığı sadelik üzerinde biraraya getirmek gerekiyor. Şöyle dikkatlice bakarsak basitleştirmek zordur. Yalnız üretmeye devam edebilmek için basitleştirmek zorundayız.
Sadeleştirme yaklaşımı ele alınırken en temel çıkmaz herkesin ihtiyaçlarının ortak olmaması. Yalnız unutmayalım ki yazılım üretimi endüstrideki diğer üretim alanlarına göre bize çok daha esnek ve soyut bir alan açıyor. O halde bu imkanı sadeleştirebilmek için çok iyi değerlendirmek lazım. Farklı ihtiyaç seviyeleri için "modüler yapı", "kişiselleştirme", "sistem ayarları" gibi yapılar üzerinden "temel işlevi" sade bırakıp , "kullanıcının derinleşmesine bağlı olarak genişleyebilen yapılar" kurmak gerekli. Sadeleşme ihtiyacını en güzel doğrulayan örneklerden birisi de yazılımların "fabrika ayarlarına geri dönmeleri". Çoğumuz ipin ucu kaçtığında fabrika ayarlarına dönüyoruz. Demek ki sistem ihtiyaç halinde esnemeli ve istendiğinde ilk yalın haline geri dönebilmeli.
2- Ekranlarda Doğru Tasarım - Güzel Tasarım
Önce doğru tasarım ile güzel tasarımı ayırmış olalım. Doğru tasarım, işin amacına uygunluğunu sağlıyor ve kendine ait matematiği var. İdeal formu yakalamak isteyen her üretici, doğru tasarımdan kaçamayacağını eninde sonunda tecrübe ediyor. Ekibinizde tasarımcı yoksa veya dış destek alarak doğru tasarımın hakkını vermiyorsanız ben bugünün dünyasında ortaya çıkacak ürüne şans vermiyorum. Doğru tasarım "kapsamı belirlemek ve kapsam içindeki unsurların birbirleriyle ilişkisini kurgulamak" demektir. Güzel tasarım ise tarif edilmesi ve üzerinde ortak kanaat oluşması daha zor bir alan. Sonuçta kişiden kişiye değişen bir kavram. Güzel tasarımı zamanın içinde, zihnen bulunduğumuz , baktığımız ve bakabildiğimiz yerle değerlendirmiş oluyoruz. Çok belli ki güzel olanı tariflemek zor fakat çirkinlik konusunda daha kolay hemfikir oluyoruz. Burada bu kocaman ikilemi tariflemeyi bir kenara bırakıp konumuza indirgemiş olalım: güzel tasarım derken "kitlelerin beğenisini kazanan" ve "erişilmek istenen bir seviye" kastetmiş oluyoruz. Kısaca üretim yapılanlar arasında seçim yapılmak istendiğinde, bizi yakalayan ve kendisine çeken tasarımlara güzel tasarım diyoruz.
İşinde ustalaşmış güçlü tasarımcılara her zaman hayranlıkla bakmışımdır. Renkleri, fontları, işaretleri, boyutları, yerleşimi harika dağıtırlar ve sihirli bir orantıyla paylaştırırlar. İyi tasarımcılar yazılımı tatlandırır , sevdirir, etkileyici hale getirir. Son kullanıcının yazılımla arasındaki psikolojik bağı büyük ölçüde tasarımın belirlediğini söyleyebiliriz. Türkiye'de öteden beri yazılım alanında yapılan çalışmalarda tasarım ihmal edilen, sonraya bırakılan bir lüks gibi yorumlandı. Oysa ki Windows'tan başlayarak bu gün için tabletler , akıllı telefonlardaki yaygın uygulamalar kullanıcıları çoktan iyi tasarıma ve etkileşime alıştırmıştı bile. Bu yüzden artık standartların gerisinden tutulan işlere güvenilmiyor. Böyle bakıldığında tasarım kendisinden çok daha fazla anlam taşıyor. Özellikle Türkiye'de tasarım kendi anlamının dışında "Güven", "prestij","marka","fiyat" gibi bir çok ticari fonksiyon üzerinde etkin bir rol üstleniyor.
3- Kullanıcı Etkileşimi
Bir işi yapmanın madem çeşit çeşit yolu var. O halde yazılım ürününe düşen görev bu yollar içersinden en konforlu olanı algılayarak, kullanıcıyı o yoldan sonuca ulaştırmaktır. Burada sadece bir kaç tıklama ile işi kestirmeden çözmekten daha fazlasını kastediyorum.
Biliyorsunuz bu uzmanlık alanı User Interface - User Experience UI/ UX diye kavramlaştırıldı. Etkileşim tasarımı tarafında ekrandaki her bir yazılım nesnesi, kullanıcı ile etkileşime girdiği her noktada sürekli pratik davranmaya ayarlanmış olmalı. Başka bir ifade ile etkileşim insanın doğadaki etki - tepki alışkanlıkları ile uyumlu olmalı. Kullanıcı yapacağı işleme yönelirken, yazılım ekranı, nasıl yapıldığı ve nasıl sonuçlandığı konusunda yönlendirici ve bir çırpıda anlaşılabilir davranışlar sergilemeli. Mümkün olduğu kadar kullanıcıyı tanımalı, hatırlamalı seçimlerini kestirme hale getirmeli, iş - sonuç arasındaki mesajlaşmasıya kullanıcı psikolojisini doğru akışkanlıkla beslemeli.
Yerli yazılım tarafında bu konu henüz gereken önemi kazanmış değil. Bazıları üretim yaparken yıllar öncesinin imkanları hiç değişmemiş gibi eski nesil yazılım bileşenlerini kullanıyor. Bazıları ise güncel modern yapıları üzerinde doğru orkestrasyonu uygulamadan olduğu gibi birleştirerek iyi bir sonuç çıkacağını zannediyor. Bir de bakıyorsunuz ki Amerika veya Avrupa'daki ürünlerin karakteristik olarak oldukça uzağında sonuçlar ortaya çıkmış. Tabi burada bir çok yetenekli firmanın hakkını yemeyelim. İşlerini büyük beğeni ile izlediğim dijital çalışmalar da var tabi. Sanırım önümüzdeki yıllarda üretim yapılırken sadece mühendislik katmanında değil , aynı zamanda önyüz ve doğru ürün konseptini yakalama tarafında da daha fazla çalışma yapılacak.
Ritma Teknoloji olarak bizlerde globale açılacak yeni ürünlerimizi geliştirirken , CRM yazılımı ve ERP yazılımı tarafında ürünlerimizi modernize ederken yukarda belirttiğim başlıklar altında sıkı çalışmalar planlıyoruz. Bizim misyonumuz ülkemizde yazılım endüstrisi için örnek işler çıkarmak. Milli yazılım üretimi bizi öteden beri heyecanlandıran bir konu oldu ve bu alanda üstümüze düşeni yapacağız.