Kullanıcılarınız hangi hataları yapıyor ve uygulamanızı bunlarla başa çıkmak için nasıl güncelleyebilirsiniz? [kapalı]


12

Aslında bu soru, kaliteli kullanıcı deneyimini geliştirmek ve önlenebilir destek çağrılarını azaltmak için alınması gereken önlemlerle ilgilidir.


2
Şu başlığı göz önünde bulundurun: "Kullanıcılarınız hangi hataları yapıyor ve uygulamanızı bunlarla başa çıkmak için nasıl güncelleyebilirsiniz?"
Peter Boughton

Yanıtlar:


25

Doğru giriş doğrulamasının olmaması, programcı tarafından gerçekten ele alınması gerektiğinde, uygulamanızla "kötü" şeyler yapan kullanıcılara oldukça hızlı bir şekilde yönlendirme eğiliminde olan şeylerden biridir.

Kullanıcıların eğitildiği eski uygulamalar gördüm:

  • isimlere kesme işareti girmeyin
  • dışında bir sembol girmeyin a-z0-9,
  • girdikleri metinden önce veya sonra boşluk olmadığından emin olun
  • emailalana doğru biçimlendirilmiş bir e-posta adresinin girilip girilmediğini kontrol edin , aksi takdirde bu kullanıcıya yapılacak sonraki postalamalar alandakileri kullanır ve başarısız olur
  • " http://" web adreslerinin önüne yerleştirildiğinden emin olun

vs vs

Yukarıdaki sorunların tümü , bir uygulama geliştiricisi tarafından ele alınması gereken sorunlardır . Giriş doğrulamanız esas olarak "kullanıcının bu alanın hangi formatta olması gerektiğini bildiğinden ve girdiklerinin doğru olduğundan emin olun" olduğunda, beklenmedik şeyler uygulamaya giriş yapmak zorundadır. Bariz güvenlik etkileri dışında, kullanıcılar hata yapar. Programcılar olarak, en iyi ürünlerimizi, kullanıcının ne kadar uğraştıklarına bakılmaksızın, yanlış anlayamayacağından emin olmak için geriye doğru eğilerek üretiyoruz !


Bu çok sık göz ardı ediliyor ... Bugün hala bu sorunların içinde olduğumuza inanamıyorum! @
mpeterson

2
+1 çünkü gördüm. ANCAK: Bir "doğru biçimlendirilmiş e-posta adresi" doğrulamak için çok zordur fightingforalostcause.net/misc/2006/compare-email-regex.php emin ne yaptığınızı biliyorum markasını. Şirketinizin dahili olarak kullandığı e-postaların alt kümesiyle uğraşıyorsanız, bu iyi olmalı, aksi takdirde beklenenden daha fazla karmaşıklık vardır. http://Doğrulama noktası için aynı hikaye . Örnek olarak, ASDFbunu saf bir şekilde yapar ve sonuç, paketleri kullanılan etki alanlarında barındıramazsınız https://.
Inaimathi

