পাঠ ০৩ · ৫৭-এর মধ্যে · মডিউল ১
Home / Courses / Ethics in Computing & AI Safety / ফাউন্ডেশন

স্টেকহোল্ডার অ্যানালাইসিস — একটি সিস্টেম কাদের প্রভাবিত করে

Stakeholder analysis — who is affected by a system
৭ মিনিট পড়া শুরু · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

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

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

১ · স্টেকহোল্ডার অ্যানালাইসিস কী

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

২ · উদাহরণ: রাইড-শেয়ারিং অ্যাপের ডায়নামিক প্রাইসিং

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

ডায়নামিক প্রাইসিং অ্যালগরিদম যাত্রী · Riders ভাড়া, অপেক্ষার সময় ড্রাইভার · Drivers আয়, নিরাপত্তা কোম্পানি · Company রাজস্ব, নিয়ন্ত্রণ আশেপাশের বাসিন্দা Nearby residents ট্রাফিক, দূষণ
একটি অ্যালগরিদমিক সিদ্ধান্ত অ্যাপ কখনো ব্যবহার না-করা মানুষদেরও প্রভাবিত করতে পারে — নিচের কোড সেলে এই চারটি গোষ্ঠীর ইমপ্যাক্ট ও কণ্ঠস্বর গণনা করা হবে।
যাত্রী (Riders)
বেশি ভাড়া দিতে হয় (আর্থিক ক্ষতি), কিন্তু চাহিদার সময়েও দ্রুত রাইড পাওয়ার সম্ভাবনা বাড়ে (সুবিধা)। কাস্টমার সাপোর্ট বা অ্যাপ রিভিউয়ের মাধ্যমে সীমিত ফিডব্যাক চ্যানেল আছে।
ড্রাইভার (Drivers)
সার্জের সময় বেশি আয় করেন, কিন্তু বেশি ট্রিপ নেওয়ার চাপ নিরাপত্তা ও ক্লান্তির ঝুঁকি বাড়ায়, আর অ্যালগরিদম তাদের অবস্থান-ডেটার উপর নির্ভর করে। ড্রাইভার ফোরাম/ইউনিয়নের মাধ্যমে কিছুটা সম্মিলিত কণ্ঠস্বর আছে।
কোম্পানি (The company)
রাজস্ব সর্বাধিক করে এবং সরবরাহ-চাহিদা ভারসাম্য বজায় রাখে। এই গোষ্ঠীই অ্যালগরিদমটি ডিজাইন করে — তাই ডিজাইন প্রক্রিয়ায় সরাসরি ও সম্পূর্ণ নিয়ন্ত্রণ থাকে।
আশেপাশের বাসিন্দা (Nearby residents)
সার্জের সময় বেশি গাড়ি রাস্তায় নামায় ট্রাফিক ও শব্দ-দূষণ বাড়তে পারে — অথচ তারা অ্যাপ ব্যবহারই করেন না, তাই ফিডব্যাক দেওয়ার কোনো প্রত্যক্ষ চ্যানেল সাধারণত নেই।

৩ · ওয়েটেড ইমপ্যাক্ট ও আন্ডাররিপ্রেজেন্টেশন গণনা

নিচের কোড সেলে প্রতিটি গোষ্ঠীর জন্য চারটি মাত্রায় (আর্থিক, নিরাপত্তা, প্রাইভেসি, স্বাধীনতা) ইমপ্যাক্ট স্কোর (−৫ থেকে +৫) ধরা হয়েছে, সাথে গোষ্ঠীর আপেক্ষিক আকার/তীব্রতার একটি ওয়েট এবং ডিজাইন প্রক্রিয়ায় তাদের বর্তমান "কণ্ঠস্বর স্কোর" (০-১০)। এই তিনটি সংখ্যা থেকেই একটি সত্যিকারের ওয়েটেড ইমপ্যাক্ট ও আন্ডাররিপ্রেজেন্টেশন ইনডেক্স গণনা করা হচ্ছে।

