Generik Komut ile Aşırı Yüklenmiş Komut Arasındaki Sınır
Aynı hareketi iki farklı yerde yapıp iki farklı sonuç almak kullanıcının hatası değildir. Arayüz ona o hareketin tek bir anlamı olduğunu öğretmiş, sonra sözünü tutmamıştır. Generik komutla aşırı yüklenmiş komut arasındaki fark komutun kendisinde değil, bağlamın kullanıcıya ne kadar göründüğünde başlar.
Generik komut: bir kez öğrenilir, her yerde işler
Generik komut, farklı içeriklerde aynı hareketi yapan kullanıcının aynı türden sonucu aldığı komuttur. İki parmağı açmak fotoğrafta yakınlaştırır, haritada yakınlaştırır, PDF'te de yakınlaştırır. İçerik değişir, sözleşme değişmez.
Kazanç öğrenme tarafındadır. Kullanıcı hareketi bir kere öğrenir, yeni bir ekrana girdiğinde denemekten çekinmez, çünkü o hareketin ekranı bozmayacağını bilir. Ev simgesi de aynı kategoridedir, nereden basılırsa basılsın aynı yere götürdüğü sürece.
Aşırı yükleme nerede başlar
Aynı görünen komut bağlama göre başka iş yapıyorsa aşırı yüklenmiştir. Arayüzde en sık şu üç yerde çıkar:
- Aynı ekranda iki arama kutusu: biri site içinde arar, diğeri katalogda. Kullanıcı önce yanlış kutuya yazar, sonra ikisini birden dener.
- Üst barda ve yan menüde iki ev simgesi, biri panele biri pazaryerine gider.
- Geri düğmesinin bazı ekranlarda bir önceki adıma, bazılarında akışın en başına dönmesi.
Üçünde de tasarımı yapan esneklik gördü. Kullanıcı tutarsızlık görüyor, çünkü bir komutun ekrandaki bütün kopyalarının aynı işi yaptığını varsayar. Bu varsayım yanlış olduğunda hatayı yapan kullanıcı olur, bedelini ödeyen arayüz.
İki soru, dört ihtimal
Ayrım için sorulan iki soru şudur: kullanıcı bağlamların farklı olduğunu algılıyor mu, ve elde ettiği sonuçları benzer mi görüyor? Bu iki soru ikili bir seçim gibi anlatılır ama dört kombinasyon üretir ve dördü aynı şey değildir.
| Bağlam ayırt ediliyor mu? | Sonuçlar benzer mi? | Durum |
|---|---|---|
| Evet | Evet | Generik komut. Dokunma. |
| Evet | Hayır | Kullanıcı farkı zaten bekliyor. Aşırı yükleme değil. |
| Hayır | Evet | Gereksiz ikizleme. Ekranda fazlalık var ama hata üretmiyor. |
| Hayır | Hayır | Asıl aşırı yükleme. Hatalar buradan çıkar. |
"Komutu ikiye ayır" tavsiyesi yalnızca son satırda geçerlidir. Diğer üçünde ayırmanın maliyeti kazancını geçer: ekrana yeni bir kontrol, yeni bir etiket ve öğrenilecek yeni bir şey eklersin.
Son satırdaki sorunun da iki çözümü var. Ya sonuçları birbirine yaklaştırırsın, ya bağlamı görünür kılarsın. Ekiplerin çoğu birinciyi dener ve akışı yeniden yazmak zorunda kalır. İkincisi daha ucuzdur: iki arama kutusunun placeholder metnini neyi aradığını söyleyecek şekilde değiştirmek, birini farklı genişlikte ve farklı bölümde konumlandırmak çoğu zaman yeter. Kullanıcı bağlamı ayırt ettiği anda tablonun ilk iki satırından birine geçersin ve komutun kendisine hiç dokunmamış olursun.
Kodda karşılığı
Bir komutun aşırı yüklenip yüklenmediğini toplantıda tartışmak yerine koda bakmak daha hızlı sonuç verir. Aşırı yükleme kodda belirgin bir iz bırakır: tek bir olay işleyicisinin içinde bağlama göre dallanıp farklı sonuç döndüren bir koşul. onBack, onSearch, onHome gibi işleyicilerde route ya da ekran durumuna bakan if bloklarını ara.
Çıkan her dallanma kusur değil. Aynı sonucu farklı yoldan üretiyorsa sorun yok, kullanıcı açısından hiçbir şey değişmiyor demektir. Dönen sonuç kullanıcının göreceği bir şeyi değiştiriyorsa, o koşul arayüzdeki belirsizliğin tam kaynağıdır. Bunu bulmak için ayrı bir araç kurmana gerek yok, grep yeterli.
Ölçerken doğru sayıya bak
A/B testi burada yanlış alet. İki tasarımdan hangisinin daha iyi dönüştüğünü söyler, komutun neden karıştığını söylemez. Moderasyonlu birkaç oturum daha fazlasını verir, yeter ki tek bir şey sayılsın: kullanıcı doğru hedefe varmadan önce kaç yanlış kontrole dokundu.
Memnuniyet anketi bu sayıyı yakalamaz, çünkü kullanıcı yanlış kutuya yazdığını genellikle kendi beceriksizliğine yorar ve şikayet etmez. Düzeltmeyi yaptıktan sonra aynı sayı düşmüyorsa komut değil, sadece etiket değişmiştir.