Konu Başlıkları
Yükleniyor...

Doğrudan Manipülasyon Hatayı Yok Etmez, Katman Değiştirir

Katmanlı Etkileşim Modeliyle Doğrudan Manipülasyonun Hata Analizi

Doğrudan manipülasyonun sık tekrarlanan bir övgüsü var: kullanıcı nesneye dokunduğu için hata yapmaz. Katmanlı etkileşim modeliyle bakınca bu iddia dağılıyor. Hatalar kaybolmuyor, arayüzün alt katmanlarından üst katmanlarına taşınıyor ve orada hem daha pahalı hem de daha görünmez hale geliyor.

Modelin katmanları

Model, kullanıcı ile sistem arasındaki mesafeyi yedi katmana bölüyor ve her katmanda ayrı bir dil konuşulduğunu varsayıyor. Hedef en üstte, fiziksel eylem en altta.

  • Hedef: kullanıcının gerçek dünyaya ait amacı.
  • Görev: bu amacın sistemdeki karşılığı olan işlem.
  • Anlam: işlemin ne yaptığı.
  • Sözdizim: işlemlerin sırası ve düzeni.
  • Leksik: arayüzün yapı taşları, komut birimleri.
  • Alfabetik: tek tek semboller ve piksel düzeyindeki hedefler.
  • Fiziksel: parmağın ya da imlecin gerçek hareketi.

Modelin işe yarar tarafı katman sayısı değil, bir hatanın hangi katmanda doğduğunu sorabilmesi. Aynı yanlış sonuç, farklı katmanlarda tamamen farklı bir tasarım sorununa işaret ediyor.

Hata nereye gitti?

Komut satırında dosya taşırken komutu yanlış yazarsan sistem seni durdurur. Bu sözdizimsel bir hata ve maliyeti neredeyse sıfır: hiçbir şey olmaz, tekrar yazarsın.

Aynı dosyayı sürükleyip yanlış klasöre bıraktığında sistemin itiraz edeceği hiçbir şey yok. İşlem geçerli, sözdizimi kusursuz, fiziksel eylem tamamlanmış. Hata anlam katmanında: yapılan şey, yapılmak isteneni karşılamıyor. Sistem bunu yakalayamaz, çünkü yakalayabilmesi için kullanıcının niyetini bilmesi gerekir.

Doğrudan manipülasyonun yaptığı takas bu. Ucuz ve otomatik yakalanan hataları azaltıyor, pahalı ve yalnızca kullanıcı fark ederse ortaya çıkan hataları çoğaltıyor. Peki ya kullanıcı fark etmezse? Yanlış klasöre düşen dosya haftalar sonra aranır, listede yanlış yere sürüklenen öğe çoğu zaman hiç fark edilmez.

Geri alma bir tercih değil, borç

Sürükle bırak eklemek arayüz tarafında ucuz. Ürettiği hata sınıfını karşılamak ucuz değil. Anlam katmanında doğan hatanın tek pratik çaresi geri alma, ve geri alma bir arayüz meselesi değil, mimari mesele: her işlemin tersini üretebilmek için işlemleri veri olarak tutman, sıralı bir yığın taşıman, kısmen başarısız işlemde durumu tutarlı bırakman gerekiyor. Bir ürüne sonradan eklenmesi en zor şeylerden biri.

Buradan çıkan kural basit: bir ekranda sürükle bırak ya da yerinde düzenleme öneriliyorsa, aynı toplantıda geri almanın nasıl çalışacağı da konuşulmalı. Konuşulmuyorsa özellik yarım planlanmıştır. Onay penceresi bunun yerine geçmiyor; onay, kullanıcının zaten doğru sandığı bir eylemi tekrar sorar ve refleksle geçilir.

Doğrudanlığın kırıldığı yer

Her işlem doğrudan manipülasyona uygun değil. Bir metin kutusunda sekme duraklarını ayarlamak birkaç diyalog ve ayar penceresi gerektirebilir; kullanıcı artık nesneye değil, nesne hakkında konuşan bir forma dokunuyor. Bu kendiliğinden kötü tasarım sayılmaz. Sürekli ve tersine çevrilebilir işlemler doğrudan manipülasyona yatkın, kesin değer isteyen ayrık işlemler forma.

Asıl karışıklık ikisinin ortasında kalan arayüzlerde başlıyor: sürüklenerek kabaca konumlandırılan, sonra bir kutucuğa piksel değeri yazılarak düzeltilen öğeler. Böyle bir ekranda iki yolun tam olarak aynı durumu ürettiğinden emin olmak gerekiyor. Aksi halde kullanıcı hangi değerin geçerli olduğunu tahmin etmeye başlıyor, ki bu doğrudanlığın vaat ettiği şeyin tersi.

WYSIWYG ile şeffaflık aynı şeyi istemiyor

Bu ikisi genelde yan yana erdem olarak sayılıyor, oysa ters yönlere çekiyorlar. WYSIWYG sistemin iç temsilini gizler ve ekranda yalnızca sonucu gösterir. Şeffaflık ise sistemin ne yaptığını görünür kılar. Bir editörde kalınlaştırdığın kelimenin arkasında hangi işaretlemenin durduğunu bilmemen WYSIWYG'in başarısı; dışarıdan yapıştırılan metnin bozduğu biçimi tamir edememen aynı gizlemenin bedeli.

Tercihi kullanım sıklığı belirliyor. Ayda birkaç kez metin yazan biri için gizleme doğru, aynı şablonu her gün düzenleyen biri için kaynağa erişim şart. İkisini aynı anda hedefleyen araçlar genelde ikisini de yarım bırakıyor. İyi çözüm birini varsayılan yapıp diğerini tek tık uzakta tutmak.