---
title: 'Rakip ve Mevcut Durum Çözümlemesi'
source: 'https://academia.sh/tr/kurslar/kullanici-deneyimi/rakip-ve-mevcut-durum-cozumlemesi'
course: 'Kullanıcı Deneyimi ve Davranış Tasarımı'
language: tr
updated: '2026-08-17T18:09:38+00:00'
license: 'CC BY-SA 4.0'
---

# Rakip ve Mevcut Durum Çözümlemesi

Var olan çözümlerin karar karar okunması; yerleşik alışkanlığın benimseme oranıyla saptanması, sapmanın bedelinin adım sayısıyla ölçülmesi ve inceleme sırasında uyulan sınırlar.

Yolculuk haritası kendi arayüzümüzün nerede kaybettiğini gösterdi ama bu kayıpların
kaçınılmaz olup olmadığını söylemedi. Aynı işi yapan başka sistemler var ve verdikleri
kararlar dışarıdan gözlenebilir. Bu ders o gözlemi bir veri kümesine çevirir.

Amaç taklit değil. Var olan çözümlerin okunması iki ayrı bilgi verir. Birincisi, hangi
kararların **yerleşik** olduğu: bütün sistemlerde aynı biçimde çözülmüş bir sorun, kullanıcının
zaten öğrendiği bir örüntüdür ve ondan sapmak öğrenme maliyeti doğurur. İkincisi, hangi
kararların **açık** olduğu: sistemlerin birbirinden ayrıldığı yerler, tasarımcının gerçekten
karar vereceği yerlerdir.

## Sistemleri Karara Ayırmak

Çözümleme, "hangisi daha iyi" sorusuyla değil, "hangi kararlar alınmış" sorusuyla başlar.
Her sistem bir karar listesine indirgenir ve liste bütün sistemler için aynıdır; ancak o
zaman karşılaştırılabilir.

Karar, gözlenebilir ve iki değerli olmalıdır: sistemde var mı, yok mu. "Arama iyi çalışıyor"
bir karar değil, bir yargıdır. "Kayıt açıldıktan sonra listeye dönüldüğünde arama terimi
korunuyor" bir karardır; bakılır ve yanıtı yazılır.

