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

HCI'de Üç Formal Yöntem: Kullanıcı, Sistem ve Bağlam

Kullanıcı, Sistem, Bağlam: HCI'de Formal Yöntemlerin Sınırı

İnsan-bilgisayar etkileşimi literatüründe formal yöntemler üç eksende toplanır: kullanıcı, sistem ve bağlam. Üçü de belirsizliği azaltmayı vaat eder, ama her biri başka türde bir belirsizliği azaltır ve hiçbiri diğerinin yerini tutmaz. Asıl mesele hangisini seçtiğiniz değil, seçtiğiniz modelin ürün büyüdükçe ayakta kalıp kalmadığı.

"Formal" kelimesi fazla ucuza kullanılıyor

Senaryo yazmak, persona çıkarmak, akış şeması çizmek formal yöntem değildir. Bunlar yarı-formal gösterimlerdir: okunması kolay, yorumu kişiye göre değişir, iki mühendis aynı şemadan iki farklı davranış anlayabilir. Formal olan şey, üzerinde tartışma bırakmayan gösterimdir. Durum makinesi, ConcurTaskTrees gibi görev modelleri, GOMS ailesi, model denetimi araçları bu tarafta durur.

Ayrım kozmetik değil. Yarı-formal bir şema ekip içi iletişimi hızlandırır ve orada durur. Formal bir model ise size bir çıktı verir: bir sayı, bir çelişki, ulaşılamayan bir durum. Tasarım tartışmasını bitiren şey o çıktıdır.

Kullanıcı ekseni: sayı üretmeyen görev modeli model değildir

Kullanıcı odaklı yöntemlerin en işe yarar ucu, görev modelini ölçülebilir hale getiren kısmıdır. Keystroke-Level Model bunun en eski ve en pratik örneği: bir görevi tuş vuruşu, işaretleme, elin klavyeyle fare arasında yer değiştirmesi ve zihinsel hazırlık adımlarına böler, her birine sabit bir süre atar. Card, Moran ve Newell'in yayımladığı değerlerde fareyle hedefe gitmek 1,10 saniye, el değiştirme 0,40 saniye, zihinsel hazırlık 1,35 saniyedir.

İki akış arasındaki tartışmaları genelde bu modelle çözerim: hangisinin daha hızlı hissettirdiğini tahmin etmek yerine operatörleri sayarım. Çoğu zaman kazanan, adım sayısı az olan değil, zihinsel hazırlık gerektiren duraklaması az olandır. Formdaki alan sayısını ikiden bire indirmek 1,35 saniyelik bir M operatörünü de siliyorsa kazanç göründüğünden büyüktür.

Modelin sınırı da açık: hatasız çalışan, arayüzü bilen bir kullanıcı varsayar. Öğrenme süresi, yanlış tıklama, geri dönme, tereddüt yok. Yani ilk kullanım deneyimi hakkında hiçbir şey söylemez. Sık tekrarlanan görevlerde güvenilirdir, ilk kayıt akışında değil.

Sistem ekseni: durum diyagramı kombinatorik olarak patlar

Sistem tarafında en sık verilen tavsiye, tüm durumları ve geçişleri diyagrama dökmektir. Bu tavsiye küçük bir bileşende işler, ortalama bir ekranda işlemez. Birbirinden bağımsız on boolean bayrağınız varsa durum uzayı 2'nin 10. kuvveti, yani 1024 kombinasyondur. On beş bayrakta 32768'e çıkar. Kimse o diyagramı çizmez, çizse kimse okumaz.

Çözüm diyagramı büyütmek değil, durum uzayını küçültmek. Üç yol var ve üçü de kodun kendisinde uygulanır:

  • Bayrakları tek bir sonlu durum alanına indirgemek. "yükleniyor", "hata", "boş", "dolu" aynı anda var olamıyorsa dört ayrı boolean değil tek bir alan olmalı.
  • Hiyerarşik durum makinesi kullanmak. Statechart, ortak geçişleri üst duruma taşıyarak diyagramı doğrusal büyütür.
  • Geçersiz durumu temsil edilemez kılmak. Veri modeli o kombinasyonu ifade edemiyorsa test edilecek bir durum da kalmaz.

Üçüncüsü en ucuzu. Bir durumu test etmek yerine var olamayacak hale getirmek, hem diyagramı hem test matrisini aynı anda küçültür.

Bağlam ekseni: en az formalleşen, en çok karşılığı olan

Bağlam analizi ürünün nerede, ne zaman, hangi koşulda kullanıldığını konu alır. Güneş altında okunan ekran, tek elle tutulan telefon, on saniyede bir kesilen dikkat, gürültülü bir depo. Bu eksen matematiksel bir gösterime oturmaz, oturtmaya çalışmak da vakit kaybıdır.

Buna rağmen üç eksen içinde ürüne en hızlı dokunan bu. Sebebi şu: bağlam analizinin çıktısı rapor değil, kısıt listesidir. "Kullanıcı ürünü ayaktayken kullanıyor" cümlesi tek başına bir şey ifade etmez; "dokunma hedefleri 44 punto altına inmeyecek, kritik işlem tek elle erişilebilir alanda kalacak" ifade eder. Erişilebilirlik kararlarının çoğu da bu listeden çıkar, ayrı bir başlık olarak değil.

Hangi eksen ne zaman öne geçer

Üçünü eşit ağırlıkla kullanmak diye bir şey yok, üründe hangi hatanın pahalı olduğuna bakılır. Günde yüzlerce kez tekrarlanan bir iç panelde kullanıcı ekseni öne geçer, çünkü görev başına kazanılan saniye doğrudan çarpılır. Para, sağlık, kimlik gibi verinin geçtiği yerde sistem ekseni öne geçer, çünkü yanlış durum geri alınamaz. Sahada, mobil ve kesintili kullanımda bağlam ekseni öne geçer, çünkü orada ürünü bitiren şey yavaşlık değil, o koşulda çalışmamaktır.

Hangi eksende çalışırsanız çalışın, modelin kodda bir karşılığı yoksa elinizde model değil sunum var.