Mystic Microsoft

Zor Kullanıcılar İçin Program Tasarımı Nasıl Olmalı?

Bu yaz bir kaç eski Microsoft çalışanının bloglarını ve kitaplarını okudum. İlk bahsedeceğim kişi Joel Spolsky. Microsoft daha küçük bir şirket iken (yaklaşık 5000 kişilik iken) orada işe başlamış Excel VBA gibi önemli projelerde görev almış biri. Onun eski yazılarını okurken edindiğim fikirler ile ne kadar işin başında olduğumu farkettim. İkinci kişi Coding Horror sitesinin sahibi olan Jeff Atwood. Joel ile Jeff 2008 yılında birlikte Stack Overflow sitesini kurmuşlar. İkisi de bilgisayar konusunda birer dahi. Sonuncusu ise Kraig Brockschmidt. Kraig’in daha ilk yılında yazdığı hesap makinesi uzun yıllar Windows’ta kullanılmış. Eminim şimdiki de onun biraz gelişmiş versiyonudur. Ayrıca yazmış olduğu bir sürü kitap da var. Ben sadece onun Mystic Microsoft adlı kitabını okumama rağmen takip ettiklerim listesine çoktan girdi.

Mystic Microsoft

Mystic Microsoft

Tam olarak nerede okudum şimdi hatırlamıyorum ama bu yazıların birinde program tasarımı konusunda bir kaç tasarım ilkesi ve kişisel öneri de gördüm. Burada onlardan bahsetmeden geçmek istemedim. Program tasarımında özellikle iki ana ilkeden bahsediyordu:

  1. Kullanıcıların kullanım kılavuzu yoktur. Olsa da okumazlar.
  2. Aslında kullanıcılar hiç bir şey okuyamazlar. Okuyabilseler de okumak istemezler.

Bunlar tam anlamıyla gerçekçi tespit olmamasına rağmen eğer gerçekmiş gibi düşünürsek yazdığımız programlar daha kullanışlı ve kolay olacaktır. Bu ilkelere göre hareket edip program tasarlamanın adına “Kullanıcıya Saygı” denmekteymiş. Aslında kullanıcıya yeterince saygı duymamak oluyor. Şöyle ki, “kolay kullanımı” ölçmenin bir yolu gerçek kullanıcıların yüzde kaçının verilen işleri sabit bir zamanda yapabildiklerini bulmaktır. Mesela programınızın amacı fotoğrafları web albümüne dönüştürmek olsun. Yanımızda da 100 kişi ve önlerinde sizin programınızın olduğu birer bilgisayar olsun. Ne kadar çok kişi bu işlemleri yapabilirse programınız o kadar kullanışlı demektir. Gerçek dünyadaki kullanıcılardan bahsediyorsak, onları çoğu bilgisayar kullanmayı bilmiyordur. Çoğunun bilgisayar konusunda yeteneği de yoktur. Ayrıca etraflarında dikkatlerini dağıtacak bir sürü olay da olmaktadır.

Sırf bu varsayım bile kullanıcılarının bir kısmının bu işi yapamayacaklarını farz etmek için yeterli. Bazıları ise çok fazla zaman harcayacaklar. Bunun anlamı kullanıcıların aptal olduğu değil, sadece değerli beyinlerini ve zamanlarını sizin programınızda harcamak istemediklerindendir.

Kullanım Kılavuzu Asla Okunmaz

Aslında programların öyle bir kitapçığı yoktur. Olsa da kullanıcıların yanında değildir. Yanlarında olsa da zorunlu olmadıkça kimse okumaz. Çünkü insanların bir an önce kendi işlerinin yapılmasını bekler, kitapçık okumak tamamen vakit kaybıdır. Bunun gibi nedenlerden ötürü programınızı hiç bir kullanım kılavuzuna ihtiyaç bırakmayacak şekilde tasarlamanız gerekmektedir.

Aslında kullanıcılar hiç bir şeyi okumazlar

Programı test ederken herkesin fark edebileceği bir şeydir bu. Basit bir işlemin nasıl yapılacağını öğrenmek için hemen arayıp sorarlar. Oysa ekranın bir yerlerinde o işlemin nasıl yapılacağına dair bir ipucu vardır. Özellikle mesaj kutularındaki bilgiler. Oradaki mesajınız  ne kadar uzunsa o kadar az insan okuyacaktır.

  • Tecrübeli kullanıcılar asla okumazlar çünkü ne yaptıklarını bilirler yada bildiklerini zannederler.
  • Çoğu acemi kullanıcı da bir şey okumadan hep ileri veya tamam tuşlarına basarak işlerini halleder.
  • Çok az kullanıcı ekrandaki yazıları okur ve ona göre karar vermeye çalışır. Ama bu onların aklını daha fazla da karıştırabilir.

Çoğu zaman program bir mesaj verdiğinde bir hata yapmak üzereyizdir ve program onu engellemek istemiştir, kaydetmeden program kapatmak gibi. Ama gereksiz yere kapatmak istediğinizden emin misiniz gibi saçma bir soru insanların ilk başta yanlış tuşa basıp programı kapatamamasına neden olmaktadır.

Bilgisayarın hafızasında tutabileceği şeyleri kullanıcıya sorma

Bu işlev kullanışlılığı arttıran önemli faktörlerden biridir. Programlardaki otomatik tamamlama özelliği Bunun en güzel örneğidir. Microsoft Office  programında bu işlev bolca kullanılmıştır. Google’da da bu özellik güzelce yerleştirilmiş. Bunlara ek olarak söylenebilecek bir ley daha var: mümkün olduğunca az mesaj kutusu ile kullanıcıyı bilgilendirin. Çünkü mesaj kutuları insanların işlerini böler ve çok rahatsız eder.

Program Süreci

Program Süreci

Mutlaka test edin yada ettirin

Visual Basic’in babası olarak bilinen Alan Cooper‘ın meşhur bir sözü var:

Windows uygulaması yazmak, Microsoft’un size periyodik tablodaki elementleri verip brokoli yapmanızı istemesine benziyor.

Son olarak da Mystic Microsoft kitabından bir bölümü anlatacağım:

Microsoft’un program geliştirme zümresinde üç çeşit iş pozisyonu var: Program yöneticisi, yazılım mühendisi ve test edenler. Program yöneticisi denen şahıslar müşterilerin bunsuz yapamam diyeceği ve hemen satın alacağı şeyleri hayal etmeye çalışan insanlardır. Onların işi programlar için yapılacaklar listesi oluşturmaktır. Bu liste yazılım mühendislerine iletilir. Onlarda bu listeyi işleyen bir program haline getirirler. Sonra bu program testçilere verilir. Onların görevi de listedeki istenenler ile yapılanlar uyuyor mu diye acımasızca eleştirmektir.

Normalde testçileri sevmek gerekir, çünkü onlar iyi bir programın olmazsa olmaz parçasıdır. Ama aslında onlardan nefret edersiniz çünkü işlerinde çok iyidirler. Mesela siz onlara askeri ulaşım için yapılmış yeni parlak bir araba verirsiniz. Onlar da gerçekten savaş alanına sokarlar arabayı. Sonra da elinize bir enkaz tutuşturup bozuldu derler. Programcı neden bozulduğunu bulası gerektiği gibi nasıl düzelteceğini de bulmalıdır. Sonra programınızı tekrar testçilere vereceksiniz. Taki testçiler tatmin oluncaya kadar.