روش مسیر بحرانی یک الگوریتم بهینهسازی منابع است که برای برنامهریزی بهتر فعالیتهای پروژه استفاده میشود. تکنیک مورد نیاز برای استفاده از روش مسیر بحرانی این است که برنامهای ایجاد شود که شامل موارد زیر باشد:
- فهرست کارهایی که برای تکمیل پروژه باید انجام شوند.
- وابستگی میان کارها مختلف.
- تخمین زمان لازم برای کامل شدن هر یک از کارها.
با استفاده از این اطلاعات میتوانید مسیر بحرانی که عبارت است از طولانیترین مسیر کارهایی که به هم وابسته هستند را از ابتدای پروژه تا انتها مشخص کنید.
هنگامی که مشخص کردید کدام فعالیتها در طولانیترین مسیر قرار دارند به راحتی میتوانید تشخیص دهید که کدام کارها را میتوان بدون اخلال در روند تکمیل پروژه به تعویق انداخت.
استفاده از روش مسیر بحرانی در یک پروژه
اکنون سعی میکنیم مفهوم روش مسیر بحرانی را با یک مثال ساده برایتان توضیح دهیم. فرض کنید میخواهیم یک جشن بزرگ برگزار کنیم. چگونه برای چنین پروژهای برنامهریزی و آن را اجرا میکنید؟
۱. تعریف کردن دامنهٔ پروژه
ابتدا باید همهٔ کارهایی را که برای تکمیل پروژه باید انجام شوند مشخص کنیم. برای جشنمان احتمالا باید کارهای زیر را انجام دهیم:
- انتخاب تاریخ و محل برگزاری جشن.
- انتخاب موزیکهای مورد نظر.
- راهاندازی سیستم صوتی.
- دعوت کردن دوستان.
- خرید غذا و نوشیدنی.
- پختن غذای مخصوص خودتان.
- برگزار کردن جشن.
هنگامی که این کارها را به صورت مجزا بررسی میکنیم متوجه میشویم که بیشتر آنها را نمیتوان قبل تکمیل کردن دیگر کارها انجام داد. معنای این حرف این است که بعضی از کارها به کارهای دیگر وابسته هستند. این وابستگی را به صورت زیر نشان دادهایم:
اسم کار | وابسته به |
انتخاب تاریخ و محل برگزاری | – |
انتخاب موزیکها | – |
راهاندازی سیستم صوتی | – |
دعوت کردن دوستان | انتخاب تاریخ و محل برگزاری |
خرید غذا و نوشیدنی | دعوت کردن دوستان |
پختن غذای مخصوص خودتان | خرید غذا و نوشیدنی |
برگزار کردن جشن | غذای مخصوص و سیستم صوتی |
کارهایی مانند «دعوت کردن دوستان»، «خرید غذا و نوشیدنی»، «پختن غذای مخصوص» و «برگزار کردن جشن» یک مجموعهٔ به هم وابسته تشکیل دادهاند که باید با ترتیب خاصی انجام شوند تا جشن با موفقیت برگزار شود. چنین کارهایی فعالیتهای متوالی نامیده می شوند. این کارها همراه با شروع پروژه («انتخاب تاریخ و محل برگزاری») مهمترین گامها برای کامل کردن پروژه هستند. درنتیجه این فعالیتهای در مسیر بحرانی پروژه قرار میگیرند.
۲. تحلیل مسیر بحرانی
مفهوم اصلی که پشت تحلیل مسیر بحرانی وجود دارد این است که شما نمیتوانید بعضی از کارها را پیش از به پایان رسیدن کارهای دیگر آغاز کنید. این کارها باید با ترتیب مشخصی تکمیل شوند و هرکدام باید پیش از آغاز کار دیگری انجام شوند. مسیر بحرانی عبارت است از آن دسته از کارهای متوالی که تکمیل کردنشان به زمان بیشتری احتیاج دارد. کارهایی که در مسیر بحرانی قرار میگیرند باید با دقت و خیلی نزدیک به هم مدیریت شوند. اگر هر کدام از این کارها با مشکل روبهرو شوند باید به سرعت اقدامات لازم برای برگرداندن پروژه به برنامه زمانبندی انجام شوند، در غیر این صورت کل پروژه با تاخیر همراه خواهد شد.
فرض کنید پروژهای در دستتان است که باید در مدت ۳۰ روز تکمیل شود. اگر اولین کاری که در این مسیر قرار دارد با یک روز تاخیر انجام شود، در این صورت تکمیل پروژه ۳۱ روز طول خواهد کشید، مگر اینکه اقداماتی انجام شود که کارهای مسیر بحرانی یک روز زودتر به پایان برسند. مسیر بحرانی مشخص میکند که در چه تاریخی پروژهتان به پایان خواهد رسید.
۳. مسیرهای متفاوت برای انجام پروژه
ممکن است در پروژهای کار کنید که بیش از یک مسیر بحرانی دارد. در چنین پروژههایی مسیرهای مختلف به صورت همزمان باید دنبال شوند. این اتفاق ممکن است به دلیل وابستگیهای چندگانهای که میان کارهای وجود دارد اتفاق بیافتد یا اینکه چند توالی مختلف از کارها دقیقا به یک اندازه طول بکشند.
ممکن است مسیر بحرانی شامل همهٔ کارهای مهم درون پروژه باشد یا همهٔ کارهای اصلی را دربر نگیرد. درواقع همهٔ کارهایی که در مسیر بحرانی قرار دارند لزوما مهمترین بخش پروژه را شامل نمیشود. همچنین ممکن است کارهایی وجود داشته باشد که در مسیر بحرانی قرار نداشته باشند اما موفقیت پروژهتان به آنها بستگی داشته باشد. فهم روش مسیر بحرانی همچنین شامل مشخص کردن فعالیتهایی است که باید سر وقت به پایان برسند. اما دیگر فعالیتهایی که بیرون از مسیر بحرانی قرار میگیرند نیز ممکن است بسیار مهم باشند و به توجه ویژهای احتیاج داشته باشند.
محدودیتهای منابع چه هستند و چرا اهمیت دارند؟
برنامهریزیهای سنتی در روش مسیر بحرانی برای مدیریت کردن پروژه تنها وابستگیهای علی را در نظر میگرفتند. ما از ابتدا این نوع از وابستگی را در نظر گرفته بودیم (برای مثال نمیتوان غذای مخصوص را پیش از خرید مواد غذایی پخت). اما هر پروژهای محدودیتهایی در منابعاش دارد که آنها نیز باید در نظر گرفته شوند. این محدودیتها وابستگیهای بیشتری ایجاد خواهند کرد که به آنها محدودیتهای منابع گفته میشود.
اگر در قالب یک تیم روی پروژه کار میکنید احتمالا بخشهای مختلف پروژه را بین افراد تیمتان تقسیم میکنید. در مثال خودمان هنگامی که مشغول انتخاب کردن تاریخ جشن و محل برگزاری و دعوت کردن دوستانتان هستید، یکی از دوستانتان میتواند موزیکهای مورد نظر برای مهمانی را انتخاب کند و یکی دیگر از دوستانتان میتواند کار خرید غذا و نوشیدنی را برعهده بگیرد. برای سرعت بخشیدن به روند کار میتوان این کارها را به صورت موازی پیش برد. اما اگر خودتان تنها فردی هستید که پروژه را انجام میدهید با محدودیت منابع روبهرو هستید چرا که نمیتوانید در یک لحظه در دو مکان مختلف حضور داشته باشید. در چنین مواردی مسیر بحرانی به شکل متفاوتی مشخص خواهد شد. بیایید فرض کنیم که ابتدا باید تاریخ و محل برگزاری جشن را انتخاب کنید و پس از آن است که میتوانید آهنگهای مورد نظرتان را انتخاب کنید. اما با توجه به شرایط پروژه میتوانید این کارهای را با ترتیبهای مختلفی انجام دهید.
این نوع از مسیر بحرانی، مسیر بحرانی منابع نامیده میشود. این روش به نوعی بسط یافتهٔ روش سنتی تحلیل مسیر بحرانی است و به ما اجازه میدهد محدودیتهای منابع مربوط به هر کار را نیز در نظر بگیریم. هنگامی که برنامهٔ زمانبندی را با توجه به منابع تنظیم میکنیم ممکن است تاخیرهای بیشتری ایجاد شود (برای مثال در دسترس نبودن یک منبع در زمان نیاز) و ممکن است طول مسیر را بلندتر کند.
محاسبه کردن زمان پروژه
در مدیریت پروژه یک مسیر بحرانی عبارت است از مجموعهای متوالی از کارهای به هم وابسته که بیشترین زمان را برای به اتمام رسیدن نیاز دارند و به شما نشان میدهد که کارآمدترین خط زمانی ممکن برای کامل کردن پروژه کدام است. بیایید به مثال جشن خودمان برگردیم و فرض کنیم قرار است خودتان همهٔ کارها را انجام دهید. در جدول زیر زمان تخمینی هر کدام از کارها را مشخص کردهایم. همچنین زمان تقریبی شروع هر کدام از کارها را در مسیر بحرانی نشان دادهایم. نتایج در جدول زیر نشان داده شدهاند:
کار | مدت زمان | شروع |
انتخاب تاریخ و محل برگزاری | ۲ ساعت | دوشنبه |
انتخاب موزیکها | ۳ ساعت | دوشنبه |
راهاندازی سیستم صوتی | ۱ ساعت | دوشنبه |
دعوت کردن دوستان | ۲ روز | دوشنبه |
خرید غذا و نوشیدنی | ۱ روز | سهشنبه |
پختن غذای مخصوص خودتان | ۲ ساعت | چهارشنبه |
برگزار کردن جشن | ۲ ساعت | چهارشنبه |
اکنون اگر زمان لازم برای انجام کارهای بحرانی را به جدول اضافه کنیم، زمان تقریبی لازم برای تکمیل کل پروژه مشخص خواهد شد. در این مثال به ۳ روز و ۶ ساعت زمان احتیاج داریم چرا که «انتخاب موزیکها» و «راهاندازی سیستم صوتی» در مسیر بحرانی قرار ندارند. اگر این مدت زمان به زمان آغاز کار اضافه کنیم میتوانیم زودترین زمان تکمیل پروژه را محاسبه کنیم. فهم روش مسیر بحرانی این امکان را برای ما فراهم میکند که چنین محاسبههایی را سریع و دقیق انجام دهیم.
انعطافپذیری در روش مسیر بحرانی
روش مسیر بحرانی برای پروژههای پیچیده اما قابل پیشبینی طراحی شده است. اما در عمل به ندرت با چنین پروژههایی روبهرو میشویم. جدول زمانبندیای که با استفاده از تکنیکهای روش مسیر بحرانی ایجاد میشوند را معمولا نمیتوان به طور دقیق اجرا کرد. همانطور که پیش از این نیز بیان کردیم هر تاخیری که در فعالیتهای مسیر بحراین اتفاق بیافتد بهطور مستقیم تاریخ تکمیل پروژه را به تاخیر میاندازد. توجه داشته باشید که در طول پروژه ممکن است الزامات جدیدی اضافه شود و محدودیتهای تازهای در منابع رخ دهد.
فرض کنید میخواهید برای تغییر دکوراسیون اتاق پذیرایی با یکی از دوستانتان برنامهریزی کنید. فهرست کارهایی که باید انجام دهید به شکل زیر خواهد بود:
۱. خالص شدن از مبلمان قدیمی.
۲. رنگ کردن دیوارها.
۳. تعمیر کردن سقف.
۴. چیدن مبلمان جدید.
مسئولیتهای دوستتان عبارتند از:
۱. انتخاب پردههای جدید.
۲. آویزان کردن پردههای جدید.
کارهای موازی در مسیر بحرانی
در مثال بالا کارهای مربوط به پردههای یک زیر پروژه ایجاد میکنند که میتوان مانند یک مسیر غیر بحرانی با آن رفتار کرد. دوستتان میتواند کار «انتخاب پردههای جدید» و «آویزان کردن پردههای جدید» را هر زمانی پیش از به پایان رسیدن پروژه انجام دهد. کار پردههای از نظر زمانی انعطافپذیر است و به اصطلاخ «شناور» نامیده میشود. این کارهای موازی هستند و در مسیر بحرانی قرار نمیگیرند. اگر هر کدام از کارهای موازی بیش از حد تاخیر داشته باشند میتوانند مانع تکمیل به موقع کل پروژه شوند. درنتیجه همشیه باید مراقب کارهای موازی باشید.
ایجاد تغییر در مسیر بحرانی
اکنون فرض کنید که انتخاب پردهها توسط دوستتان بیش از چیزی که انتظار داشتهاید طول کشیده است. این اتفاق باعث به تاخیر افتادن زمان تکمیل پروژه میشود. تغییر دکوراسیون ما بدون داشتن پردههای جدید کامل نمیشود، درنتیجه مسیری که تا پیش از این بحرانی نبود اکنون به مسیر بحرانی تبدیل شده است. به این ترتیب مسیر بحرانی اولیه تغییر میکند.
برای اینکه مراقب کارهای غیربحرانی باشید باید برنامهٔ زمانی پروژهتان را بهروز نگه دارید. این تنها راهی است که میتوانید به طور کامل وضعیت پروژهتان را تحت نظر بگیرید و از مسیر آیندهٔ آن مطلع باشید.