লেখা
অপেক্ষার সময়েই প্রোডাক্টের সত্যি কথাটা বোঝা যায়
spinner অনেক সময় বলে দেয়, আসলে কী হচ্ছে সেটা ইন্টারফেস এখনও বলতে চায়নি।
অনেকে যতটা আশা করেন, loading state নিয়ে তার চেয়ে বেশি মাথা ঘামাই। skeleton দেখতে মজা বলে নয়। অপেক্ষার সময়েই প্রোডাক্ট ভরসা গড়ে, বা চুপচাপ তা খরচ করে।
কখনও spinner ঠিক আছে। কিন্তু অনেক সময় এটা স্বীকার করা যে, ব্যবহারকারীর কী জানা উচিত ইন্টারফেস তা ঠিক করেনি। ডেটা আনছি? কিছু তৈরি করছি? AI-র উত্তরের অপেক্ষা? permission আবার দেখছি? নষ্ট হতে পারে এমন কাজ save করছি? অভিজ্ঞতাগুলো আলাদা। একটা অস্পষ্ট গোল চিহ্নে সব চাপা পড়া উচিত নয়।
ভালো loading state স্ক্রিনের গঠন ধরে রাখে, ভুলে দুবার action করা আটকায়, আর কতটা এগোল বোঝায়। ডেটার চলাচল ভালো করে ভাবা হয়েছে কি না, ইঞ্জিনিয়ারও বুঝতে পারেন। মাঝের অবস্থাটা UI যদি পরিষ্কার করে দেখাতে না পারে, আর্কিটেকচারও সম্ভবত পারছে না।
জটিল SaaS প্রোডাক্টে এটা আরও সত্যি। মানুষের মাথায় একসঙ্গে filter, বাছা row, save না হওয়া বদল, আসতে থাকা recommendation, ফেরানো যাবে কি না জানা নেই এমন action থাকে। আলসেমি করা loading state দেখলে মনে হয় প্রোডাক্টই ভুলে গেল আমি কী করছিলাম।
loading-এর আচরণ feature model-এর অংশ হোক চাই। শেষ মুহূর্তের সাজ নয়। pending, refreshing, saving, retrying, blocked, partial, stale—এসব প্রোডাক্টের state। success-এর মতোই নাম, পরীক্ষা আর ডিজাইন প্রাপ্য।
performance শুধু millisecond নয়। কোথায় আছি বুঝতে পারাও তার অংশ। যে ধীর ব্যবস্থা নিজেকে বোঝায়, সেটা দ্রুত অথচ লাফানো, ফাঁকা হয়ে যাওয়া বা action-এর ফল আড়াল করা ব্যবস্থার চেয়ে বেশি ভরসা দিতে পারে।
প্রোডাক্টের কোনও অংশ রিভিউ করলে প্রথমেই loading state-গুলো দেখি। বাস্তব ব্যবহার ভেবে বানানো, না শুধু সব ঠিক যাওয়ার পথ—সেখানেই বোঝা যায়।