Amir Mokarchi
Amir Mokarchi
خواندن ۲ دقیقه·۴ ماه پیش

آشکارسازی مفاهیم پنهان در طراحی سیستم‌ها

وقتی سیستم ساخته می‌شود، مشکلاتی بوجود میاد که ظاهراً به خاطر سوءتفاهم‌های اولیه بوده است. این سوءتفاهم‌ها چطور ایجاد می‌شوند؟

معمولاً این مشکلات به این خاطر به وجود میایند که چیزهایی که باید صریح و واضح باشند، مبهم یا ضمنی باقی میمانند. Implicit Concepts یا مفاهیم پنهان به زمانی گفته میشود که مفاهیم را شفاف نکنیم، که باعث برداشت های متفاوتی شود و همین باعث اختلاف یا اشتباه میگردد.

مسأله: سوءتفاهم‌های ناشی از مفاهیم پنهان

فرض کند در جلسه‌ای هستیم و درباره‌ی مشکلی حرف می‌زنیم. هرکسی تصویری در ذهنش از مشکل و راه‌حل دارد، ولی چون این تصاویر شفاف بیان نمی‌شوند، همه فکر می‌کنند با هم موافقند، در حالی که ممکن است کاملاً برداشت‌های متفاوتی داشته باشند.

مثل وقتی که فکر می‌کنید منظور شخصی رو فهمیدید، ولی بعداً معلوم می‌شود اشتباه برداشت کردید؟

این اتفاق معمولاً به خاطر سوگیری‌های شناختی مثل WYSIATI (What You See Is All There Is) رخ می‌دهد. ما براساس اطلاعات محدودی که داریم، تصمیم‌گیری می‌کنیم و فکر می‌کنیم کاملاً مشکل را فهمیدیم.

مثال: فرم ثبت مرخصی پزشکی

یک فرم ساده ثبت مرخصی پزشکی رو در نظر بگیرید. فرض کند فرم اینگونه طراحی شده:

  • یک فیلد برای Start Date
  • یک فیلد برای End Date
  • یک چک‌باکس برای Half Day
  • و یک دکمه برای Save

در نگاه اول، این فرم ممکن است ساده به نظر برسد. ولی وقتی دقت کنید، کلی ابهام دارد:

  1. فیلد Start Date: این تاریخ یعنی چه زمانی؟ روزی که مرخصی ثبت شده یا روزی که کارمند سر کار نیامده است؟
  2. فیلد End Date: این یعنی آخرین روز مرخصی؟ یا روزی که کارمند برگشته است سر کار؟
  3. فیلد Half Day: آیا به شروع مرخصی اشاره دارد یا به پایان اش؟
  4. فیلد Save: وقتی کاربر روی این دکمه کلیک می‌کند، چه اتفاقی می‌افتد؟ آیا فقط داده ذخیره می‌شود یا فرآیند تأیید مرخصی هم شروع می‌شود؟

این فرم خیلی گنگ است. حالا یک فرم مشابه رو در نظر بگیر که فیلدها و دکمه‌هاش شفاف‌تر تعریف شده اند:

  • فیلد First Day Not At Work (اولین روزی که کارمند سر کار نیامده است)
  • فیلد Came Back To Work (روزی که کارمند برگشته است)
  • فیلد Left During Workday (آیا مرخصی از وسط روز شروع شده است؟)
  • و یک دکمه مثل Submit for Approval (ارسال برای تأیید).

این فرم مشخص و واضح طراحی شده است.

توسعه نرم افزار
A software engineer
شاید از این پست‌ها خوشتان بیاید