পাঠ ১৬ · ৫৭-এর মধ্যে · মডিউল ৪
Home / Courses / Human-Computer Interaction / ইউজেবিলিটি প্রিন্সিপল

নীলসেনের ১০টি ইউজেবিলিটি হিউরিস্টিক

Nielsen's 10 usability heuristics
১১ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • হিউরিস্টিক ইভালুয়েশন কী এবং এটি কেন একটি দ্রুত, সাশ্রয়ী এক্সপার্ট-রিভিউ পদ্ধতি
  • নীলসেনের ১০টি হিউরিস্টিক পুরোপুরি ও নির্ভুলভাবে — প্রতিটির অর্থ ও বাস্তব উদাহরণ
  • কীভাবে একটি ওয়েটেড চেকলিস্ট দিয়ে একটি ইন্টারফেসকে এই ১০টি হিউরিস্টিকের বিপরীতে প্রকৃতভাবে স্কোর করা যায়
  • ওজন (weight) ও স্কোরের মধ্যে পার্থক্য, এবং কেন একটি কম-ওজনের হিউরিস্টিকে খারাপ স্কোর করার চেয়ে বেশি-ওজনের হিউরিস্টিকে খারাপ স্কোর করা সামগ্রিক ফলাফলে বেশি প্রভাব ফেলে

১ · হিউরিস্টিক ইভালুয়েশন কী

হিউরিস্টিক ইভালুয়েশনHeuristic Evaluationএকজন বা একাধিক ইউজেবিলিটি বিশেষজ্ঞ একটি ইন্টারফেস পরীক্ষা করে সাধারণভাবে স্বীকৃত ইউজেবিলিটি নীতিমালা (হিউরিস্টিক)-এর বিপরীতে সমস্যা চিহ্নিত করেন — প্রকৃত ব্যবহারকারীদের জড়িত না করেই। হলো একটি দ্রুত, তুলনামূলক সাশ্রয়ী মূল্যায়ন পদ্ধতি, যেখানে বিশেষজ্ঞরা একটি ইন্টারফেস পরীক্ষা করে সাধারণ, স্বীকৃত নীতিমালার বিপরীতে সমস্যা চিহ্নিত করেন — এতে প্রকৃত ব্যবহারকারীর প্রয়োজন হয় না (তুলনা করুন M7/L30-এ আলোচিত প্রকৃত ব্যবহারকারীদের নিয়ে করা ইউজেবিলিটি টেস্টিং-এর সাথে)। ১৯৯০ সালে জ্যাকব নীলসেন ও রলফ মলিচ এই উদ্দেশ্যে ১০টি হিউরিস্টিকের একটি তালিকা প্রস্তাব করেন, যা আজও ইউজেবিলিটি ক্ষেত্রে সবচেয়ে বহুল-ব্যবহৃত চেকলিস্ট।

২ · নীলসেনের ১০টি হিউরিস্টিক

১. সিস্টেম স্ট্যাটাসের দৃশ্যমানতা
সিস্টেম সবসময় ব্যবহারকারীকে যুক্তিসঙ্গত সময়ের মধ্যে জানাবে কী ঘটছে — যেমন একটি লোডিং স্পিনার বা প্রোগ্রেস বার।
২. সিস্টেম ও বাস্তব জগতের মিল
ইন্টারফেসে টেকনিক্যাল জার্গনের বদলে ব্যবহারকারীর পরিচিত ভাষা, ধারণা ও কনভেনশন ব্যবহার করা — বাস্তব জগতের যুক্তি অনুসরণ করা (যেমন একটি "ট্র্যাশ বিন" আইকন)।
৩. ব্যবহারকারীর নিয়ন্ত্রণ ও স্বাধীনতা
ব্যবহারকারী ভুলবশত কোনো কাজে ঢুকে গেলে সহজে "আনডু" বা "এক্সিট" করতে পারবে, জোর করে একটি ফ্লোতে আটকে থাকবে না।
৪. কনসিস্টেন্সি ও স্ট্যান্ডার্ড
একই শব্দ, আইকন ও অ্যাকশন সবসময় একই অর্থ বহন করবে, এবং প্ল্যাটফর্মের প্রচলিত কনভেনশন অনুসরণ করবে (L18-এ পূর্ণ পাঠ)।
৫. এরর প্রিভেনশন
ভুল হওয়ার আগেই তা প্রতিরোধ করা — ভালো ডিফল্ট, কনস্ট্রেইন্ট ও নিশ্চিতকরণ ডায়ালগের মাধ্যমে (L19-এ পূর্ণ পাঠ, M3/L14-এর কনস্ট্রেইন্টের সাথেও সম্পর্কিত)।
৬. রিকগনিশন, রিকল নয়
ব্যবহারকারীকে কিছু মনে রাখতে বাধ্য না করে অপশন, অ্যাকশন ও তথ্য দৃশ্যমান রাখা — যেমন ড্রপডাউন মেনু, ফাঁকা টেক্সট ফিল্ড থেকে ভালো।
৭. ব্যবহারের নমনীয়তা ও দক্ষতা
নতুন ব্যবহারকারীর জন্য সহজ পথ রেখে অভিজ্ঞ ব্যবহারকারীর জন্য শর্টকাট বা এক্সিলারেটর যোগ করা (যেমন কীবোর্ড শর্টকাট)।
৮. নান্দনিক ও মিনিমালিস্ট ডিজাইন
অপ্রাসঙ্গিক বা কদাচিৎ প্রয়োজনীয় তথ্য দিয়ে ইন্টারফেস জ্যাম না করা — প্রতিটি অতিরিক্ত এলিমেন্ট গুরুত্বপূর্ণ তথ্যের সাথে প্রতিযোগিতা করে।
৯. এরর চেনা, নির্ণয় ও রিকভারিতে সাহায্য
এরর মেসেজ সাধারণ ভাষায়, নির্দিষ্টভাবে সমস্যা বর্ণনা করবে এবং একটি বাস্তব সমাধান প্রস্তাব করবে — "Error 4032" নয় (L19-এ পূর্ণ পাঠ)।
১০. হেল্প ও ডকুমেন্টেশন
আদর্শভাবে সাহায্য ছাড়াই ব্যবহারযোগ্য হওয়া উচিত, কিন্তু প্রয়োজনে সহজে খুঁজে পাওয়া, কাজ-কেন্দ্রিক ডকুমেন্টেশন থাকা উচিত।

