چرا اکثر تخمینها در تیمهای نرم افزاری اشتباه از آب درمیاید؟ آیا اصلا امکان این وجود دارد که بتوانیم تخمین خیلی دقیق داشته باشیم؟ چند روز قبل به صورت اتفاقی یک پدیده ای برای من اتفاق افتاد که دقیقا سوال همین پرسشها بود. داستان بر این قرار بود که میخواستم برای بیرون رفتن از اپ هواشناسی استفاده کنم که آیا چتر با خودم ببرم یا نه. انتظار من این بود که پیش بینی آب و هوا برای چند ساعت بعد باید خیلی دقیق باشد ولی نکته جالب این بود که نتیجه کاملا متفاوت بود.
سناریویی که اتفاق افتاد:
ساعت چهار بعدازظهر اپ هواشناسی رو باز کردم، و اپ نشون میداد که ساعت هشت احتمال 60 درصد و ساعت نه به احتمال 80 درصد بارون میاد
ساعت شش دوباره اپ رو باز کردم، همان پیش بینی برای ساعت هشت و نه عوض شده و احتمال بارون کاملا کم شده بود
و ساعت هفت دوباره اپ رو باز کردم و این بار پیش بینی میگفت اصلا قرار نیست ساعت هشت بارون بیاد
چه اتفاقی در حال رخ دادن بود؟ آیا این اپ هواشناسی مشکل داشت؟ باید از یک اپ بهتر استفاده میکردم؟ نکته جالب این بود که هر چقدر به اون ساعت نزدیک میشدیم پیش بینی تغییر میکرد اما دقیق تر میشد، یعنی دقیقا ساعت هشت هوا ابری شد و بارونی در کار نبود.
اما این چه ارتباطی با سوالات ابتدایی مطرح شده دارد؟ ین دقیقا یک نکته بسیار مهم در مورد سیستمهای پیچیده به ما یادآوری میکند. آب و هوا اساسا یک سیستم پیچیده است، یکی از خصوصیتها و تفاوتهای اصلی سیستمهای پیچیده با سیستمهای دیگر، همین امکان غیرقابل پیش بینی بودن و یا امکان سورپرایز کردنشان است. معمولا در سیستم های پیچیده نتایج، علت و معلولی نیست، یعنی اینکه چون این شد و آن شد، پس حتما این اتفاق خواهد افتاد، یا صرفا بر اساس تجربیات قبلی خودمان؛ پیش بینی کنیم که فلان نتیجه حتما اتفاق خواهد افتاد، یا ما در شرکت قبلی اینجوری کار میکردیم و اگر اینجا هم همانطور کار کنیم پس فلان نتیجه خوب بدست خواهد امد. این “حتما” یا “قطعیت” در سیستم های پیچیده تقریبا معنی ندارد.
آیا در سیستم پیچیده نباید چیزی را پیشبینی کرد یا تخمین زد؟
تفاوت سیستم پیچیده با یک سیستم آشوب نیز در همین نکته است، در یک سیستم آشوب اساسا امکان پیش بینی وجود ندارد، بخاطر اینکه همه چیز تصادفی است. اما در یک سیستم پیچیده شما در لحظه حال (یعنی زمانی که میخواهید پیش بینی کنید) به اندازه کافی داده، اطلاعات و تجربه دارید که بتوانید پیش بینی از آینده داشته باشید اما نکته مهم این است، که این صرفا یک پیش بینی هست و نه پیش گویی. اساس پیش بینی باید بر اساس عدم قطعیت باشد و نباید در ذینفع ایجاد توهم قطعیت نماییم. توهم قطعیت مشکل ساز است، زیرا یک پیش بینی را تبدیل به تضمین یا ددلاین خواهد کرد و عدم رسیدن به آن موجب از دست رفتن اعتماد بین طرفین خواهد شد (مثلا من اپ را حذف را میکنم).
برای همین اپهای هواشناسی به خوبی برای نشان دادن این عدم قطعیت و مدیریت انتظارات ذینفع از درصد استفاده میکنند، وقتی شما از درصد استفاده میکنید، یعنی با ذینفع از اول قراری میگذارید(مدیریت انتظارات ذینغع) که این صرفا یک پیش بینی است، در گام بعدی، هر چقدر که جلوتر میروید، داده ها و اطلاعات جدیدی برای شما کشف یا ظاهر خواهند شد و البته شما به صورت عامدانه باید دنبال کشف این اطلاعات جدید باشید که اصطلاحا به این فعالیت عامدانه بازرسی یا Inspection گفته میشود، بعد براساس این داده های جدید ظاهر شده، شما شروع میکنید پیش بینی خودتان را مطابقت یا Adaption دادن و در تمام این مراحل، همه تغییرات را باید با ذینفع خودتان شفاف یا Transparent نگه دارید که پیش بینی اول که این بود و بر اساس این داده های جدید پیش بینی جدید این شد.
اگر فکر میکنید یکی از مشکلات تیم شما تخمین زدن هست پیشنهاد میکنم این مطلب رو مشاهده کنید
چابک و موفق باشید
اسد صفری
ممنون از شما لینک مطلبی که گذاشتید وجود نداره و 404 میده
لینک اصلاح شد