Yapay Zekayla Yaptığınız Uygulama Neden Yavaş Hissettiriyor (Aslında Öyle Olmasa Bile): Bekleme Süresi Yanılsaması
Bir uygulama, bekleme sırasında kullanıcıya geri bildirim verilmediğinde yavaş hisseder — yüklemenin gerçekten uzun sürmesinden değil. Çözüm; 100 ms içinde geri bildirim, boş ekran yerine iskelet (skeleton) yer tutucular ve üç saniyeyi aşan beklemeler için ilerleme göstergeleridir.
Uygulamanız veriyi 1,2 saniyede getiriyor. İnsan gözü 100 milisaniyeyi algılayabiliyor. İnsan algısından 12 kat hızlısınız ve yine de yavaş hissettiriyor. Neden?
Algılanan gecikme — bir uygulamanın onu kullanan kişiye ne kadar yavaş hissettirdiği — gerçek yükleme süresiyle pek az ilgilidir. Önemli olan, kullanıcının beklerken ne olduğunu anlayıp anlamadığıdır. Yavaş ve hızlı birer yalandır; gerçek olan geri bildirimdir.
Uygulamam Hızlı Olduğu Halde Neden Yavaş Hissettiriyor?
Bir uygulama, beklemenin gerçek süresinden değil, bekleme sırasında ne olduğundan dolayı yavaş hisseder. Bunu üç spesifik boşluk yaratır: bir şey yüklenirken geri bildirim olmaması, görünür bir düzen yerine boş ekran ve uzun işlemlerde ilerleme hissinin bulunmaması.
1. Bekleme sırasında geri bildirim yok.
Bir form gönderilir. Buton pasif hale gelir (standart uygulama, çift tıklamayı önler). Başka bir şey olmaz. Bir saniye geçer. İki saniye. Kullanıcı işlemin devam edip etmediğini, takılıp kalıp kalmadığını, internetinin kesilip kesilmediğini ya da uygulamanın çöküp çökmediğini bilmez. İki saniyelik sessizlikten sonra insan beyni sekmeyi kapatmayı düşünmeye başlar.
Bu yüzden 1,2 saniye gerçek bir hesaplama için makul olsa bile yavaş hisseder. Kullanıcının kaygısı sessizliği doldurur.
2. Boş ekranlar.
Bir sayfa yüklenir. Başlık görünür. Ardından altındaki liste getirilirken 800 milisaniye boyunca hiçbir şey olmaz. Sayfa bozuk görünür — eksik düzen, yer tutucu yok, sadece… yükleniyor. 800 milisaniyelik bir bekleme, algılanan 5 saniyelik bir duraklamaya dönüşür; çünkü kullanıcının gözü eksikliği başarısızlık olarak okur.
3. İlerleme hissi yok.
Uzun bir işlem başlar. “Yükleniyor…” yazısı belirir. Sonra? Yüzde 10’da mı yüzde 90’da mı? Kullanıcının kahve içecek vakti var mı yoksa üç saniyeye biter mi? İlerlemenin yokluğu kaygı yaratır. Hızlı + esrarengiz = yavaş + şeffaftan daha yavaş hisseder.
Yavaş Hissettiren Bir Uygulamayı Nasıl Düzeltirsiniz?
Yukarıdaki üç nedene karşılık üç çözüm var: kullanıcı harekete geçtiği anda geri bildirim göstermek, veri yüklenirken boş alanı bir yer tutucuyla doldurmak ve birkaç saniyeden uzun süren her şey için gerçek ilerleme göstermek.
Çözüm 1 — Anında Bir Şey Gösterin
Veriyi çekmeye başlamadan önce bir yükleme durumu koyun. Bir iskelet ekran, bir spinner, bir “düşünüyor…” mesajı. “Dokunuşunu aldım, üzerinde çalışıyorum” diyen her şey işe yarar.
Örnek: Bir rezervasyon formu gönderilir. Buton metni anında “Uygunluk kontrol ediliyor…” olarak değişir ve küçük bir spinner gösterir. Ancak o zaman veri çekme işlemi başlar. Gerçek iş 1,2 saniye sürse bile kullanıcı, eylemine anında bir yanıt görür. Bu anlık geri bildirim, beklemeyi kısa hissettirir.
Builder’a isteğiniz: Kullanıcı ana butona tıkladıktan sonra, isteği göndermeden önce butonun metnini değiştirin ve bir yükleme durumu ekleyin. Tek bir talimattır.
Test: Telefonunuzda eylemi tetikleyin. Geri bildirim 100 milisaniyeden kısa sürede görünmeli. Yükleme durumundan önce 500 milisaniyelik bir sessizlik görüyorsanız, kullanıcı suçu uygulamaya atacaktır.
Çözüm 2 — Boş Alanı Doldurun
“Yükleniyor…” yazan boş beyaz bir ekran yerine, gelecek olanın şeklini gösterin.
Gerçek bir örnek: Bir düğün planlayıcısının rezervasyon uygulaması müsait tarihlerin listesini getiriyordu. Boş bir sayfa yerine, tarihlerin geleceği yerde beş gri dikdörtgen — yer tutucu satırlar — gösterin. Gerçek tarihler yüklendiğinde bunların yerini alsın. Kullanıcının beyni bunu “anında” olarak algılar, çünkü sayfa hiçbir zaman eksik görünmemiştir.
Builder’a isteğiniz: Gerçek veriyi çekmeden önce liste veya tablonun bir yer tutucu (iskelet) versiyonunu ekleyin. Veri geldiğinde iskeleti gerçek içerikle değiştirin. Evet, bu inşa edilecek bir parça daha demek. Algılanan bekleme süresini yarıya indirdiği için buna değer.
Test: Sayfayı yavaş bir bağlantıda (mobil, 4G’ye kısıtlanmış) yükleyin. Boş bir sayfa mı görüyorsunuz yoksa bir şekil mi? Şekil kazanır.
Çözüm 3 — İlerleme Gösterin
Üç saniyeden uzun süren işlemler için ne kadar ilerlediğinizi gösterin.
Gerçek bir örnek: Bir form, 500 satırlık veriyi bir e-tabloya aktarıyordu. Bu 4 saniye sürüyor. İlerleme olmadan: “Aktarılıyor…” (15 saniye gibi hissettirir, kullanıcı iptal eder). İlerlemeyle: “Satır 127/500 aktarılıyor” (her 200 milisaniyede güncellenir, gerçek iş değişmediği halde 2 saniye gibi hissettirir).
Dürüst uyarı: Ne kadar süreceğini gerçekten bilmiyorsanız, ilerleme çubuğunu sahtelemeyin. Yüzde 67’de takılıp kalan sahte bir çubuk, dürüst bir “çalışıyor” geri bildiriminden daha fazla güven kırar. Gerçek ilerleme (hesaplayabiliyorsanız) her zaman sahte ilerlemeye üstün gelir.
Builder’a isteğiniz: 2 saniyeyi aşan her işlem için ilerleme güncellemeleri yayınlayın. Dosya yüklemede kaç MB’ın gönderildiğini gösterin. Liste getirmede “50 öğe yüklendi, devamı getiriliyor…” gösterin. Toplamı bilmeseniz bile, bir şeyin gerçekleştiğini bilmek algıyı değiştirir.
Test: Ağınızı 3G’ye yavaşlatın ve izleyin. Takılmış gibi mi hissettiriyor yoksa ilerliyor gibi mi?
Uygulamanızın Yavaş Hissettirip Hissettirmediğini Nasıl Test Edersiniz?
Yabancı Testi’ni uygulayın: uygulamanızı başka birinin telefonunda açın, sizin yardımınız olmadan ana eyleme dokunmalarına izin verin ve hızlı mı yavaş mı hissettirdiğini sorun.
Yavaş derlerse, şu üç şeyi kontrol edin:
- 100 milisaniye içinde geri bildirim gördüler mi? (metin değişimi, spinner, durum değişikliği)
- Beklerken sayfanın şeklini gördüler mi? (iskelet, yer tutucu, herhangi bir şey)
- Ne kadar ilerlendiğini biliyorlar mıydı? (3 saniyeyi aşan beklemeler için)
Bunlardan herhangi biri “hayır” ise önce onu düzeltin.
Hız bir sayı değildir. Sıfır geri bildirimli 1,2 saniyelik bir API çağrısı, her yarım saniyede bir ilerleme gördüğünüz 3 saniyelik bir işlemden daha yavaş hisseder. Fark uygulamada değil — uygulamayla onu kullanan kişi arasındaki konuşmadadır.
Geri bildirimi düzeltin. İnsanlar neler olduğunu anladıklarında yavaşlıktan şikayet etmeyi bırakır.