۱۰ اصل برای داشتن یک رابط کاربری خوب

نرم‌افزار ساخته فکر ماست. ارتباط کاربران نرم‌افزار با فکر ما، در قالب رابط کاربری است. رابط کاربری خوب چه ویژگی‌هایی داره؟

یک قول قدیمی

وقتی درباره تست جوئل می‌نوشتم، در توضیحات مربوط به کاربردپذیری راهرویی قول دادم که درباره مواردی که به ایجاد یک UI خوب نرم‌افزاری می‌انجامد یک سری نوشته بنویسم. حالا بعد از نزدیک به یک سال و سه ماه از آن نوشته، از خلاصه اصول کاربردی برای داشتن یک UI خوب به روایت جیکوب نیلسن برایتان خواهم گفت. اگر از خوانندگان قدیمی وبلاگ آٰرایه باشید، احتمالاً آقای نیلسن را از نوشته مرتبط با قانون تجربه اینترنتی جیکوب به یاد دارید.

چطور نرم‌افزاری بسازیم که کاربران بتوانند با آن ارتباط برقرار کنند؟ این دغدغه مهم همه تولیدکنندگان نرم‌افزار است. در بازار رقابتی امروز، خلق تجربه کاربری مناسب یکی از ارزشمندترین دارایی‌هایی است که یک تولیدکننده نرم‌افزار می‌تواند داشته باشد. برای دستیابی به گنج  مشتریان وفادار باید ابتدا بیاموزیم که چطور می‌توان یک سیستم تعاملی خوب ایجاد کرد. آقای جیکوب نیلسن ۱۰ اصل زیر را برای ایجاد یک رابطه موفق بین انسان و ماشین بیان می‌کند:

اصل اول: شفافیت وضعیت سیستم

سیستم همواره باید از طریق بازخوردهای متناسب در زمان منطقی، کاربر را از اتفاقاتی که در حال وقوع است آگاه کند.

این اصل به اندازه کافی گویاست، به یاد داشته باشیم که اغلب انسان‌ها، در مواجهه با چیزهایی که نمی‌توانند پیش‌بینی یا کنترل کنند عصبی یا هراسان می‌شوند.

اصل دوم: هماهنگی بین سیستم و دنیای واقعی

سیستم باید به زبان کاربران صحبت کند،‌ با کلمات و عبارات و ایده‌های نزدیک به ذهن کاربران به جای استفاده از عبارات سیستم محور. استفاده از کنوانسیون‌های دنیای واقعی، باعث می‌شود اطلاعات به صورت طبیعی و منظم ارائه شوند.

در توضیح این اصل شاید بهتر باشد به آخرین پیام‌هایی که به عنوان برنامه‌نویس در برنامه نوشته‌اید فکر کنید. چند درصد آن‌ها برای افراد غیر متخصص قابل فهم هستند؟ مثلاً پیغام «مشکل در ارتباط با سرور» را در نظر بگیرید، این پیغام برای کسی که نمی‌داند «سرور» چیست چه معنایی دارد؟

اصل سوم: کنترل و آزادی کاربر

بعضی اوقات کاربران، در انتخاب کاری که با سیستم می‌خواهند انجام دهند اشتباه می‌کنند و نیاز به یک خروجی اضطراریمشخص دارند تا بدون دیالوگ اضافی با سیستم، بتوانند از وضعیت ناخواسته فعلی خارج شوند. لغو کار قبلی (undo) و انجام مجدد آن (redo) را پشتیبانی کنید.

اصل چهارم: ثبات و استانداردها

کاربران نباید درگیر کلمات، شرایط یا کارهای به ظاهر متفاوتی که معنی یکسانی دارند بشوند.

تفسیر بهتر این اصل این است که اگر کلمه‌ یا آیکن یا کاری را به شکل مشخصی تعریف می‌کنید در تمام سیستم نحوه استفاده از آن را به یک شکل قرار دهید.

اصل پنجم: جلوگیری از خطا

یک طراحی محتاطانه که جلوی خطاهای احتمالی را می‌گیرد خیلی بهتر از پیغام‌های خطای خوب است. یا شرایط خطازا را حذف کنید یا این شرایط را برای کاربران با قرار دادن گزینه‌های انتخاب پیش از انجام کار، چک کنید.

اصل ششم: شناسایی بهتر از به خاطر آوردن

با شفاف و قابل دسترس کردن گزینه‌ها، اشیا و کارها، میزان استفاده کاربر از حافظه‌اش را به حداقل برسانید. کاربر نباید اطلاعاتی را از بخشی از دیالوگش تا دیالوگ دیگر را به خاطر بسپارد.

اصل هفتم: انعطاف پذیری و کارآمدی در استفاده

هر نرم‌افزاری ممکن است توسط کاربران مبتدی یا کاربران حرفه‌ای مورد استفاده قرار گیرد. به کاربران اجازه بدهید که کارهای تکراری را ساده‌تر کنند.

اصل هشتم: طراحی زیبا و مینیمال

دیالوگ‌های بین انسان و نرم‌افزار نباید حاوی اطلاعات غیرمرتبط یا اطلاعاتی که کمتر مورد نیاز هستند باشند.

اصل نهم: به کاربران کمک کنید تا خطاها را بشناسند، تشخیص بدهند و ترمیم کنند

پیغام‌های خطا باید به زبان طبیعی انسانی بیان شوند و نه با کد. این پیغام‌ها باید به طور مشخص، مشکل را بیان کنند و به شکل سازنده، راه حلی برایش ارائه کنند.

در توضیح این اصل، شاید بتوان به انواع و اقسام کدهای خطا که با دید developer ایجاد می‌شوند اشاره کرد. مثلاً خطای 404‌ را در نظر بگیرید. درست است که توسعه‌دهندگان وب می‌دانند کد خطای 404‌ مربوط به چه چیزی است، اما کاربر باید دقیقاً متوجه منظور از 404 شده و همچنین به وی راهی (مثل قرار دادن لینک به صفحه نخست سایت یا بخش جستجو و ...) برای خروج از این خطا پیشنهاد شود.

اصل دهم: راهنما و مستندات

گرچه بهتر است بتوان بدون استفاده از مستندات از سیستم استفاده کرد، اما ایجاد راهنما و مستندات ممکم است الزامی باشد. هر نوع محتوای راهنما و مستندات باید به سادگی قابل جستجو باشد، همچنین بر روی وظایف کاربران تمرکز کرده باشد و البته طولانی نباشد.

شما چه ایده‌ای برای بهتر شدن تعامل بین کاربران و نرم‌افزارها و ایجاد نرم‌افزارهای بهتر دارید؟