Python
# একটি সিন্থেটিক, ইলাস্ট্রেটিভ উদাহরণ -- বাস্তব কোনো নির্দিষ্ট কোম্পানির ডেটা নয়
# রাইড-শেয়ারিং অ্যাপের ডায়নামিক প্রাইসিং অ্যালগরিদমের স্টেকহোল্ডার অ্যানালাইসিস

stakeholders = [
    {
        "name": "যাত্রী (Riders)",
        "population_weight": 8,   # আপেক্ষিক গোষ্ঠীর আকার (ইলাস্ট্রেটিভ ইউনিট)
        "financial": -2, "safety": 1, "privacy": -2, "autonomy": -1,
        "voice_score": 3,         # ডিজাইন প্রক্রিয়ায় প্রত্যক্ষ কণ্ঠস্বর, ০-১০
    },
    {
        "name": "ড্রাইভার (Drivers)",
        "population_weight": 3,
        "financial": 1, "safety": -2, "privacy": -3, "autonomy": -4,
        "voice_score": 4,
    },
    {
        "name": "কোম্পানি (The company)",
        "population_weight": 1,
        "financial": 5, "safety": 0, "privacy": 0, "autonomy": 5,
        "voice_score": 10,
    },
    {
        "name": "আশেপাশের বাসিন্দা (Nearby residents)",
        "population_weight": 5,
        "financial": 0, "safety": -3, "privacy": 0, "autonomy": -2,
        "voice_score": 0,
    },
]

dimensions = ["financial", "safety", "privacy", "autonomy"]

for s in stakeholders:
    magnitude = sum(abs(s[d]) for d in dimensions)          # মোট কতটা প্রভাবিত (ভালো বা খারাপ, দুটোই ধরে)
    s["weighted_impact"] = round(magnitude * s["population_weight"], 1)
    s["net_sentiment"] = sum(s[d] for d in dimensions)        # নিট ফলাফল ভালো নাকি খারাপ
    s["underrep_index"] = round(s["weighted_impact"] / (s["voice_score"] + 1), 2)

print("-- ওয়েটেড ইমপ্যাক্ট অনুযায়ী র‍্যাংকিং (সবচেয়ে বেশি প্রভাবিত আগে) --")
for s in sorted(stakeholders, key=lambda x: x["weighted_impact"], reverse=True):
    print(f"{s['name']:32s} ওয়েটেড ইমপ্যাক্ট: {s['weighted_impact']:>6.1f}   নিট: {s['net_sentiment']:+d}")

print("\n-- আন্ডাররিপ্রেজেন্টেশন ইনডেক্স অনুযায়ী র‍্যাংকিং (সবচেয়ে কম-প্রতিনিধিত্বপ্রাপ্ত আগে) --")
for s in sorted(stakeholders, key=lambda x: x["underrep_index"], reverse=True):
    print(f"{s['name']:32s} ইনডেক্স: {s['underrep_index']:>6.2f}   কণ্ঠস্বর স্কোর: {s['voice_score']}")

most_underrep = max(stakeholders, key=lambda x: x["underrep_index"])
least_underrep = min(stakeholders, key=lambda x: x["underrep_index"])
print(f"\nসবচেয়ে কম-প্রতিনিধিত্বপ্রাপ্ত গোষ্ঠী: {most_underrep['name']}")
print(f"সবচেয়ে বেশি-প্রতিনিধিত্বপ্রাপ্ত গোষ্ঠী: {least_underrep['name']}")

    
কোডের ফলাফল লক্ষ্য করুন — আশেপাশের বাসিন্দাদের ওয়েটেড ইমপ্যাক্ট (২৫.০) কোম্পানির চেয়ে (১০.০) বেশি, অথচ তাদের কণ্ঠস্বর স্কোর শূন্য। ফলে underrep_index-এ তারা সবার উপরে (২৫.০), আর কোম্পানি সবার নিচে (≈০.৯১) — এই একই প্যাটার্ন ক্ষমতার ভারসাম্যহীনতা যা L01-এ উল্লেখ করা হয়েছিল, এখানে সংখ্যায় স্পষ্ট দেখা যাচ্ছে।
মূল কথা · Key takeaway

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

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

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

