برنامهریزی پیشبینی نیست
در مدیریت پروژه و مدیریت محصول در حوزه نرمافزار، یکی از بزرگترین سوءتفاهمها و یکی از پرتکرارترین اشتباهات، برابر دیدن مفهوم برنامهریزی و مفهوم پیشبینی است. خصوصا در حوزه مدیریت محصول چابک (اسکرام و ….) این اشتباه به وضوح بیشتری دیده میشود.
برنامهریزی به این معنی نیست که ما منتظر تعدادی اسپرینت باشیم و هربار پیشبینی کنیم چقذر کار در هر اسپرینت تحویل میدهیم. حتی اگر فرض کنیم که این از نتایج یا مصنوعات جانبی برنامهریزی هم باشد، باز هم حداقل میشود بر این توافق کرد که پیشبینی تعداد استوری پوینت نمیتواند هدف برنامهریزی باشد.
برنامهریزی چیست
اجازه بدهید با تعریف برنامهریزی شروع کنیم. من در ویکیپدیا جستجو کردم و به تعریف زیر رسیدم:
برنامهریزی، فرایند تفکر در رابطه با فعالیتهای لازم برای رسیدن به هدف مطلوب است. برنامهریزی اولین و مهمترین فعالیت لازم برای دستیابی به نتایج مطلوب است. بسته به فعالیتها، هر برنامه میتواند که بلندمدت، میانمدت یا کوتاهمدت باشد. برای مدیرانی که در جستجوی حمایتهای بیرونی هستند، برنامهریزی، مهمترین و کلیدیترین و آسانترین سند برای رشد است. برنامهریزی میتواند، نقش مهمی در کمک به جلوگیری از اشتباهات یا تشخیص فرصتهای پنهان بازی کند. برنامهریزی به پیشبینی آینده و ساختن آینده تا حدودی قابل تصور کمک میکند. آن پلی است بین آنجایی که هستیم و آنجایی که میخواهیم برویم. برنامهریزی به آینده مینگرد
تعریف برنامهریزی در ویکیپدیا
همانطور که از تعریف بالا مشخص است، برنامهریزی کاری است که برای فهمیدن و مشخص کردن مسیر رسیدن به هدف انجام میدهیم نه اینکه «چقدر کار میکنیم». پیشبینی میتواند یکی از محصولات جانبی برنامهریزی باشد اما هدف آن نیست.
تفاوت بین برنامهریزی و پیشبینی
فرض کنیم هدف ما این است که فاصله تهران تا مشهد را سفر کنیم. پیشبینی اینکه «۶ ساعت در روز رانندگی میکنم» برنامهریزی نیست. برنامهریزی یعنی بگوییم با چه وسیلهای به سمت مشهد میرویم؟ پیاده یا با اتوبوس یا شاید با اتوموبیل شخصی یا شاید قطار یا هواپیما؟ چه چیزی باید همراهمان داشته باشیم؟ چند روز وقت داریم؟ چقدر میتوانیم برای این سفر هزینه کنیم؟ کی باید راه بیفتیم؟ کی و کجا باید توقف کنیم؟ پاسخ به سوالاتی از این دست، بسیار مهم است. و این پاسخها مفهوم برنامهریزی هستند. اما پاسخ به سوالاتی مانند روزانه چند ساعت به سمت مشهد حرکت میکنیم، چقدر خسته میشویم، چقدر لذت میبریم و …. بخشی از برنامهریزی نیستند.
نقش برنامهریزی در اسکرام
برنامهریزی مناسب بسیار مهم است. به ویژه زمانی که از رویکردهای افزایشی و تکراری مانند اسکرام استفاده میکنیم. اما به نظر میرسد رویکرد شایع این است که تیمها صرفا به تکرار بیمفهوم (بدون دقت به چرایی و هدف) برخی مصنوعات اسکرام در کنار پیشبینیهای تخمینی تشویق میشوند.
طول اسپرینت در اسکرام هیچوقت بیشتر از ۴ هفته نیست. زیرا هیچوقت نمیخواهیم چیزی را بیش از این پیشبینی کنیم!
جملات بزرگان!
تجربهگرایی و برنامهریزی
اسکرام بر پایهی تجربهگرایی استوار است. مهمترین اصل در تجربهگرایی، برخلاف عقلگرایی، این است که چیزها قابل پیشبینی نیستند! اسکرام در تضاد با پیشبینیپذیری است. زمانی که ما در اسکرام یک بکلاگ آماده میکنیم درواقع اعلام میکنیم این چیزی است که ما به عنوان تیم تصمیم گرفتیم تا در طول یک اسپرینت برای رسیدن به هدف اسپرینت انجام دهیم. شاید بتوان گفت که هدف اسپرینت چیزی شبیه به پیشبینی است. اما حتی اگر باشد، پیشبینی بودنش یک محصول فرعی است. چیزی که مهم است برنامهریزی و تنظیم نحوه رسیدن به هدف اسپرینت است. و اینکه در نهایت بتوانیم به ذینفعان بیرونی در پایان اسپرینت نشان دهیم که به کجا رسیدیم.
این رویکرد بسیار با اینکه بخواهیم نشان دهیم «چقدر» کار انجام دادهایم متفاوت است. برنامهریزی به معنی «آنچه انجام خواهیم داد» و «آنچه به دست خواهیم آورد» است و نه به معنی «آن مقدار که تلاش میکنیم». این تمایز ممکن است برای برخی ظریف یا حتی بیاهمیت به نطر برسد. اما تاکید میکنم که این تفاوت رویکرد بسیار مهم است. و نتایج بسیار متفاوتی ایجاد میکند.
در اسکرام ما در هر اسپرینت برنامهریزی، اجرا، بررسی و اصلاح میکنیم. در آغاز هر اسپرینت ما یک طرح جدید داریم. و بعد در اسپرینت بعدی یک طرح جدید میریزیم. ما عمدتا حرکت به سمت اهدافمان را با استفاده از معیارهای تجربی اندازه میگیریم. معیارهایی مانند کارایی نرمافزار، تستهای کاربری یا معیار دزدان دریایی. منطقی نیست که از خروجی به عنوان معیار اصلی خود استفاده کنیم. زیرا اسکرام در مورد بهینهسازی ارزشی است که ایجاد میکنیم، و خروجی با “بالاترین اولویت” به ندرت معادل حداکثر ارزش ممکن است.
سخن پایانی
به این ترتیب برنامهریزی به این معنی نیست که چند استوری پوینت یا چند کارت یا چند استوری انجام میدهیم. بلکه به این معنی است که تمرکز انتشار بر چه چیزی باشد. که هدف اسپرینت چه چیزی باشد. که در پایان اسپرینت به کجا رسیده باشیم و چه ارزشی آفریده باشیم. برنامهریزی برای یک اسپرینت یعنی پیدا کردن سادهترین مسیر برای رسیدن به هدف اسپرینت در چارچوب محدودیتهایی که داریم. البته که زمان مهم است. اما در این فرایند تجربی ما هربار مشخص میکنیم در یک زمان کوتاه باید به چیزی برسیم. (زمان از محدودیتهای ماست و نه از مجهولهای ما. پس ما نباید زمان را حدس بزنیم. ما باید سادهترین مسیر رسیدن را تخمین بزنیم). ما باید بر ارزشی که در زمان مشخص باید تحویل دهیم تمرکز کنیم و دست از پیشبینی و تخیل برداریم!
نظر دهید
میخوای نظر بدی?پس نظرت رو بنویس!