৩ · একটি সত্যিকারের ডেমো — ওয়েটেড হিউরিস্টিক ইভালুয়েশন

বাস্তবে সব হিউরিস্টিক সমান গুরুত্বপূর্ণ নয় — একটি নির্দিষ্ট ইন্টারফেসের জন্য কিছু হিউরিস্টিক অন্যগুলোর চেয়ে বেশি গুরুত্বপূর্ণ হতে পারে। তাই একটি বাস্তবসম্মত হিউরিস্টিক ইভালুয়েশনে প্রতিটি হিউরিস্টিকের একটি ওজন (weight) এবং পর্যবেক্ষণের ভিত্তিতে একটি স্কোর (0–100) দেওয়া হয়, এবং সবগুলো মিলিয়ে একটি ওয়েটেড গড় বের করা হয়। নিচের কোড সেলে একটি কাল্পনিক ফুড ডেলিভারি অ্যাপের চেকআউট স্ক্রিনে এই পদ্ধতি প্রয়োগ করা হয়েছে — ধরুন সেই স্ক্রিনে এরর মেসেজ অস্পষ্ট, কোনো "আনডু" অপশন নেই, এবং পেমেন্ট সাবমিট করার সময় কোনো লোডিং ইন্ডিকেটর দেখা যায় না।

Python
checklist = [
    {"heuristic": "1. সিস্টেম স্ট্যাটাসের দৃশ্যমানতা",           "weight": 12, "score": 65},
    {"heuristic": "2. সিস্টেম ও বাস্তব জগতের মিল",                 "weight": 8,  "score": 85},
    {"heuristic": "3. ব্যবহারকারীর নিয়ন্ত্রণ ও স্বাধীনতা",        "weight": 10, "score": 45},
    {"heuristic": "4. কনসিস্টেন্সি ও স্ট্যান্ডার্ড",               "weight": 10, "score": 55},
    {"heuristic": "5. এরর প্রিভেনশন",                              "weight": 12, "score": 40},
    {"heuristic": "6. রিকগনিশন, রিকল নয়",                          "weight": 8,  "score": 50},
    {"heuristic": "7. ব্যবহারের নমনীয়তা ও দক্ষতা",                 "weight": 8,  "score": 60},
    {"heuristic": "8. নান্দনিক ও মিনিমালিস্ট ডিজাইন",              "weight": 8,  "score": 80},
    {"heuristic": "9. এরর চেনা, নির্ণয় ও রিকভারিতে সাহায্য",       "weight": 14, "score": 35},
    {"heuristic": "10. হেল্প ও ডকুমেন্টেশন",                       "weight": 10, "score": 55},
]

def verdict(score):
    if score >= 80: return "Pass"
    if score >= 50: return "Partial"
    return "Fail"

total_weight = sum(i["weight"] for i in checklist)
weighted_sum = sum(i["weight"] * i["score"] for i in checklist)
overall_pct = weighted_sum / total_weight