```js
// mevcut-durum.mjs — yerlesik aliskanliklarin saptanmasi ve adim sayisi karsilastirmasi

// A: su anki katalog arayuzumuz. B-E: ayni isi yapan, incelenen dort sistem.
// (ders icin kurulmus veri)
const SISTEMLER = ["A", "B", "C", "D", "E"];
const KARARLAR = [
  { ad: "arama alani ust orta", var: ["A", "B", "C", "D", "E"] },
  { ad: "odunc al kayit ayrintisinda", var: ["A", "B", "C", "D", "E"] },
  { ad: "geri donuste arama korunur", var: ["B", "C", "D", "E"] },
  { ad: "sonuc sayisi gosterilir", var: ["A", "B", "D", "E"] },
  { ad: "listede rafta mi rozeti", var: ["B", "C", "D"] },
  { ad: "daraltmalar solda", var: ["A", "B", "D"] },
  { ad: "okuma listesi", var: ["A", "C", "E"] },
  { ad: "konu agacindan gezinme", var: ["C", "D"] },
  { ad: "raf kodu listede", var: ["C"] },
  { ad: "kayit yeni sekmede acilir", var: ["E"] },
];

const N = SISTEMLER.length;
const sinif = (o) => (o >= 0.8 ? "yerlesik" : o >= 0.4 ? "bolunmus" : "ayirt edici");

console.log("karar                        benimseyen  oran  sinif        bizde");
const sapmalar = [];
for (const k of KARARLAR) {
  const oran = k.var.length / N;
  const bizde = k.var.includes("A");
  if (sinif(oran) === "yerlesik" && !bizde) sapmalar.push(k.ad);
  console.log(
    `${k.ad.padEnd(28)} ${k.var.join("").padEnd(11)} ${oran.toFixed(2)}  ${sinif(oran).padEnd(12)} ${bizde ? "var" : "YOK"}`
  );
}
console.log(`\nyerlesik aliskanliktan sapma: ${sapmalar.length ? sapmalar.join(", ") : "yok"}`);

// Ayni gorevin her sistemde kac ekran adimiyla tamamlandigi (sayarak gozlendi)
const GOREVLER = [
  { ad: "bilinen kaydi bul ve odunc al", adim: { A: 7, B: 5, C: 6, D: 5, E: 8 } },
  { ad: "konu tara ve uc kaydi karsilastir", adim: { A: 13, B: 9, C: 11, D: 12, E: 10 } },
];
const ortanca = (dizi) => {
  const s = [...dizi].sort((x, y) => x - y);
  const o = s.length >> 1;
  return s.length % 2 ? s[o] : (s[o - 1] + s[o]) / 2;
};

console.log("\ngorev                               " + SISTEMLER.map((s) => s.padStart(2)).join(" ") + "  en az  ortanca  bizim farkimiz");
for (const g of GOREVLER) {
  const degerler = SISTEMLER.map((s) => g.adim[s]);
  const ort = ortanca(degerler);
  const fark = g.adim.A - ort;
  console.log(
    `${g.ad.padEnd(34)} ${degerler.map((v) => String(v).padStart(2)).join(" ")}  ` +
      `${String(Math.min(...degerler)).padStart(5)}  ${String(ort).padStart(7)}  ${(fark >= 0 ? "+" : "") + fark} adim`
  );
}

// Karsilastirma gorevinin adim adim modeli: durum korunuyor mu korunmuyor mu
function adimSayisi(durumKorunur, kayitSayisi) {
  let a = 3; // terimi yaz, aramayi calistir, daraltmayi uygula
  for (let i = 0; i < kayitSayisi; i++) {
    a += 2; // kaydi ac, listeye don
    if (!durumKorunur && i < kayitSayisi - 1) a += 2; // terimi yeniden yaz, daraltmayi yeniden uygula
  }
  return a;
}
console.log("\nkarsilastirma gorevi modeli (3 kayit)");
console.log(`  durum korunuyor  : ${adimSayisi(true, 3)} adim`);
console.log(`  durum korunmuyor : ${adimSayisi(false, 3)} adim`);
console.log(`  farkin kaynagi   : ${adimSayisi(false, 3) - adimSayisi(true, 3)} adim, tek bir karardan`);
console.log(`  gozlenen A       : ${GOREVLER[1].adim.A} adim,  gozlenen en az (B): ${Math.min(...SISTEMLER.map((s) => GOREVLER[1].adim[s]))} adim`);

// Kayit sayisi arttikca fark nasil buyuyor
console.log("\nkarsilastirilan kayit  korunur  korunmaz  fark");
for (const k of [2, 3, 5, 8]) {
  const e = adimSayisi(true, k), h = adimSayisi(false, k);
  console.log(`${String(k).padStart(21)}  ${String(e).padStart(7)}  ${String(h).padStart(8)}  ${h - e}`);
}
```

```
karar                        benimseyen  oran  sinif        bizde
arama alani ust orta         ABCDE       1.00  yerlesik     var
odunc al kayit ayrintisinda  ABCDE       1.00  yerlesik     var
geri donuste arama korunur   BCDE        0.80  yerlesik     YOK
sonuc sayisi gosterilir      ABDE        0.80  yerlesik     var
listede rafta mi rozeti      BCD         0.60  bolunmus     YOK
daraltmalar solda            ABD         0.60  bolunmus     var
okuma listesi                ACE         0.60  bolunmus     var
konu agacindan gezinme       CD          0.40  bolunmus     YOK
raf kodu listede             C           0.20  ayirt edici  YOK
kayit yeni sekmede acilir    E           0.20  ayirt edici  YOK

yerlesik aliskanliktan sapma: geri donuste arama korunur

gorev                                A  B  C  D  E  en az  ortanca  bizim farkimiz
bilinen kaydi bul ve odunc al       7  5  6  5  8      5        6  +1 adim
konu tara ve uc kaydi karsilastir  13  9 11 12 10      9       11  +2 adim

karsilastirma gorevi modeli (3 kayit)
  durum korunuyor  : 9 adim
  durum korunmuyor : 13 adim
  farkin kaynagi   : 4 adim, tek bir karardan
  gozlenen A       : 13 adim,  gozlenen en az (B): 9 adim

karsilastirilan kayit  korunur  korunmaz  fark
                    2        7         9  2
                    3        9        13  4
                    5       13        21  8
                    8       19        33  14
```

