عملکرد سریع و کند

دنیای امروز با سرعت بی‌سابقه‌ای در حال حرکته. در حقیقت امروزه (بر خلاف گذشته که تعلیق، تعمق و صبر ارزشمند بودند) سرعت حرف اول رو می‌زنه. عکس‌العمل سریع، خودروها و موتورسیکلت‌های سریع، دیوایس‌های با کمترین لگ و بالاترین سرعت. اینترنت پرسرعت، تولید تراشه مغزی برای افزایش سرعت یادگیری و هزاران هزار مورد دیگه این سیگنال رو صادر می‌کنه که در دنیای امروز سرعت یک نوع ارزش محسوب می‌شه. (۱)طبیعتا محصول ما (که می‌تونه یک وبسایت، اپلیکیشن، و یا هر نرم‌افزاری باشه) هم از این قاعده مستثنا نیست. (۲)دغدغه سرعت در برنامه‌های کامپیوتری عمری بالغ بر ۴۰ سال داره. جالبه بدونید که تا پیش از سال ۱۹۸۲ میلادی استاندارد سرعت پاسخگویی کامپیوتر ۲۰۰۰ میلی ثانیه (یا ۲ ثانیه) بود. یعنی اگر کامپیوتری زیر ۲ ثانیه به دستور (command) شما پاسخ می‌داد سریع محسوب می‌شد! اما در سال ۱۹۸۲ مقاله‌ای توسط والتر دوهرتی (Walter J. Doherty) در مجله‌ی IBM Systems منتشر شد که این استاندارد رو تا ۴۰۰ میلی‌ثانیه کاهش می‌داد. دوهرتی معتقد بود که اگر زمان پاسخگویی کامپیوتر به دستور کاربر بیشتر از ۴۰۰ میلی‌ثانیه طول بکشه اون سیستم کند محسوب می‌شه و حوصله کاربر رو سر می‌بره. نکته جالب در این مقاله این هست که از نظر دوهرتی، در صورتی که سرعت پاسخگویی از ۴۰۰ میلی‌ثانیه کمتر باشه، اون برنامه می‌تونه برای انسان اعتیاد‌آور و خطرناک باشه!! امروزه آستانه دوهرتی برای ما یک شوخی خنده‌دار محسوب می‌شه :)اما اگر سرویس یا محصول ما به هر دلیل کند بود باید چه کنیم؟طبق تحقیقات دوهرتی، اگر مدت‌زمان پاسخگویی سیستم به درخواست کاربر از ۴۰۰ میلی‌ثانیه بیشتر طول بکشه، باعث می‌شه تا توجه و تمرکز او به کاری که داره انجام میده کاهش پیدا کنه. کاهش تمرکز می‌تونه باعث عدم تمایل کاربر به ادامه‌دادن با سیستم باشه، یا ممکنه به علت مشغول شدن به موضوع دیگری، ناخود‌آگاه فرایندی که بهش مشغول بوده رو ناتمام بگذاره.راه حل چیه؟در وهله اول، سعی کنید با بهینه‌کردن فرایند‌های محصولتون سرعت پاسخگویی رو افزایش بدید. اما اگر این بهبود به هر دلیلی امکان‌پذیر نبود، می‌تونید از طراح رابط‌کاربری توانمندتون خواهش کنید تا با کمک جلوه‌های بصری جذاب کاربر رو گول بزنه و زمان انتظار رو براش قابل تحمل‌تر کنه.انیمیشن: انیمیشن‌های بارگذاری (Loading) مرسومی که امروزه به وفور در وبسایت‌ها استفاده می‌شه یکی از راه‌های جذاب‌تر شدن زمان انتظار برای کاربر محصول شماست. با وجود اینکه حتی ساده‌ترین انیمیشن‌ها باعث جلب توجه کاربر می‌شن، اما پیشنهادم اینه که سعی کنید انیمیشن Loading مخصوص خودتون رو داشته باشید. شخصی سازی انیمیشن Loading، کاربر رو کنجکاو می‌کنه تا اون رو دقیق‌تر ببینه. از طرفی بعضی از انیمیشن‌های Loading با تغییرات پیچیده هندسی نه تنها زمان انتظار رو برای کاربر قابل تحمل می‌کنه بلکه باعث میشه ذهن کاربر درگیر کشف و درک یک رابطه منطقی در تغییرات هندسی ِالمان بارگذاری بشه.نوار پیشرفت (Progress Bar): از مرسوم‌ترین روش‌ها برای قابل‌تحمل کردن زمان انتظار کاربر در هنگام نصب یک نرم افزار، استفاده از Progress Bar هست. مهم نیست که چقدر دقیق باشن، حتی اگه Progress Bar در محصول شما دقیق هم نباشه، کمک می‌کنه تا زمان انتظار برای کاربر قابل تحمل‌تر باشه.بدیع و جذاب: همیشه مسیر‌های رفته لزوما مسیر‌های صحیحی برای شما نیستن. شما همیشه می‌تونید به روش خودتون کاربر رو سرگرم کنید تا گذر زمان رو حس نکنه. یکی از روش‌های مورد علاقه من، روش شرکت Adobe در هنگام نصب محصولاتش هست. در زمانی که شما منتظر هستید تا هر کدوم از محصولات Adobe نصب بشن، تصاویر جذاب و خارق العاده‌ای که با اون محصول طراحی شدن از جلوی چشم شما رد میشه. رد شدن این تصاویر علاوه‌بر قابل تحمل کردن انتظار، در شما شوق استفاده از محصول رو هم شعله‌ور می‌کنه. به نظرم Adobe از این حقه اونقدر بازخورد مثبت گرفته که در ورژن‌های جدیدش، در هنگام نصب، وزن به مراتب کمتری به Progress Bar داده، تا حدی که گاها به سختی دیده می‌شه. تا اینجای این مقاله در مورد مزیت‌های سرعت عکس‌العمل سیستم صحبت کردیم و گفتیم که اگه به هر دلیلی قادر به افزایش سرعت نبودید، با حقه‌های بصری حواس کاربر رو شش‌دنگ روی محصولتون نگه‌دارید. اما یه سوال مهم: آیا همیشه عکس‌العمل سریع خوبه؟ آیا سرعت کند همیشه نشونه ضعف سیستم هست و به کاربر حس نامطلوب القا می‌کنه؟ اجازه بدید به این سوال پاسخ «نه» بدم! همیشه هم عکس‌العمل سریع خوب نیست!چرا همیشه عکس‌العمل سریع مطلوب نیست؟محدودیت‌های محصولات شرکت‌های ثالث:سرعت بالای محصول شما، ممکنه به کسب و کار شرکت‌های ثالثی که ازشون سرویس می‌گیرید آسیب بزنه! به هر دلیلی ممکنه service provider های شما توان تحمل درخواست‌ها و پاسخگویی سریع رو نداشته باشن. درسته که این موضوع مستقیما ارتباطی به تجربه کاربری نداره و دلیل خوبی برای نامطلوب بودن عملکرد کند نیست، اما اگر مراعات نکنید ممکنه سرویس‌های شرکت همکارتون زیر فشار شونه‌خالی کنند و در نهایت باعث از کار افتادن بخشی از کسب و کار شما بشن. قطعا این شرایط باعث ایجاد تجربه ناخوشایند در کاربران شما هم میشه! پس بعضی اوقات مجبوریم برای زنده موندن، تعمدا سرعت پاسخگویی محصول رو پایین بیاریم. از بین رفتن اعتماد کاربربله! درست خوندید! سرعت بالای محصول شما می‌تونه باعث از بین رفتن اعتماد کاربرانتون بشه! این مساله معمولا در سیستم‌های گزارش‌گیری اتفاق میوفته. در صورتی که کاربر درخواست یک گزارش طولانی با فیلتر‌های پیچیده داشته باشه و سیستم در چند میلی‌ثانیه گزارش رو در اختیارش بگذاره، با احتمال بالایی، کاربر به صحت گزارش سیستم شما شک می‌کنه. چرا که اون در ذهن خودش تولید این گزارش رو «سخت» ارزیابی کرده و علی‌رغم هرچه تا الان گفتیم، تاخیر در نمایش پاسخ این اطمینان رو بهش می‌ده که سیستم با دقت بالا و صرف زمان کافی این گزارش رو تولید کرده. جالبه که بسیاری از سیستم‌های گزارش‌گیری به رغم سرعت پردازش بالا، نمایش اطلاعات رو تعمدا به تاخیر می‌اندازن تا احساس اطمینان در کاربرانشون از بین نره!دقت فدای سرعتگاهی اوقات سرعت بالا در عکس‌العمل یک سیستم،‌ رابطه معکوسی با دقت اون داره و باعث می‌شه سیستم شما با دیتای اشتباه تصمیم بگیره و در نتیجه به کاربران پاسخ نادرست بده! مثلا در نرم‌افزار‌های مسیریابی، کندی در عکس‌العمل رو به وضوح مشاهده می‌کنیم. فرض کنید در حال رانندگی هستید و قصد دارید با کمک یک نرم‌افزار مسیریابی از نقطه A به نقطه B برسید. در این بین به هر دلیلی خروجی مورد نظر مسیریاب رو رد می‌کنید. در این شرایط نرم افزار مسیر‌یاب، یک تاخیر - حتی - چند ثانیه‌ای در پیشنهاد مسیر جایگزین داره. این تاخیر ممکنه واقعا به خاطر کندی در عکس العمل نباشه، بلکه نرم‌افزار نیاز داره دیتای بیشتری جمع کنه تا مطمئن بشه این تغییر مسیر واقعا اتفاق افتاده و احیانا ناشی از عدم دقت GPS یا موارد مشابه نبوده. اگر نرم‌افزار‌های مسیریاب دقت رو فدای سرعت می‌کردند و با هر تغییر جزئیِ مختصات شما یک بازخورد سریع می‌دادند، احتمالا اونقدر از تغییر مسیر‌های بی‌دلیل کلافه می‌شدید که گم شدن رو به استفاده از اون محصول ترجیح می‌دادید.جمع بندی:من بر این باورم که در توسعه محصول هیچ مرز مشخصی بین «درست» و «غلط» وجود نداره. نظرات متفاوت باید شنیده بشن، تحلیل بشن و تصمیمی گرفته بشه که برای محصول شما بهترین باشه. ممکنه همون تصمیمی‌ که از نظر همه غلطه، باعث ایجاد تجربه کاربری خوب و ترقی محصول شما باشه. فکر می‌کنم بدیهی‌تر از این گزاره نداشته باشیم که «هرچه عکس‌العمل سریع‌تری نسبت به درخواست کاربر داشته باشیم بازخورد بهتری دریافت می‌کنیم». اما به وضوح میشه دید که در دنیایی که جنگ بر سر سرعته، گاهی کند بودنه که محصولتون رو متمایز و قابل اعتماد می‌کنه. نظرات شما در این باره برام بسیار ارزشمند و گران‌بها هست. از زمانی که برای خوندن و نوشتن بازخورد برای این مقاله می‌گذارید بی‌نهایت سپاسگزارم.پی‌نوشت:(۱) نام این مقاله (عملکرد سریع و کند) از کتابی با نام «تفکر سریع‌ و کند» ، نوشته «دانیل کانمن» الهام گرفته شده. اگر این کتاب رو تا امروز نخوندید،‌ خوندنش رو شدیدا بهتون پیشنهاد می‌کنم.(۲) علی‌الخصوص وقتی داریم در مورد یک نرم افزار معاملات آنلاین صحبت می‌کنیم رسیدن به حداکثر سرعت به طور دیوانه‌کننده‌ای مهم میشه. اگر در بازار سرمایه‌ی ۱۰ سال پیش، ثانیه‌ها تعیین کننده بودند، در بازار سرمایه‌امروز هر میلی‌ثانیه می‌تونه برد یا باخت معامله‌گر رو رقم بزنه.