print(f"মোট ওজন: {total_weight}")
for i in checklist:
    v = verdict(i["score"])
    print(f"{i['heuristic']:42s}  ওজন={i['weight']:2d}  স্কোর={i['score']:3d}  {v}")

print(f"\nচূড়ান্ত ওয়েটেড স্কোর: {overall_pct:.1f}%")

weakest = sorted(checklist, key=lambda i: i["score"])[:3]
print("\nসবচেয়ে দুর্বল ৩টি হিউরিস্টিক:")
for w in weakest:
    print(f"  - {w['heuristic']} (স্কোর {w['score']}, ওজন {w['weight']})")

fails = [i for i in checklist if i["score"] < 50]
print(f"\nFail-স্তরের (স্কোর <50) আইটেম সংখ্যা: {len(fails)}")

    
চূড়ান্ত ওয়েটেড স্কোর ৫৫.০% — একটি মাঝারি মানের ডিজাইন, বড় সমস্যাসহ। লক্ষ্য করুন — সবচেয়ে দুর্বল হিউরিস্টিক হলো "৯. এরর চেনা, নির্ণয় ও রিকভারিতে সাহায্য" (স্কোর ৩৫), এবং এটি সবচেয়ে বেশি ওজনও (১৪) বহন করে — তাই এটিই সামগ্রিক স্কোরে সবচেয়ে বেশি ক্ষতি করছে। মোট ৩টি হিউরিস্টিক Fail-স্তরে (স্কোর ৫০-এর নিচে) — এই তিনটিই ডিজাইনারের জন্য সবচেয়ে জরুরি সংশোধনের তালিকা তৈরি করে।
মূল কথা · Key takeaway

নীলসেনের ১০টি হিউরিস্টিক নিছক একটি স্মরণীয় তালিকা নয় — একটি ওয়েটেড স্কোরিং সিস্টেমে রূপান্তরিত করলে এটি একটি প্রকৃত, তুলনাযোগ্য সিদ্ধান্ত-গ্রহণের হাতিয়ার হয়ে ওঠে। "ওজন" নির্দিষ্ট করে কোন হিউরিস্টিক এই নির্দিষ্ট প্রোডাক্টের জন্য বেশি গুরুত্বপূর্ণ, আর "স্কোর" পরিমাপ করে বর্তমান ডিজাইন সেই হিউরিস্টিক কতটা ভালোভাবে পূরণ করছে। এই একই প্যাটার্ন M5/L24-এ প্রতিযোগী বিশ্লেষণে এবং M13-এর ক্যাপস্টোনে আবার ব্যবহৃত হবে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ উপরের ডেমোতে কেন "এরর চেনা, নির্ণয় ও রিকভারিতে সাহায্য"-কে সর্বোচ্চ ওজন (১৪) দেওয়া হলো, অথচ "সিস্টেম ও বাস্তব জগতের মিল"-কে তুলনামূলক কম ওজন (৮) দেওয়া হলো?

একটি ফুড ডেলিভারি অ্যাপের চেকআউট স্ক্রিনে আর্থিক লেনদেন জড়িত — এখানে একটি ব্যর্থ পেমেন্ট বা ভুল অর্ডার ব্যবহারকারীর জন্য প্রকৃত আর্থিক ও মানসিক ক্ষতি তৈরি করতে পারে, তাই যখন কিছু ভুল হয় তখন স্পষ্ট দিকনির্দেশনা থাকা জরুরি। বিপরীতে, "বাস্তব জগতের মিল" (যেমন পরিচিত আইকন ব্যবহার) গুরুত্বপূর্ণ হলেও এর অভাব সরাসরি আর্থিক ক্ষতি ঘটায় না — বড়জোর সামান্য বিভ্রান্তি তৈরি করে। ওজন নির্ধারণ সবসময় "এই সমস্যার পরিণতি কতটা গুরুতর" প্রশ্নের উপর ভিত্তি করে হওয়া উচিত।

প্র ০২ হিউরিস্টিক ইভালুয়েশন একজন বিশেষজ্ঞ একাই করতে পারেন। তাহলে কেন M7/L30-এ শেখা প্রকৃত ব্যবহারকারী নিয়ে করা ইউজেবিলিটি টেস্টিংয়ের প্রয়োজন হয়?

হিউরিস্টিক ইভালুয়েশন দ্রুত ও সাশ্রয়ী, কিন্তু একজন বিশেষজ্ঞের অনুমান আসল ব্যবহারকারীর আচরণ থেকে ভিন্ন হতে পারে — বিশেষজ্ঞরা প্রায়ই "জানা" থাকার কারণে এমন সমস্যা মিস করেন যা নতুন ব্যবহারকারীর জন্য বিশাল বাধা। এই দুটো পদ্ধতি পরিপূরক — হিউরিস্টিক ইভালুয়েশন দিয়ে দ্রুত স্পষ্ট সমস্যাগুলো ধরে ঠিক করার পর, প্রকৃত ব্যবহারকারী নিয়ে টেস্টিং করলে এমন সমস্যা ধরা পড়ে যা তালিকা-ভিত্তিক পর্যালোচনায় ধরা পড়ে না।