Bu işe yaramaz ... patlama yolları olan e-postaları kabul etmez (evet, kimin umurunda olduğunu biliyorum, ancak yine de, e-postaları RFC'ye doğrulamak zor.)
Spudd86

7

Bir keresinde bir müşteri destek çağrısı aldım çünkü uygulamam kayboldu. Bunun üzerine başka bir uygulama açtıkları ortaya çıktı.

... Bu sorun değil neden kullanıcılar bilgisayar cehalet olduğu için, bir daha olmadı emin değil karar verdi app değil. Bunu düzeltmek için yapabileceğim her şey başkaları için kötü bir kullanıcı deneyimine yol açacaktır.


1
Bu yayını, uygulamalarında zorunlu "üstte kal" işlevini uygulayan tüm geliştiricilere iletin. CEO bunu istiyor olsa bile, "hayır" deme hakkına sahip olmalıyız.

7

Yazdığım neredeyse her program kesinlikle komut satırından çağrılır. Ayrıca CLI arayüzleri olarak başlayan ve hızla her şeyden çok daha fazla kabuk haline gelen bazı meraklı şeyler yazdım.

Yani, sadece bildiklerim için konuşabilirim. Komut satırı programlarıyla ilgili sık karşılaşılan bazı sorunlar şunlardır:

Çok fazla seçenek

Bir derleyici veya satır düzenleyicisi yazmıyorsanız, --helpveya /?geçildiğinde 80x25 kare arabellekte seçenekleri bir ekranla dolu tutmaya çalışın . Bundan daha fazla seçeneğe sahip olmak mükemmel, ancak bunları alt kategorilere ayırın. Örneğin

foo --help

foo --help option_name

Uzun seçenek yok

Hatırlamak çok daha kolaydır foo --attach_to [argument] --volatile --verbosehatırlaması daha foo -a [arg] -v +V. Bu her zaman mümkün değildir, ancak çoğu durumda bu mümkündür.

Giriş doğrulaması yok

Hemen hemen her platformda, argümanların ayrıştırılması ve doğrulanması söz konusu olduğunda denenmiş, test edilmiş ve doğru olan birden fazla kütüphane vardır. Hemen hemen her platformda bir CLI'den girişi doğrulayan denenmiş, test edilmiş ve gerçek bir lexer vardır. Birini, diğerini veya her ikisini kullanın. Programınız, bir kullanıcının sağladığı bir şey nedeniyle sıfıra bölünürse veya bölünürse, bu sadece utanç vericidir.

Bir lexer kadar karmaşık bir şeye ihtiyacınız olmayabilir, belki de belirli yerlerde belirli şeylerle belirli bir sırada bir şeyler bekliyorsanız, dizeyi tokenize edebilirsiniz.

Aslında bir kez tamsayı bekleniyordu ve biri f*** my lifetırnak yazdı bir hata raporu var . O programı yazmadım, miras alma konusunda talihsizlik yaşadım.

'Verbocity' düğmesi yok

Deneyimli kullanıcıların, programınızdan çoğu insanın tolere edebileceğinden daha fazla gürültü elde etmeyi kolayca keşfetmesine izin verin, ancak varsayılan olarak yalnızca ciddi ve kritik şeyleri yazdırır. straceSadece bir şeyin NULL dosya akışında çalıştığı için segfaulted olduğunu fark etmek için kaç kez ateşlemem gerektiğini söyleyemem .

Ayrıca iddiaları NDEBUG veya başka yollarla kapatmak, kullanıcının bulması için yazdırılmış veya günlüğe kaydedilmiş bir şeyle sonuçlanacak şekilde sarabilirsiniz.

Günlük dosyalarından bahsetmişken, onlara yerleştirdiğiniz her şeyin sizden başka biri için (en azından biraz) mantıklı olduğundan emin olun. Her girişin başlangıcı UNIX çağ tarihi ise, hatayı yeniden oluşturmanıza gerçekten yardımcı olmak isteyen bir kişide hayal kırıklığını artıracaksınız.

Hata ayıklama modunda 'hata arkadaşı' yok

Birçok program, programda neler olup bittiğine dair ekstra sohbet sağlayan bir çeşit 'hata ayıklama' anahtarı sunar, ancak çok azı aşağıdakileri sunar:

  • HTTP / HTTPS aracılığıyla otomatik olarak rapor göndermenin ve bir tür hizmet referans numarası almanın bir yolu
  • Bir yolu bir dosyaya faydalı bilgiler dökümü olabilir bir destek isteğine ek olarak gönderilecek

Ya da belki de insanların aşağıdakileri telefonda okuduğunu duymaktan hoşlanıyorsunuz:

Sıfır eff'de beklenmedik bir durum var oh dört sıfır oh .... Tamam, bunu size geri okudum ...

Aşırı karmaşık yapılandırma dosyaları

Bir dizi sözdizimsel şekeri canlandırmak için bir yapılandırmayı bir bahane olarak ayrıştırma ihtiyacını haklı çıkarmayın. Ayrıştırma sırasında fazladan çalışma anlamına gelse bile, insanların gerçekten bildiği bir biçimi kullanmaya çalışın. INI stil biçimini mümkün olduğunca kullanmaya çalışıyorum. Basit bir anahtar-> değer sözlüğü ile neler yapabileceğinize şaşıracaksınız.

Yapılandırma dosyası yok

Her iki görev için de bir araç olması amaçlanmadıysa, insanların yalnızca programınızı kullanmaları için kabuk komut dosyaları veya toplu dosyalar yazmalarına izin vermeyin. Bana her zamanki seçeneklerimi içeren bir dosyaya işaret etmem ve birkaç ek argüman sunmam için bir araç ver.

'Islak zemin' işareti yok

Bazı özellikler kullanıcıyı rahatsız edebilirse (belki de ileri düzey kullanıcılar için oradadır), açıkça bu şekilde işaretleyin. Ayrıca, birisi şişman parmaklar bir şey girerse veya unutursa, çevrimiçi belgelere çok kolay bir bağlantı yazdırmayı programladınız mı? Programınızı KVM aracılığıyla kullanan ve kesip yapıştıramayan biriyle uğraşıyor olabilirsiniz.

Mümkün olduğunda (bu, giriş doğrulamasıyla çakışır) Google uygulamasını kullanın:

Şunu mu demek istedin foo --bar FILENME, sadece foo --bar yazdınız

Yıkıcı talimatlardan bir çıkış yolu sun

Amaç, kullanıcıya neden işe yaramadığını ve birkaç kez daha denemelerini sağlamaktır. Örneğin, 'nagging'i kapatan bir anahtara izin verin -Yveya /Ybaşka türlü basitçe' şişman parmakları 'olan biri için bir çıkış yoluna izin verin.

Muhtemelen birkaç şey unutuyorum. Çoğu insanın hata yapmasını önleyebilecek kadar sezgisel bir şey için 'düşük seviye' arayüzünü yapmak çok, çok zor olduğu için sık sık ilgileniyorum.


3

Msgstr "Bu dosyayı / kaydı silmek istediğinizden emin misiniz? Evet / Hayır". Evet'i tıklattıktan sonra "yanlışlıkla" kırmızı sil düğmesini tıkladığını ve bu verilere geri ihtiyacı olduğunu belirten bir çağrı aldım :)


7
Neden "tırnak". Sadece sizi arayabilmeleri için kasten evet'i tıkladıklarını mı söylüyorsunuz?
Peter Boughton

1
Geri alınabilecek "yumuşak silmeler" kullanılarak kolayca çözülebilir.
Robert Harvey

1
evet geri alınabilirler, ama neden ilk etapta silebilirsiniz? Bu yüzden o uyarıyı oraya koydum, silmek istediklerini iki kez onaylamalarını
istedim

2
@Quamis: İletişim kutuları birçok kullanıcı için o kadar sinir bozucu hale geldi ki, sadece iletişim kutusunu kullanmak için Tamam, Evet, her neyse. Bu yüzden birçok yeni sistem onay olmadan yumuşak bir silme kullanır ve kullanıcıya geri alma yolu verir. Örneğin, çoğu posta sistemi bu şekilde çalışıyor.
Robert Harvey

1
@Robert Harvey - Anlıyorum ve evet, sert bir silme işleminin belirli bir nedeni bu. Bu özel örnek, tutma politikalarını izleyerek çözülebilir, ancak muhtemelen insanların "Sil" e bastığı ve söz konusu işlemin sonucunun gerçek bir silme olmasını beklediği durumlar vardır. Yumuşak silme yolunu kendim tercih ediyorum, ama benim amacım bazen bir seçenek olmadığıydı.
Inaimathi

3

Belirli bir mola / düzeltme örnekleri almak gibi bunu gerçekleştirmek kadar önemli değil gibi hissediyorum:

  • Kullanıcılar kılavuzunuzu okumaz veya eğiticilerinizi izlemez. Yazılımınızı keşif yoluyla öğrenirler.

Eğer bu keşif yoluyla bir şeyleri kırarlarsa, bir programcı olarak onları tehlikeye karşı uyarmak veya ilk etapta olmasını önlemek sizin görevinizdir. Şimdi nerede gördüğümü hatırlayamıyorum, ama aklımın arkasında her zaman yazılımımın kullanıcısı için " doğru olanı kolaylaştırmayı " deniyorum .

Örneklerde ısrar ediyorsanız:

  • Kullanıcı, entegrasyon kodunu kıran / girdi doğrulaması yaparak düzeltilen küçük harfli bir ad girebildi
  • Kullanıcı bir eylem gerçekleştirdikten sonra yanlış düğmeyi tıklatabildi / yalnızca doğru düğmeleri göstererek düzeltildi.
  • Kullanıcı X'i yapmak üzere olduklarını belirterek yanlışlıkla / sabit olarak X yapabildi.

Bunun nereye gittiğini görüyor musunuz? :)