## Üç Karar Sınıfı

Benimseme oranı kararları üç sınıfa ayırır ve her sınıf ayrı bir tasarım tutumu gerektirir.

**Yerleşik karar (0.80 ve üstü).** Arama alanının üst ortada durması ve ödünç alma eyleminin
kayıt ayrıntısında bulunması beş sistemin beşinde de aynı. Bu kararlar tartışmaya açılmaz;
kullanıcı bunları başka yerlerde öğrenmiştir ve arayüz o öğrenmeyi devralır. Yerleşik
karardan sapmak yasak değildir, ama sapmanın karşılığında ölçülebilir bir kazanç
gösterilmelidir.

**Bölünmüş karar (0.40 – 0.80).** Rafta olma bilgisinin listede gösterilmesi, daraltmaların
konumu, okuma listesinin bulunması: sistemler ikiye ayrılıyor. Bu kararlar gerçek tasarım
kararlarıdır ve kendi kullanıcı verimizle çözülürler. Bölünmüş bir kararda "herkes böyle
yapıyor" savı kullanılamaz, çünkü herkes böyle yapmıyor.

**Ayırt edici karar (0.40 altı).** Raf kodunun listede gösterilmesi yalnızca C'de, kaydın
yeni sekmede açılması yalnızca E'de var. Bu kararlar ya bir üstünlüktür ya da denenip
yaygınlaşmamış bir seçimdir; ikisini ayırt etmenin tek yolu, o sistemin niçin böyle yaptığını
kendi bağlamında sormaktır. Kopyalanmaya en uygun görünen kararlar bunlardır ve en riskli
olanlar da bunlardır.

## Sapmanın Bedeli Ölçülebilir

Karar listesinde tek bir yerleşik alışkanlık sapması var: geri dönüşte aramanın korunması
dört sistemde varken bizimkinde yok. İlk derste on iki görüşmenin dördünde geçen
`geri-donusta-arama-kayip` kodu ile aynı olguya bakıyoruz; şimdi bedeli sayıya bağlanıyor.

Adım modeli, üç kaydı karşılaştırma görevini iki koşulda kuruyor. Durum korunduğunda görev
dokuz adım, korunmadığında on üç adım. Fark dört adım ve tamamı tek bir karardan geliyor.
Gözlenen sayılar modeli doğruluyor: bizim arayüzümüz on üç adım, en az adımla tamamlayan
sistem dokuz adım.

Son tablo asıl kısıtı gösteriyor. Fark sabit değil; karşılaştırılan kayıt sayısıyla birlikte
büyüyor. İki kayıtta iki adım, üç kayıtta dört adım, sekiz kayıtta on dört adım. İkinci
derste kurulan "konu tarayan" profili tam olarak bu görevi yapıyor ve oturumu yirmi bir
buçuk dakika sürüyor. Sapmanın bedelini en çok ödeyen kullanıcı, arayüzü en çok kullanan
kullanıcıdır.

Buradan çıkan kural, karşılaştırmanın nasıl okunacağını belirler: **adım sayısı tek bir
görev için değil, görevin büyüklük aralığı için hesaplanır.** Küçük örnekte önemsiz görünen
bir fark, gerçek kullanımda doğrusal olarak büyüyebilir.

## Ortanca ile En İyinin Farkı

