در مطلب قبلی برای گذر از حلقه های علت و معلولی به مدل کامپیوتری سیستم فرآیندی را معرفی کردیم که طی آن بتوانیم از نمودارهای عبت و معلولی به دیاگرامهای انباره و جریان برسیم. مثالی که مطرح شد نیز در ارتباط با استخدام کارکنان بود. حال قصد داریم فرآیند تبدیل این نوع دیاگرامها را به مدل های کامپیوتری سیستم ، ارائه کنیم تا به کمک آن شبیهسازی ما جان بگیرد. در چنین شرایطی خواهیم دید که چطور روابط تعریف شده در طول زمان عمل خواهند کرد.
1- مقادیر عددی را تعیین کنید
گام نخست ساخت مدل های کامپیوتری سیستم تخصیص مقادیر عددی به سیاستها و تصمیماتی است که در نمودار لحاظ شدهاند. برای مثال فرض کنید کارکنان کنونی ما 1500 نفر هستند و تعداد دلخواه ما 2000 نفر است. سوالی که باید در نظر گرفت این است:” با چه سرعتی میخواهیم این اختلاف را به صفر برسانیم؟”
افق زمانی ما تعیین کننده جریان ورود و خروج کارکنان به “کارکنان کنونی” خواهد بود. فرض کنیم میخواهیم هر ماه نصف اختلاف را پر کنیم. در چنین حالتی “استخدام/تعدیل” برابر نصف “اختلاف کارکنان” خواهد بود (مطابق شکل).
اختلاف تعداد کارکنان * 0.5 = استخدام/تعدیل
2- چک کردن صحت ابعاد
پس از تخصیص مقادیر عددی، باید آزمونی سریع انجام دهیم که بابت صحیح تعریف شدن متغیرها و صحت ابعادشان مطمئن شویم. برای مثال کارکنان کنونی، تعداد کارکنان دلخواه و اختلاف کارکنان (تعداد افراد مورد نیاز برای بستن اختلاف) هر سه بر حسب “تعداد نفرات” اعلام میشوند.
“استخدام/تعدیل” هم باید نشان دهنده جریان افراد به درون یا بیرون شرکت در یک بازه زمانی خاص باشد (ماه/نفر). وقتی چک میکنیم، به نظر همه متغیرها ابعاد صحیحی دارند (نفر و ماه). اگر متغیری با بعدی متفاوی یافتیم، مثلا تومان، باید بار دیگر تعاریف خود را بررسی نماییم.
3- جست و جو برای تاخیرها
از آنجایی که تاخیرها نقشی مهم در دینامیک هر سیستمی بازی میکنند، باید مطمئن شویم که به طور صریح در مدل کامپیوتری آورده شدهاند. داستان اصلی که در حال مدلسازی آن بودیم چندین تاخیر اساسی دارد:
- زمان مورد نیاز برای تشخیص اختلاف بین تعداد کارکنان کنونی و دلخواه
- زمان لازم برای تصمیم جهت اقدام
- زمان کافی برای جذب یا تعدیل نیرو
فرض کنید میدانیم تقریبا سه ماه برای استخدام و آموزش نیروی جدید زمان لازم است. چنین اطلاعاتی را حتما باید وارد مدل های کامپیوتری سیستم کنیم؛ چه با قابلیت درونی اضافه کردن تاخیر که در بسیاری از نرم افزارهای مدلسازی وجود دارد، یا با شبیهسازی آن با یک متغیر انباره اضافه.
4- تعیین افق زمانی شبیهسازی
یکی از درسهایی که پس از سالها ساخت مدل های کامپیوتری سیستم بدست آمده است، این است که معمولا زمان لازم برای نمایان شدن دینامیک های سیستم را کم در نظر میگیریم. یک قانون سرانگشتی خوب میگوید: زمان شبیهسازی را سه تا پنج برابر زمان تاخیر محسوس در سیستم قرار دهید.
از آنجایی که میدانیم تاخیری سه ماهه بین شناسایی اختلاف کارکنان و زمان وارد کار شدن آنها وجود دارد، شبیهسازی را برای حداقل 9 تا 15 ماه ادامه میدهیم. برای بیشتر اهمیت دادن به دینامیکهای طولانی مدت، زمان را روی 2 سال میگذاریم.
5- مطمئن شدن نسبت به مدل
پیش از آزمودن سیاستهای متفاوت در شبیهسازی، باید مطمئن شویم که مدل ما نمایندهای دقیق از سیستم در حال مطالعه است. یک راه تعیین اینکه آیا مدل پایدار است یا خیر، اجرای مجموعهای از تستهای ساده است تا مشخص شود که نتایج مدل های کامپیوتری سیستم منطبق بر دادههای واقعی یا تاریخی مورد انتظار ما میباشد.
مثلا اگر تعداد کارکنان حال حاضر ما 2000 نفر بوده و همین تعداد نیز دلخواه ماه باشد، انتظار داریم که استخدام یا تعدیل نیرو صورت نگیرد. اجرای چنین آزمونی باید خروجی یک خط صاف را ارائه دهد. اما در صورتی که نمودار “کارکنان کنونی” نوسان کند یا افزایش یابد، باید مدل را برای یافتن خطاها دوباره بررسی کنیم.
6- سناریویهای “چه میشود اگر…”
اینکه بپرسیم آیا چیزی اتفاق میافتد یا خیر، میتواند به مکالماتی غیر بهینه درباره چرایی محتمل بودن یک خروجی نسبت به دیگری، منچر شود. اما با پرسیدن این سوال: چه میشود اگر این اتفاق بیفتد؟ میتوانیم وارد جست و جویی نتیجهبخش درباره عواقب احتمالی شویم.
به همین خاطر وقتی نسبت به مدل مطمئن شدیم، باید یک سناریوی مقدماتی را اجرا کنیم تا اندکی دید درباره ساختار سیستمی موجود بدست آوریم. برای مثال اگر تلاش کنیم نصف اختلاف تعداد کارکنان موجود و دلخواه را هر ماه پر کنیم و سه ماه نیز تا مشغول به کار شدن هر نیرو تاخیر داشته باشیم، میبینیم که تعداد کارکنان از مقدار 2000 نفر که دلخواهمان است بیشتر شده و سپس حول آن نوسان میکند (مانند شکل زیر).
در نهایت نفرات بیشتری نسبت به نیاز واقعی استخدام میکنیم چرا که سیاست استخدامی ما و تعداد “کارکنان کنونی”، افرادی که قبلا شروع به جذب کردهایم را در نظر نمیگیرد.
سپس این سوال پیش میآید که اگر تاخیر موجود در خود فرآیند استخدام را کم کنیم چه اتفاقی میافتد؟ (به جای اینکه تلاش کنیم تعداد افراد را افزایش دهیم) فرض کنید نفرات در دو ماه وارد موقعیت کاری خود میشوند (تابع تاخیر را به دو ماه کاهش میدهیم به جای سه ماه). چه انتظاری دارید؟
همانطور که در شکل نیز مشخص است، چنین کاری باعث میشود روانتر (با افت و خیز کمتر در تعداد کارکنان) به سطح مورد نظر نیروی انسانی برسیم.
سناریوی دیگری که میتوان بررسی کرد افزایش تعداد استخدام در هر مرحله است. تغییرات نیروی کار در هر ماه را معادل فاصله بین تعداد نفرات موجود و دلخواه در نظر میگیریم (اختلاف کارکنان*1= استخدام/تعدیل). به نظرتان چه اتفاقی میافتد؟
نتیجه غافلگیر کننده است. مقدار بیشتری از تعداد دلخواه، بالا میرویم. چنین سناریویی نوسانات بزرگتری ایجاد میکند؛ چون تعداد افرادی که در فرآیند محاسبه نشدهاند بیشتر است.
آیا راهی برای از بین بردن تمام نوسانات یک جا وجود دارد؟ اگر تعداد افرادی که در فرآیندجذب و آموزش هستند نیزهنگام پر کردن اختلاف در نظر بگیریم، چه خواهد شد؟ با تغییر مدل و صریحتر کردن این تغییر (به عنوان فرآیندی از افراد در حال ورود)، میتوانیم این سناریو را نیز تست کنیم.
دوباره فرض میکنیم هر ماه به اندازه نصف فاصله استخدام/تعدیل داریم (اختلاف کارکنان*0.5=استخدام/تعدیل)، نوسانات حذف خواهند شد. با وارد کردن فرآیند جذب افراد در مدل، در حال تغییر ساختار سیستم با اضافه کردن یک حلقه تعادلی هستیم(B2).
سایر مطالب تحلیل دینامیکهای سیستم:
- نمودارهای علت و معلولی: سیستم بر روی کاغذ
- علیت در مقابل همبستگی: بستنی عامل ارتکاب قتل
- تعیین قطبیت رابطه: بازخورهای مثبت و منفی
- نامگذاری حلقه های علیت: جلوگیری از جنگ سازمانی
- نامگذاری متغیرهای نمودار علیت
- تاخیر در سیستم: بنزین با قیمت بالا یا پایین؟!
- دینامیکهای سیستم و آموزگاران مدارس
- معرفی دوره خودآموز دینامیکهای سیستم: دانشگاه MIT
- شبیه ساز پرواز مدیریتی
- مدل کردن متغیرهای نرم
- از ابزارهای حسابداری تا مدل های دینامیک سیستم
- چه زمانی شبیه سازی دینامیک سیستم انجام دهیم؟
- از عوامل کلیدی موفقیت تا حلقه های کلیدی موفقیت
- از حلقه های علت و معلولی تا مدل کامپیوتری سیستم – 1
- از نمودار علت و معلولی تا مدل های کامپیوتری سیستم – 2