سوال مهم در توسعه نرم‌افزار: آیا مشکل درستی را حل می‌کنیم؟

حل کردن «مشکل درست» باعث دریافت «ارزش» می‌شود اما صرف وقت و منابع محدود برای رفع مشکلات نادرست، به خلق محصول ارزشمند نرم‌افزاری نمی‌انجامد

خواندن این نوشته کوتاه باعث شد من هم کمی درباره اهمیت پرسیدن اینکه آیا مشکل درستی را حل می‌کنیم بنویسم.

مشابه صحبتی که آقای Hemel به درستی اشاره کرده بود اغلب اوقات یا در حال پرسیدن هستیم (تا دیدگاه نسبت به مساله را با دیدگاه مدیر محصول/ مدیر پروژه/کارفرما هماهنگ کنیم) یا در حال اجرای تصمیمات تصویب شده (وظایف برنامه‌نویسی) هستیم.

رفع مشکل درست = دریافت ارزش درست

وظایف تعریف شده در یک پروژه نرم‌افزاری قرار است به تولید یک امکان جدید یا رفع مشکلات موجود محصول کمک کند. اما در یک لایه پایین‌تر، این اضافه شدن امکانات یا رفع مشکلات موجود قرار است کمک کند به یک «ارزش» برسیم.

اگر مشکل درستی را حل کنیم، به «ارزش» درستی هم خواهیم رسید اما اگر وقت و منابع محدود را صرف رفع مشکلات نادرست کنیم، ارزش‌هایی که برای مهم هستند را از محصول دریافت نخواهیم کرد.

این موضوع ظاهراً بدیهی به نظر می‌رسد اما در روال روزمره کارها گاهی فراموش می‌کنیم که محصول به چه سمتی باید برود و این انحراف باعث به هم‌ریخته شدن برنامه‌ریزی‌ها می‌شود و از طرفی نتیجه هم به دلیل اینکه «مشکلات درست» برای حل شدن انتخاب نشدند ما را به «ارزش مورد انتظار» نزدیک نمی‌‌کند.

در نوشته قبلی درباره خودداری از اضافه کردن خروجی اکسل به جنبه امنیت و حریم شخصی اشاره کردم، اما اگر همین امکان (خروجی اکسل) را در نظر بگیریم گاهی پیش از آنکه به جنبه‌های امنیت و حریم شخصی بپردازیم، می‌توانیم از جنبه میزان ارزشی که پیاده‌سازی چنین قابلیتی به نرم‌افزار اضافه می‌کند صحبت کنیم.

دقت کنید اینجا در مورد اولویت‌بندی صحبت نمی‌کنیم، در مورد انتخاب یا عدم انتخاب مشکلات برای حل شدن صحبت می‌کنیم. این نوشته را به عنوان یک تلنگر برای توجه به اهمیت انتخاب مشکلات درست در نظر بگیرید. شما از چه راه‌هایی برای حذف مشکلات بی‌اهمیت یا کم‌اهمیت یا پیدا کردن مشکلات درست و بااهمیت استفاده می‌کنید؟

بروزرسانی: این رشته توییت رو درباره «نه گفتن» در تولید محصول بخونید. به رسیدن به «مشکلات درست» کمک می‌کنه