প্র ০১ আশেপাশের বাসিন্দারা কখনো এই অ্যাপ ব্যবহারই করেন না — তবু তাদের কেন একজন "স্টেকহোল্ডার" হিসেবে গণ্য করা উচিত?

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

প্র ০২ কোড সেলে কোম্পানির weighted_impact সবচেয়ে কম, আর voice_score সবচেয়ে বেশি — এটি কি নিছক একটি কাকতালীয় ঘটনা?

না। কোম্পানি নিজেই অ্যালগরিদমটি ডিজাইন করে বলেই তার নিজের ঝুঁকি/খরচ ন্যূনতম রাখা ও সুবিধা (financial=৫, autonomy=৫) সর্বাধিক করার সিদ্ধান্তগুলো নিজেই নিতে পারে। যার ডিজাইন প্রক্রিয়ায় সম্পূর্ণ নিয়ন্ত্রণ থাকে, সেই একই নিয়ন্ত্রণ দিয়ে নিজের নেতিবাচক ইমপ্যাক্টও কমিয়ে রাখতে পারে — এটিই L01-এ উল্লেখিত "ক্ষমতার ভারসাম্যহীনতা"-র একটি বাস্তব প্রতিফলন।

প্র ০৩ আশেপাশের বাসিন্দাদের voice_score ০ থেকে বাড়িয়ে ৫ করা হলে (যেমন একটি শহরের কনসালটেশন নিয়মের মাধ্যমে), তাদের underrep_index কত হবে, এবং এটি কী বোঝায়?

weighted_impact অপরিবর্তিত থাকবে (২৫.০), কিন্তু underrep_index হবে 25.0 / (5 + 1) = 4.17 — যা আগের ২৫.০-এর তুলনায় অনেক কম। এটি দেখায় যে কোনো গোষ্ঠীর ইমপ্যাক্ট না বদলেও, শুধু তাদের একটি প্রকৃত ফিডব্যাক চ্যানেল দিলেই তাদের "আন্ডাররিপ্রেজেন্টেশন" অনেকটা কমে যায় — অর্থাৎ কণ্ঠস্বরই এমন একটি লিভার যা নীতিগতভাবে বাস্তবে বদলানো সম্ভব।

অনুশীলন

  1. চিন্তা করুন: আপনার পরিচিত কোনো দল/প্রতিষ্ঠানের একটি প্রযুক্তিগত সিদ্ধান্তের কথা ভাবুন। সেই সিদ্ধান্ত নেওয়ার সময় সাধারণত কোন স্টেকহোল্ডার গোষ্ঠীটি ডিজাইন রিভিউতে অন্তর্ভুক্ত হয় না?

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

  2. পরীক্ষা করুন: উপরের কোড সেলে আশেপাশের বাসিন্দাদের voice_score-কে 0 থেকে 5-এ বদলে Run চাপুন — দেখুন underrep_index-এর র‍্যাংকিং-এ তাদের অবস্থান বদলায় কি না।

    voice_score-কে ৫ করলে underrep_index ২৫.০ থেকে কমে ৪.১৭ হবে — যা যাত্রীর ১২.০ ও ড্রাইভারের ৬.০-এর চেয়েও কম। ফলে আশেপাশের বাসিন্দারা আর সবচেয়ে কম-প্রতিনিধিত্বপ্রাপ্ত গোষ্ঠী থাকবেন না — সেই স্থানটি নিয়ে নেবে যাত্রীরা (ইনডেক্স ১২.০)। এটি দেখায় প্রশ্ন ০৩-এর হিসাবটি সত্যিই র‍্যাংকিং বদলে দিতে পারে।

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

আগের পাঠ
কম্পিউটিং এথিক্সের ব্যর্থতার সংক্ষিপ্ত ইতিহাস ও শিক্ষা