الفبای روش مسیر بحرانی (Critical Path Method)
روش مسیر بحرانی (Critical Path Method یا CPM) یکی از کاربردیترین ابزارها در مدیریت پروژه است که بهویژه در پروژههای بزرگ و پیچیده، نقش کلیدی در کنترل زمان ایفا میکند. این تکنیک با شناسایی فعالیتهایی که بیشترین تأثیر را بر زمان تحویل پروژه دارند، به مدیران کمک میکند تا برنامهریزی دقیقتری داشته باشند، منابع را هوشمندانهتر تخصیص دهند و از تأخیرهای احتمالی پیشگیری کنند.
در این مقاله، با اصول محاسبه مسیر بحرانی، یک مثال ساده برای درک بهتر آن، و همچنین نقش نرمافزار بهتایم در پیادهسازی این روش آشنا خواهید شد.
فهرست مطالب
روش مسیر بحرانی (Critical Path Method) چیست؟
روش مسیر بحرانی (Critical Path Method) به زبان ساده یعنی پیدا کردن طولانیترین مسیر بین فعالیتهای یک پروژه که تعیین میکند پروژه در سریعترین حالت، چه زمانی به پایان میرسد. این مسیر معمولاً با کمک یک نمودار پروژه بهخوبی قابل مشاهده و تحلیل است.
چطور مسیر بحرانی را پیدا میکنیم؟
- لیست کردن فعالیتها:
اول، همهی فعالیتهای موردنیاز برای انجام پروژه را فهرست میکنیم. هر فعالیت یک نماد (مثلاً یک عدد یا حرف) دارد، همراه با مدت زمان انجام آن و فعالیتهایی که باید قبل از آن انجام شده باشند (پیشنیازها).
- مرتبسازی فعالیتها:
فعالیتها به ترتیب انجامشدنشان مرتب میشوند؛ یعنی هیچ فعالیتی قبل از ثبت پیشنیازهایش وارد نمودار نمیشود.
- رسم نمودار:
هر فعالیت بهصورت یک دایره نمایش داده میشود و زمان انجام آن داخل دایره نوشته میشود. سپس با فلشها، رابطه بین فعالیتها مشخص میشود (یعنی چه فعالیتی بعد از کدام میآید).
- اضافه کردن نقطه شروع و پایان:
فعالیتهایی که پیشنیاز ندارند، به یک نقطه شروع وصل میشوند. فعالیتهایی که فعالیت بعدی ندارند، به یک نقطه پایان وصل میشوند.
- یافتن مسیر بحرانی:
حالا میتوان مسیرهای مختلفی را از شروع تا پایان روی نمودار دید. با جمع کردن زمانهای هر مسیر، مشخص میشود طولانیترین مسیر کدام است، که همان مسیر بحرانی است.
مسیر بحرانی طولانیترین مسیر زمانی از شروع تا پایان است.
در اصل، مسیر بحرانی گلوگاه پروژه است:
چون اگر یکی از فعالیتهای این مسیر تأخیر داشته باشد، کل پروژه هم دیرتر تمام میشود. پس مسیر بحرانی کمک میکند روی مهمترین بخشهای پروژه تمرکز کنیم.
مثال برای روش مسیر بحرانی (Critical Path Method): ساختن خانه
پروژه ساخت خانه به آسانی با تکنیک روش مسیر بحرانی (CPM) تحلیل میشود. لیست فعالیتهای اصلی (همراه با زمان تخمینی و پیش نیاز آنها) در شکل زیر نشان داده شده است.
در این شکل ستون «پیشنیاز» توالی فعالیتها را تعیین میکند و ما را قادر میسازد تا نمودار پروژه (شکل زیر) را ترسیم کنیم. در هر دایره حرف قبل از کاما، فعالیت را مشخص میکند و عدد بعد از کاما زمان فعالیت را نشان میدهد.
با حرکت در جهت فلشها میتوانیم ۲۲ مسیر منحصر به فرد را از شروع تا پایان، با حداقل زمان ۱۴ روز (مسیر abcrvwx) تا حداکثر زمان ۳۴ روز بشماریم (مسیر abcdjklntsx). دومین مسیر، بحرانی است. زمان کلی پروژه را تعیین میکند و به ما میگوید که کدام فعالیتها از نظر تأثیرشان بر این زمان بحرانی هستند.
اگر پیمانکار بخواهد خانه را در کمتر از ۳۴ روز تکمیل کند، کوتاه کردن فعالیتهای خارج از مسیر بحرانی بیفایده است. مثلاً ممکن است به نظر او آجرکاری (e) پیشرفت را به تأخیر بیندازد، زیرا پیش نیاز گروهی از فعالیتها (p-q-v-w) است. اما در عمل، عجله در تکمیل آجرکاری بینتیجه خواهد بود، زیرا در مسیر بحرانی قرار ندارد و بنابراین در تعیین زمان کل پروژه بیتاثیر است.
روش مسیر بحرانی (CPM) ابزار مفیدی است زیرا:
- به سرعت توجه را بر روی فعالیتهایی متمرکز میکند که برای زمان پروژه بحرانی هستند و
- روشی آسان برای تعیین اثرات کوتاه کردن فعالیتهای مختلف در پروژه ارائه میدهد.
با وجود این مزایا حتی در پروژه خانهسازی کوچک ما هم، روند شمارش و اندازهگیری طول هر مسیر خسته کننده است، به همین دلیل در ادامه یک روش ساده برای یافتن مسیر بحرانی توضیح داده شده است.
الگوریتم یافتن مسیر بحرانی در روش مسیر بحرانی (CPM)
۱) یافتن زودترین زمانِ شروع و پایان
اگر زمان شروع پروژه را بدانیم (که با S نشان داده میشود)، میتوانیم برای هر فعالیت مشخص کنیم که زودترین زمانی که میتواند شروع شود چه زمانی است. به این زمان، زودترین زمان شروع (ES) میگویند. این زمان، وقتی بهدست میآید که همه فعالیتهای قبلی هم در سریعترین حالت ممکن انجام شده باشند. حالا اگر انجام فعالیت، مثلاً t روز طول بکشد، زودترین زمان پایان آن (EF) برابر است با:
EF = ES + t
یک راه ساده برای محاسبه زمانهای ES و EF با استفاده از نمودار پروژه وجود دارد:
- مقدار S را در سمت چپ و سمت راست Start بنویسید.
- برای هر فعالیتی که پیشنیازهایش مشخص شدهاند، به سمت راست هر پیشنیاز نگاه کنید و بزرگترین عدد را پیدا کنید. این عدد را در سمت چپ فعالیت بنویسید. این عدد زمان شروع اولیه آن است.
- زمان فعالیت (t) را به این عدد اضافه کنید و نتیجه (EF) را در سمت راست فعالیت بنویسید.
- ادامه دهید تا به Finish برسید.
در پایان این محاسبات، زمان ES برای هر فعالیت در سمت چپ دایرهای که آن را مشخص میکند و زمان EF آن در سمت راست دایره ظاهر میشود. عددی که در سمت راست آخرین کار (پایان) ظاهر میشود، زودترین زمان پایان (F) برای کل پروژه است.
به طور خلاصه:
- ES که زودترین زمان شروع هر فعالیت است در سمت چپ آن ظاهر شده و ماکزیمم اعداد سمت راست پیش نیازهایش است.
- EF که دیرترین زمان پایان هر فعالیت است و در سمت راست هر فعالیت ظاهر میشود از ES+t به دست میآید. (t زمان انجام هر فعالیت است.)
برای شفافسازی این محاسبات، فرآیند تولید ساده زیر را در نظر بگیرید:
یک کالا باید از دو قطعه A و B ساخته شود. هر دو قطعه باید تراشکاری شوند و B باید جلا هم داده شود. (A نیازی به جلا ندارد.) فهرست فعالیتهایی که باید انجام شوند، همراه با پیشنیاز و زمان انجامشان بر حسب دقیقه، در شکل زیر آورده شده است.
نمودار پروژه در شکل زیر نشان داده شده است. همانطور که قبلاً گفته شد، نام هر فعالیت قبل از کاما و زمان آن بعد از کاما ظاهر میشود. همچنین با فرض اینکه زمان شروع S صفر باشد، زمانهای ES و EF برای هر فعالیت نشان داده شده است. زمان ES در سمت چپ دایره هر فعالیت و زمان EF در سمت راست آن ظاهر میشود. توجه داشته باشید که زودترین زمان پایان برابر ۱۰۰ است یعنی F = 100.
۲) یافتن دیرترین زمانِ شروع و پایان
اکنون فرض کنید که یک زمان هدف (T) برای تکمیل پروژه داریم (واضح است که T باید بزرگتر یا مساوی F که زودترین زمان پایان پروژه است، باشد). با این فرض، میتوانیم مفهوم دیرترین زمان پایان (LF) را تعریف کنیم. یعنی آخرین زمانی که یک فعالیت میتواند به پایان برسد، بدون اینکه باعث تاخیری بیش از زمان هدف پروژه (T) شود. به طور مشابه، دیرترین شروع (LS) به صورت LF-t تعریف میشود و t زمان انجام فعالیت است.
از انتهای پروژه قبلی به سمت ابتدای آن محاسبات را شروع میکنیم:
- مقدار T را در سمت راست و چپ Finish بنویسید.
- برای هر فعالیتی که تمام فعالیتهای بعد از آن (پسین) مشخص شدهاند، به عدد سمت چپ هرکدام از آن فعالیتهای بعدی نگاه کنید. کوچکترین عدد را پیدا کنید و در سمت راست فعالیت فعلی بنویسید. این عدد، دیرترین زمانی است که فعالیت فعلی میتواند تمام شود بدون اینکه پروژه عقب بیفتد.
- زمان فعالیت را از این عدد کم کنید و نتیجه را در سمت چپ بنویسید.
- ادامه دهید تا به شروع برسید.
در پایان این محاسبه، زمان LF برای یک فعالیت در سمت راست دایرهای که آن را مشخص میکند، و زمان LS در سمت چپ دایره ظاهر میشود. عددی که در سمت راست Start ظاهر میشود، دیرترین زمانی است که کل پروژه میتواند شروع شود و همچنان در زمان هدف T پایان یابد.
در شکل زیر این محاسبات را برای مثال فرآیند تولید انجام دادیم. در اینجا T = F = 100 است و زودترین زمانِ شروع و پایان و دیرترین زمانِ شروع و پایان را با نقطه ویرگول جدا میکنیم. پس، ES ; LS در سمت چپ فعالیت و EF; LF در سمت راست آن ظاهر میشود.
۳) پیدا کردن شناوری کل (Total Slack)
بررسی شکل بالا نشان میدهد که زودترین زمان شروع برخی از فعالیتها با دیرترین زمان شروعشان برابر است، در حالی که برخی دیگر اینطور نیستند. تفاوت بین زودترین و دیرترین زمان شروع یک فعالیت (یا بین زودترین و دیرترین زمان پایان آن) شناوری کل (TS) نامیده میشود. شناوری کل بیانگر حداکثر زمانی است که یک فعالیت ممکن است به تعویق بیفتد، بدون اینکه اتمام پروژه را به تاخیر بیندازد.
قبلاً فعالیتهای بحرانی را فعالیتهایی در طولانیترین مسیر پروژه تعریف کردیم. یعنی فعالیتهای بحرانی به طور مستقیم بر زمان کلی پروژه تأثیر میگذارند. اکنون میتوانیم مسیر بحرانی را به مفهوم شناوری مرتبط کنیم.
انواع دیگری از شناوری هم وجود دارد، درباره آنها بیشتر بخوانید.
۴) پیدا کردن مسیر بحرانی
- اگر تاریخ هدف پروژه (T) برابر با زودترین زمان پایان پروژه (F) باشد، یعنی پروژه باید دقیقاً در همان زمانی که میتواند زودتر از همه تمام شود، به پایان برسد. در این حالت، فعالیتهای بحرانی هیچ شناوری (تاخیر مجاز) ندارند، یعنی شناوری کلی (Total Float) آنها صفر است و نمیتوان آنها را عقب انداخت. فعالیتهایی که شناوری مثبت دارند، در مسیر بحرانی نیستند. به این معنی که این فعالیتها را میتوان کمی عقب انداخت بدون اینکه زمان پایان کل پروژه تغییر کند.
- باید بدانید که اگر T بزرگتر از F باشد، آنگاه فعالیتهای بحرانی شناوری کلی برابر با T-F خواهند داشت که مقدار حداقل شناوری است. همه فعالیتهای غیر بحرانی شناوری کل بیشتری خواهند داشت.
در نمودار بالا، مسیر بحرانی با فلشهای پررنگ نمایش داده شده است. در این مثال فقط یک مسیر بحرانی وجود دارد، ولی در پروژههای دیگر ممکن است چند مسیر بحرانی وجود داشته باشد.
مثلاً در این پروژه:
- فعالیت b میتواند تا ۱۰ روز عقب بیفتد بدون اینکه مشکلی ایجاد شود (TS = 10)
- فعالیت d هم تا ۳۰ روز اجازه تأخیر دارد (TS = 30)
پس این دو فعالیت بحرانی نیستند.
بازگشت به مثال خانهسازی برای محاسبات روش مسیر بحرانی (Critical Path Method)
گفته شد که اگر T بزرگتر از F باشد، آنگاه فعالیتهای بحرانی شناوری کلی برابر با T-F خواهند داشت. در شکل زیر نمودار فعالیتهای خانهسازی را بازتولید میکنیم، ES و LS را در سمت چپ و EF و LF را در سمت راست هر فعالیت مینویسیم. فرض میکنیم که ساخت و ساز در روز صفر شروع میشود و باید تا روز ۳۷ تکمیل شود. از آنجا که قبلا محاسبه کردیم F=34، تمام فعالیتهای بحرانی در این مسیر دارای شناوری کلی ۳=۳۴-۳۷=T-F روز هستند. یک مسیر بحرانی وجود دارد که در نمودار نشان داده شده است.
با مشاهده نمودار به اطلاعات زیر میرسیم:
- در صورت عدم رخداد مشکلات پیشبینی نشده، پیمانکار میتواند شروع به کار را ۳ روز به تعویق بیندازد و همچنان آن را طبق زمابندی کامل کند. (تفاوت بین زودترین و دیرترین زمانها را در پایان ببینید). این باعث میشود سه روز از شناوری کلی همه فعالیتها کاسته شود و بنابراین TS برای فعالیتهای بحرانی به صفر برسد.
- فعالیتهای e، p، q،v و w دارای میزان شناوری کلی (۹ روز) هستند. پیمانکار میتواند از این فعالیتها به عنوان فعالیتهای “پر کننده” برای کارگران در مواقعی که مهارتهای آنها برای فعالیتهای بحرانی ضروری نیست، استفاده کند. با دستکاری فعالیتهای دارای شناوری اوج تقاضا برای کارگران یا تجهیزات خاص کاهش داده میشود.
محاسبه مسیر بحرانی با نرم افزار مدیریت پروژه
محاسبه مسیر بحرانی برای فعالیتها میتواند بسیار ارزشمند باشد، اما انجام محاسبات به صورت دستی برای بیشتر پروژهها به دلیل پیچیدگی آنها غیرممکن است. استفاده از ابزارهای مدیریت پروژه مانند بهتایم راهکار مناسبی است. این نرم افزارها محاسبات مسیر بحرانی را انجام داده و نتیجه را در اختیار شما قرار میدهند. به عنوان مثال برای محاسبه مسیر بحرانی در بهتایم کافیست مراحل زیر را انجام دهید:
- پروژه را در بهتایم تعریف کنید.
- فعالیتهای پروژه را تعریف کنید و یا آنها را به بهتایم وارد کنید. (تاریخ شروع و سررسید فعالیتها را مشخص کنید.)
- به گانت چارت پروژه مراجعه کنید و روابط پیشنیازی را با چند کلیک ساده برقرار کنید.
- پس از این مرحله، بهتایم مسیر بحرانی را با قرمز کردن فعالیتهای روی آن به شما نمایش میدهد.
نتیجه مقاله الفبای روش مسیر بحرانی (Critical Path Method)
برای مدیران پروژه CPM یک ابزار قدرتمند و انعطافپذیر برای تصمیمگیری است:
- در مراحل مختلف مدیریت پروژه، از برنامهریزی اولیه یا تحلیل برنامههای جایگزین گرفته تا زمانبندی و کنترل فعالیتهایی که یک پروژه را تشکیل میدهند، مفید است.
- میتوان آن را در انواع مختلفی از پروژهها به کار برد.
- به روشی ساده و مستقیم، روابط متقابل مجموعه فعالیتهایی که یک پروژه بزرگ را تشکیل میدهند، نشان میدهد.
- این روش با استفاده از نمودار پروژه به راحتی برای افراد غیر متخصص قابل توضیح است. محاسبات دادهها برای پروژههای بزرگ به راحتی میتوانند توسط رایانه انجام شوند.
- مجموعه فعالیتهایی را که برای زمان اتمام پروژه حیاتی هستند، مشخص میکند، بنابراین به برنامهریزی و کنترل دقیقتر کمک میکند.
- به مدیر امکان میدهد تا گلوگاههای بالقوهای را که ممکن است از کوتاه کردن فعالیتهای بحرانی ناشی شوند، پیشبینی کند.
- منجر به تخمین معقولی از هزینههای پروژه برای تاریخهای تکمیل مختلف میشود و مدیر را قادر میسازد تا زمانبندی بهینه را انتخاب کند.
مراجع:
با سلام خیلی آموزنده و مفید بود ممنون
متشکر
خواهش میکنم