প্র ০৩ যদি একটি ইন্টারফেসের ওয়েটেড স্কোর ৫৫% হয়, এর মানে কি এই যে ইন্টারফেসটি "৫৫% ভালো"? এই সংখ্যাটি আসলে কীভাবে ব্যবহার করা উচিত?

না — এই সংখ্যাটি একটি নির্দিষ্ট মাপকাঠি নয়, একটি তুলনামূলক অগ্রাধিকার-নির্ধারণ হাতিয়ার। এর প্রকৃত মূল্য হলো — কোন হিউরিস্টিকগুলো সবচেয়ে বেশি সামগ্রিক স্কোরে টেনে নামাচ্ছে তা চিহ্নিত করা (এখানে "এরর রিকভারি" ও "এরর প্রিভেনশন"), যাতে সীমিত ডিজাইন-সময় সবচেয়ে বেশি প্রভাবশালী জায়গায় বরাদ্দ করা যায়। এই একই ডিজাইনের একটি পুনর্ডিজাইনের পর নতুন স্কোর গণনা করে অগ্রগতি ট্র্যাক করাই এই সংখ্যাটির সবচেয়ে কার্যকর ব্যবহার।

অনুশীলন

  1. চিন্তা করুন: উপরের কোড সেলে যদি "৯. এরর চেনা, নির্ণয় ও রিকভারিতে সাহায্য"-এর score ৩৫ থেকে ৮০-এ বাড়ানো হয় (অর্থাৎ ডিজাইনার ভালো এরর মেসেজ যোগ করেছেন), নতুন চূড়ান্ত ওয়েটেড স্কোর কত হবে বলে আপনার ধারণা?

    স্কোর ৪৫ পয়েন্ট বেড়েছে, আর এই আইটেমের ওজন মোট ওজনের ১৪%, তাই সামগ্রিক শতাংশে যোগ হবে প্রায় 45 * 0.14 = 6.3 পয়েন্ট — অর্থাৎ নতুন স্কোর আনুমানিক 55.0 + 6.3 ≈ 61.3% হওয়া উচিত।

  2. পরীক্ষা করুন: উপরের কোড সেলে "9. এরর চেনা, নির্ণয় ও রিকভারিতে সাহায্য" আইটেমের "score": 35-কে "score": 80-এ পরিবর্তন করে Run চেপে আপনার অনুমান যাচাই করুন।

    পরিবর্তনের পর চূড়ান্ত ওয়েটেড স্কোর হয় ৬১.৩% — ঠিক যেমন অনুমান করা হয়েছিল। এটি দেখায় কেন একটি একক, উচ্চ-ওজনের হিউরিস্টিক ঠিক করাই প্রায়ই সবচেয়ে বেশি "রিটার্ন" দেয় — নিচু-ওজনের কয়েকটি হিউরিস্টিক নিখুঁত করার চেয়ে একটি উচ্চ-ওজনের সমস্যা সমাধান করলে সামগ্রিক স্কোরে অনেক বেশি পার্থক্য আসে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

  • কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ কগনিটিভ সাইকোলজি, ইন্টারঅ্যাকশন ডিজাইন, ইউজেবিলিটি হিউরিস্টিক্স, ইউজার রিসার্চ, প্রোটোটাইপিং, ইভালুয়েশন মেথড, ভিজ্যুয়াল ডিজাইন, অ্যাক্সেসিবিলিটি ও ক্যাপস্টোন।
  • পরবর্তী পাঠ — নরম্যানের ডিজাইন প্রিন্সিপল L17 গাল্ফ অফ এক্সিকিউশন ও গাল্ফ অফ ইভালুয়েশন — কেন ব্যবহারকারীরা কী করতে হবে বা কী ঘটল তা বুঝতে ব্যর্থ হন, এবং ভালো ডিজাইন কীভাবে এই ফাঁক কমায়।
  • Human-Centered AI কোর্স সহোদর কোর্স ট্রাস্ট ক্যালিব্রেশন, এক্সপ্লেইনেবিলিটি ও হিউম্যান-ইন-দ্য-লুপ ডিজাইনের গভীর কভারেজ — এই কোর্স সেই একই ভিত্তির উপর সাধারণ ইউজেবিলিটি হিউরিস্টিক্সের দিকটি যোগ করে।
আগের পাঠ
ইউজেবিলিটি কী — পাঁচটি কোয়ালিটি কম্পোনেন্ট