2
Uyarılar sadece en yıkıcı operasyonlar için ayrılmalıdır ve bunlardan herhangi birine sahip olmaktan kaçınmalısınız, geri alma ÇOK ÇOK DAHA İYİ, insanlar artık kutuyu okumadan 'Tamam'ı tıklamak için eğitildi, şimdi kas hafızası, kaçının kullanıcının bu etkiden kaçınmak için her türlü düzenli temelde yapabileceği herhangi bir işlem için.
Spudd86

3

İşte bu hafta duyduğum. Bir kullanıcı "olay gerçekleştiğinde bana bildirim gönder" özelliğini ister. Yeterince basit ve geliştirici devam eder ve uygular. Elbette, ilk soru "bu bildirimle neyi ele almaya çalışıyoruz?" Olmalıdır. Buna girmeyeceğim. Birkaç gün sonra kullanıcı geliştirici tarafından durdurulur ve "Bu bildirimi aldım. Bununla ne yapmam gerekiyor?" Diye sorar.

Bu Dilbert çizgi romanını hatırladım ve geliştiriciye "kullanıcının bu bildirimle ne yapması gerektiğini anlamak için bir uygulama yazın" ı önerdim.

Mpeterson'un dediği gibi, kullanıcı kendi uzmanlık alanında çok rekabetçi. Sadece bir yazılım geliştiricisi ya da tasarımcısı gibi düşünmüyorlar.