Tabloda iki karşılaştırma ölçütü var ve ikisi ayrı sorulara yanıt veriyor. Ortancaya göre
fark, arayüzün alışılmış olandan ne kadar uzaklaştığını söyler; bilinen kaydı bulma görevinde
bir adım, karşılaştırma görevinde iki adım. En az adımla tamamlayan sisteme göre fark ise
ulaşılabilir sınırı söyler: karşılaştırma görevinde dört adım.

Hedef olarak ortanca seçilirse arayüz ortalama kalır. En iyi seçilirse hedef nettir ama o
sistemin başka kısıtları olabilir; sekiz adımla tamamlayan E sisteminin kaydı yeni sekmede
açması, bu görevde onu yavaşlatan ama başka bir görevde işine yarayan bir karardır. Bir
sistemin bir görevdeki üstünlüğü, bütün kararlarının doğru olduğu anlamına gelmez.

## İncelemenin Sınırları

Var olan sistemleri incelemek, başkalarının arayüzüyle ve çoğu zaman başkalarının verisiyle
temas etmektir.

**Sıradan kullanıcı olarak incelenir.** Karar listesi, herkese açık arayüzde gözlenebilen
şeylerden oluşur. Kapalı bölümlere erişmek için sahte üyelik oluşturmak, başka bir kurumun
kayıtlarını toplu indirmek ya da erişim kısıtlarını aşmak inceleme değildir ve çözümlemenin
dışındadır.

**Başkasının kullanıcısı gözlenecekse aynı kurallar geçerlidir.** Bir başka kütüphanenin
kullanıcılarını izlemek, kendi katılımcılarımızı izlemekle aynı onay ve kimliksizleştirme
yükümlülüğünü doğurur; kurumun izni ayrıca alınır.

**İçerik değil karar aktarılır.** Bir sistemin kayıt açıklamaları, sınıflandırma verisi ya da
metinleri o kurumun emeğidir. Çözümlemeden alınan şey "arama terimi korunuyor" bilgisidir,
metnin kendisi değil.

**Karar listesi kaynağıyla birlikte saklanır.** Hangi sistemde, hangi tarihte, hangi görev
denenerek gözlendiği yazılır. Arayüzler değişir; tarihi olmayan bir karar listesi bir yıl
sonra doğrulanamaz.

## Özet

- Çözümleme "hangisi daha iyi" sorusuyla değil, bütün sistemler için ortak ve iki değerli bir
  karar listesiyle yapılır.
- Benimseme oranı kararları yerleşik, bölünmüş ve ayırt edici olarak ayırır; yerleşikten
  sapmak ölçülebilir bir kazanç gerektirir, bölünmüş kararlar kendi verimizle çözülür.
- Örnek veride tek yerleşik sapma "geri dönüşte aramanın korunmaması"; adım modeli bu tek
  kararın üç kayıtlık karşılaştırmada dört adım eklediğini ve gözlenen sayılarla uyuştuğunu
  gösterdi.
- Sapmanın bedeli görev büyüklüğüyle birlikte artar: sekiz kaydın karşılaştırıldığı bir
  oturumda fark on dört adıma çıkıyor ve bedeli en çok arayüzü en çok kullanan öder.
- İnceleme herkese açık arayüzle sınırlıdır; sahte üyelik, toplu veri indirme ve içerik
  aktarımı çözümlemenin dışındadır ve karar listesi tarihiyle birlikte saklanır.

## Sonraki Adım

Beş ders boyunca veri biriktirildi: on kod, üç profil, yedi görev, bir yolculuk haritası ve
bir karar listesi. Bu birikim henüz bir tasarım işi değil, bir malzeme yığınıdır. Sonraki
ders yığını tek bir cümleye indirger: problem tanımı. Bulguların hangi ölçütle
sıralanacağını, bir problem tanımının hangi parçalardan oluştuğunu ve içine çözümün
sızmasının niçin en sık yapılan hata olduğunu ele alır.
