Ders 04 / 24
Yolculuk Haritaları
Uçtan uca deneyimin aşamalara ayrılması; kanal payının, terk oranının ve kayıp kişi-dakikanın hesaplanması; en uzun aşamayla en çok bırakılan aşamanın niçin aynı olmadığı.
İçindekiler
Görev envanteri her görevi ayrı bir satır olarak gösterdi, oysa kullanıcı bunları arka arkaya yapıyor. “Raf konumunu bul” görevi ekranda başlıyor, rafın önünde bitiyor ve başarısız olduğunda kullanıcı kataloğa geri dönüyor. Envanter bu zinciri göremez; her görevi bağımsız bir olay olarak sayar.
Yolculuk haritası (journey map), tek bir amacın uçtan uca izlenmesidir: kullanıcı nerede başlar, hangi aşamalardan geçer, her aşamada ne kadar kalır ve nerede vazgeçer. Bu ders haritanın sütunlarını kurar, bırakma noktalarını hesaplar ve en uzun aşamanın niçin en kötü aşama olmadığını gösterir.
Haritanın Sütunları
Bir yolculuk haritası dört soruya sütun ayırır.
- Aşama. Kullanıcının amacı yolunda attığı bir adım. Aşama sınırı, kullanıcının bir karar verdiği ya da ortam değiştirdiği yerdedir; arayüz ekranlarıyla birebir örtüşmez.
- Kanal. Aşamanın geçtiği ortam. Katalog arayüzünde üç kanal var: ekran, kütüphanenin fiziksel alanı ve ödünç bankosu. Kanal sütunu olmayan bir harita, ekranda başlayıp ekranda biten bir yolculuk varsayar.
- Ölçüm. Aşamaya kaç kişi girdi, kaçı sonraki aşamaya geçti, aşamada ne kadar zaman geçti. Bu sütun gözlem verisinden gelir.
- Bulgu. Aşamada ne olduğu ve niçin olduğu. Bu sütun görüşmeden gelir; sayı değil, kodlanmış olgudur.
Son iki sütunun ayrı tutulması önemlidir. Ölçüm nerede kaybedildiğini söyler, bulgu niçin kaybedildiğini söyler ve biri diğerinin yerine geçmez.
Yolculuğu Ölçmek
Aşağıdaki hesap “bilinen kaydı bul ve ödünç al” amacını yüz başlangıçtan izliyor. Her aşama için giren ve çıkan sayısı ile aşamada geçen ortalama süre kaydedildi.
// yolculuk.mjs — ucdan uca yolculugun asama asama sure, birakma ve kayip zaman hesabi // "Bilinen kaydi bul ve odunc al" yolculugunun 100 baslangicta izlenmesi // (ders icin kurulmus veri). kanal: asamanin gectigi ortam. const ASAMALAR = [ { ad: "katalogu ac", kanal: "ekran", giren: 100, cikan: 97, sure: 0.4 }, { ad: "aramayi yaz", kanal: "ekran", giren: 97, cikan: 92, sure: 1.1 }, { ad: "sonuc listesini tara", kanal: "ekran", giren: 92, cikan: 74, sure: 2.3 }, { ad: "kayit ayrintisini oku", kanal: "ekran", giren: 74, cikan: 68, sure: 1.6 }, { ad: "raf kodunu not et", kanal: "ekran", giren: 68, cikan: 61, sure: 0.5 }, { ad: "rafa git", kanal: "fiziksel", giren: 61, cikan: 58, sure: 6.2 }, { ad: "kitabi rafta bul", kanal: "fiziksel", giren: 58, cikan: 39, sure: 4.8 }, { ad: "odunc islemini yap", kanal: "banko", giren: 39, cikan: 37, sure: 2.1 }, ]; console.log("asama kanal giren cikan birakan birakma orani sure toplam sure"); let toplamSure = 0; for (const a of ASAMALAR) { a.birakan = a.giren - a.cikan; a.birakmaOrani = a.birakan / a.giren; toplamSure += a.sure; console.log( `${a.ad.padEnd(22)} ${a.kanal.padEnd(9)} ${String(a.giren).padStart(6)} ${String(a.cikan).padStart(6)} ` + `${String(a.birakan).padStart(8)} ${(a.birakmaOrani * 100).toFixed(1).padStart(13)}% ${a.sure.toFixed(1).padStart(5)} ${toplamSure.toFixed(1).padStart(11)}` ); } console.log(`\nucdan uca tamamlama: ${ASAMALAR.at(-1).cikan} / ${ASAMALAR[0].giren} (${ASAMALAR.at(-1).cikan}%)`); console.log(`ucdan uca sure (tamamlayan icin): ${toplamSure.toFixed(1)} dk`); // Kanal payi: yolculugun ne kadari ekranda gecti const kanalSure = {}; for (const a of ASAMALAR) kanalSure[a.kanal] = (kanalSure[a.kanal] ?? 0) + a.sure; console.log("\nkanal sure yolculuk payi"); for (const [k, s] of Object.entries(kanalSure)) { console.log(`${k.padEnd(10)} ${s.toFixed(1).padStart(4)} dk ${((s / toplamSure) * 100).toFixed(1)}%`); } // Uc ayri "en kotu asama" tanimi ayni asamayi gostermiyor const enBuyuk = (anahtar) => [...ASAMALAR].sort((a, b) => b[anahtar] - a[anahtar])[0]; for (const a of ASAMALAR) a.kayipDakika = a.birakan * a.sure; console.log("\nolcut en kotu asama deger"); console.log(`${"en uzun asama".padEnd(24)} ${enBuyuk("sure").ad.padEnd(24)} ${enBuyuk("sure").sure.toFixed(1)} dk`); console.log(`${"en cok birakan".padEnd(24)} ${enBuyuk("birakan").ad.padEnd(24)} ${enBuyuk("birakan").birakan} kisi`); console.log(`${"en yuksek birakma orani".padEnd(24)} ${enBuyuk("birakmaOrani").ad.padEnd(24)} ${(enBuyuk("birakmaOrani").birakmaOrani * 100).toFixed(1)}%`); console.log(`${"en cok kayip dakika".padEnd(24)} ${enBuyuk("kayipDakika").ad.padEnd(24)} ${enBuyuk("kayipDakika").kayipDakika.toFixed(1)} kisi-dakika`); // Birakanlarin harcadigi zaman: yolculuga girip cikamayanlarin toplam dakikasi let harcanan = 0, tamamlayanZaman = ASAMALAR.at(-1).cikan * toplamSure; for (let i = 0; i < ASAMALAR.length; i++) { harcanan += ASAMALAR[i].giren * ASAMALAR[i].sure; } console.log(`\ntoplam harcanan zaman: ${harcanan.toFixed(1)} kisi-dakika`); console.log(`tamamlayanlarin zamani: ${tamamlayanZaman.toFixed(1)} kisi-dakika`); console.log(`sonuca varmayan zaman orani: ${(((harcanan - tamamlayanZaman) / harcanan) * 100).toFixed(1)}%`);
asama kanal giren cikan birakan birakma orani sure toplam sure katalogu ac ekran 100 97 3 3.0% 0.4 0.4 aramayi yaz ekran 97 92 5 5.2% 1.1 1.5 sonuc listesini tara ekran 92 74 18 19.6% 2.3 3.8 kayit ayrintisini oku ekran 74 68 6 8.1% 1.6 5.4 raf kodunu not et ekran 68 61 7 10.3% 0.5 5.9 rafa git fiziksel 61 58 3 4.9% 6.2 12.1 kitabi rafta bul fiziksel 58 39 19 32.8% 4.8 16.9 odunc islemini yap banko 39 37 2 5.1% 2.1 19.0 ucdan uca tamamlama: 37 / 100 (37%) ucdan uca sure (tamamlayan icin): 19.0 dk kanal sure yolculuk payi ekran 5.9 dk 31.1% fiziksel 11.0 dk 57.9% banko 2.1 dk 11.1% olcut en kotu asama deger en uzun asama rafa git 6.2 dk en cok birakan kitabi rafta bul 19 kisi en yuksek birakma orani kitabi rafta bul 32.8% en cok kayip dakika kitabi rafta bul 91.2 kisi-dakika toplam harcanan zaman: 1249.2 kisi-dakika tamamlayanlarin zamani: 703.0 kisi-dakika sonuca varmayan zaman orani: 43.7%
Haritanın Söyledikleri
Uçtan uca tamamlama %37. Sekiz aşamanın hiçbirinde terk oranı üçte birden yüksek değil, ama çarpımları yüzden otuz yediye indiriyor. Aşamaların tek tek “kabul edilebilir” görünmesi, zincirin kabul edilebilir olduğu anlamına gelmez. Bir yolculuk haritasının ilk işlevi, aşama başına iyi görünen sayıların çarpımını göstermektir.
Ekran, yolculuğun yalnızca %31.1’i. On dokuz dakikalık yolculuğun on bir dakikası fiziksel alanda, iki dakikası bankoda geçiyor. Bu, katalog arayüzünün ölçümüyle görülemeyen bir bölgedir: ekran ölçümü kullanıcının kataloğu kapattığı anda kör olur. Önceki dersteki oturum sürelerinin “bilinen kaydı arayan” profil için 4.3 dakika çıkması bu körlüğün sonucudur; kullanıcı dört dakika ekranda, on beş dakika ekranın dışındadır.
En uzun aşama en kötü aşama değil. “Rafa git” 6.2 dakikayla en uzun aşama, ama bırakma oranı %4.9. Kullanıcı bu süreyi bekliyor ve kabul ediyor; yolculuğun beklenen bir parçasıdır. “Kitabı rafta bul” aşaması 4.8 dakika sürüyor ve giren elli sekiz kişinin on dokuzunu kaybediyor. Uzunluk bir sorun göstergesi değildir; sorun, harcanan zamanın sonuç üretmemesidir.
Kayıp kişi-dakika, aşamaları ortak bir birime çevirir. Bırakan kişi sayısını aşamada geçen süreyle çarpmak, o aşamada boşa giden zamanı verir. “Kitabı rafta bul” 91.2 kişi-dakika üretiyor; toplam bin iki yüz kırk dokuz kişi-dakikanın %43.7’si sonuca varmayan zamandır. Bu oran tasarım tartışmasını değiştirir: sorun “%37 tamamlama düşük” değil, “harcanan zamanın kırk üç puanı karşılıksız” biçiminde konur.
Ekran kararı, ekran dışı aşamayı etkiler. En büyük kaybın ekran dışında olması, çözümün de ekran dışında olduğu anlamına gelmez. “Raf kodunu not et” aşamasında altmış sekiz kişiden yedisi düşüyor; geri kalanların bir kısmı da kodu yanlış not ediyor olabilir ve bunun bedeli bir sonraki aşamada ödeniyor. Kayıt ayrıntısında raf kodunun nasıl gösterildiği, rafta geçirilen 4.8 dakikayı doğrudan belirler. Harita bu bağı görünür kılar; görev envanteri kılmaz.
Bırakma Noktası ile Bulgunun Ayrılması
Tablonun söylemediği şey, on dokuz kişinin rafta niçin bulamadığıdır. Olası nedenler birbirinden çok farklı çözümler gerektirir: kitap ödünçtedir ama katalog güncel değildir, kitap yanlış rafa konmuştur, raf kodu okunmuştur ama raf düzeni anlaşılmamıştır, ya da kullanıcı doğru rafın önünde durup kitabı gözden kaçırmıştır.
Bunlardan hangisinin geçerli olduğu ölçümle değil, aşamanın ardından yapılan kısa görüşmeyle
belirlenir. İlk derste kodlanan raf-kodu-anlasilmiyor kodu on iki katılımcının yedisinde
geçmişti; bu bulgu üçüncü olasılığı destekler ama tek başına kanıtlamaz. Haritanın bulgu
sütunu, kodun hangi aşamaya ait olduğunu kaydeder — kod bir aşamaya bağlanmadığı sürece
tasarım kararına çevrilemez.
Ekran Dışı Gözlemin Etik Sınırı
Yolculuk haritası kullanıcıyı fiziksel alanda izlemeyi gerektirir ve bu, ekran kaydından farklı yükümlülükler doğurur.
Onay, izleme için ayrıca alınır. Katalog kullanımına verilen onay, kişinin raflar arasında izlenmesini kapsamaz. Eşlik eden gözlemde katılımcı gözlemcinin varlığını bilir; gizli izleme araştırma yöntemi değildir.
Üçüncü kişiler kayda girmez. Fiziksel alanda yapılan gözlemde, onay vermemiş başka kullanıcılar da görüş alanındadır. Not tutulurken yalnızca katılımcının davranışı yazılır; çevredeki kişilerin görüntüsü, sesi ya da tanımlayıcı ayrıntısı kaydedilmez.
Konum verisi en kısa sürede aşamaya indirgenir. “Üçüncü kat, 4 numaralı raf, 11.20’de” biçiminde bir kayıt kişiyi zaman ve mekânda tanımlar. Çözümlemeye giren veri aşama adı ve süredir; ham konum ve saat, toplulaştırma yapıldıktan sonra saklama sınırı içinde silinir.
Özet
- Yolculuk haritası aşama, kanal, ölçüm ve bulgu sütunlarından oluşur; ölçüm nerede kaybedildiğini, bulgu niçin kaybedildiğini söyler ve biri diğerinin yerine geçmez.
- Aşama başına kabul edilebilir görünen terk oranları çarpılır; örnek veride sekiz aşamanın hiçbiri üçte biri aşmadığı hâlde uçtan uca tamamlama %37’de kaldı.
- Örnek yolculuğun yalnızca %31.1’i ekranda geçiyor; ekran ölçümü kullanıcı arayüzü kapattığında kör olur ve oturum süresi yolculuk süresi değildir.
- En uzun aşama en kötü aşama değildir; kayıp kişi-dakika ölçütü aşamaları ortak birime çevirir ve örnek veride harcanan zamanın %43.7’si sonuca varmadı.
- Fiziksel alandaki gözlem için ayrıca onay alınır, üçüncü kişiler kayda girmez ve ham konum–saat verisi aşamaya indirgendikten sonra silinir.
Sonraki Adım
Harita kendi arayüzümüzün nerede kaybettiğini gösteriyor, ama bu kayıpların kaçınılmaz olup olmadığını söylemiyor. Aynı görevi çözen başka sistemler var ve onların hangi kararları verdiği ölçülebilir bir veridir: kaç adımda tamamlıyorlar, hangi bilgiyi hangi ekranda gösteriyorlar, hangi kararda birbirlerinden ayrılıyorlar? Sonraki ders var olan çözümlerin nasıl okunacağını ele alır: adım sayısının karşılaştırılması, yerleşik alışkanlıkların sapmadan ayrılması ve bir kararın niçin herkeste aynı olduğunun anlaşılması.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.