2

Kullanıcıların aptal olduğunu düşünmüyorum. Sizin veya herhangi bir programı kullanmak istemiyorlar. Tek istedikleri şeylerini yapmak. Onlara yardım et ve yol boyunca onlara zarar gelmesini önle.


1
Soruyu anlamıyorsun. Yazdıklarımı başka bir deyişle tekrarlıyorsun. Bu sorunun cevabı değil. Zararları önlemek için hangi uygulamaları yapabiliriz?
Maniero

1
Soruyu iyi anlıyorum, teşekkürler. Soru doğru olmayan bir şey içeriyor: "kullanıcı aptal".
LennyProgrammers

1
Hayır. Bu yanlış anlaşıldı. Teklifiniz mevcut değil!
Maniero

1
Tamam, insanlar aptalca şeyler yapmazlar, dünya mükemmel :-) Bu, bu görüşler hakkındaki çıkarımdır.
Maniero

1
Zor duygular yok, tamam mı? ;)
LennyProgrammers

1

İyi bir kullanıcı arayüzüne sahip olmak ve yeterli bir öğrenme deneyimi sağlamak, kullanıcıların kötü şeyler yapmasını önlemeye doğru uzun bir yol kat eder.

  • İyi kullanıcı arayüzleri sürtünmesiz olmalıdır.

    Bir silme işlemini onaylamak, silme işlemini gerçekleştirmek ve geri almanın bir yolunu sunmak için bir iletişim kutusu (pahalı bir işlem ve kullanıcıların bir süre sonra yok saydığı bir işlem) açmak yerine.

  • İyi kullanıcı arayüzleri bulunabilir olmalıdır.

    Microsoft Office'teki şerit, Word'ün eski kullanıcılarını yollarını değiştirmeye zorladığı için çok fazla plak alsa da, şerit bir arabirimi nasıl keşfedilebilir (yani kolay keşfedilebilir) haline getirebileceğinizin parlak bir örneğidir.

  • İyi kod gibi iyi kullanıcı arayüzleri açıklayıcı olmalıdır.

    Kimse kılavuzu okumuyor. Kullanıcılarımı okumak için tek elim, yazılımın adım adım izlenecek yollarını içeren bir PowerPoint sunumuydu. Bunların Camtasia gibi video araçlarıyla yapıldığını gördüm, ancak PowerPoints daha iyi çünkü adımlar arasında kolayca geri ve ileri gidebilirsiniz.


-1

Kullanıcı hata yapmaz. Hatalar, kullanılabilir bir arayüz oluşturamayan programcıda yatmaktadır.

Her sürümde kullanılabilirlik testleri de öyle!


2
Ailemle birlikte yaşadığımda, babam bana e-postasını her kontrol ettiğinde neden internet bağlantısı kesildiğini sordu (evet, çevirdiğimizde Taş Devri'ndeydi - ben sadece o yaşlıyım ). Bana göstermesini istedim - tahmin et ne gördüm? Outlook Express 'Gönder ve Al iletişim kutusu açıldığında, gönderme ve alma işleminden sonra bağlantıyı kesme seçeneği işaretlendi. Bence her şey kullanıcı üzerinde ...
JohnL

3
Aslında John değil .. Eğer görünüm programcıları bunu düşünmüş olsaydı, o CheckBox'ı oraya yerleştiremezlerdi ya da daha anlamlı bir etiket vermezlerdi. Baban bir aptal değil: bu özellik üzerinde düşünülmedi veya kullanılabilirlik testlerinden geçmedi. Yazılım bizi aptal hissettirmek için burada değil! :)
Arcturus

1
-1: Kullanıcılar yapmak daha iyi etiketleme gibi şeylerle önlenebileceği bile yapmak hataları. Mesele şu ki, bu soru belirli çözümleri olan belirli sorunları sormaktır. Sadece "test et" demek kötü bir cevaptır.
Maxpm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.