معمولاً همه وابستگیها را «FS» میگذاریم چون این تنها گزینهای است که در ذهن داریم. اما MSP چهار نوع وابستگی دارد: FS، SS، FF و FI. انتخاب اشتباه نوع وابستگی، برنامه شما را یا خیلی طولانی میکند یا غیرمنطقی. ترفند اصلی اینجاست: نوع وابستگی را از همپوشانی زمان شروع و پایان فعالیتها حدس بزنید.
چهار نوع وابستگی چیست؟
هر وابستگی دو رویداد دارد: پایان یا شروعِ فعالیت پیشین (Predecessor)، و پایان یا شروعِ فعالیت بعدی (Successor). ترکیب اینها چهار نوع میسازد:
Finish-to-Start: فعالیت بعدی فقط بعد از پایان پیشین شروع میشود. رایجترین نوع؛ مثلاً «بتنریزی» بعد از «قالببندی».
Start-to-Start: فعالیت بعدی همزمان یا بعد از شروع پیشین آغاز میشود. وقتی دو فعالیت میتوانند موازی کار کنند. مثلاً «دوخت پارچه» همزمان با «الگوبرداری» از پارچه آغاز میشود.
Finish-to-Finish: فعالیت بعدی فقط بعد از پایان پیشین تمام میشود. عالی برای فعالیتهایی که طولشان متفاوت است ولی باید همزمان ختم شوند؛ مثلاً «نصب کاشی» باید همزمان با «چسباندازی» تمام شود، نه اینکه بعد از اتمام چسباندازی ۱۰ روز بعد شروع شود.
Finish-to-Start (معکوس): فعالیت بعدی باید پایان یابد تا فعالیت پیشین شروع شود. نوعی نادر که بیشتر برای محدودیتهای منابع کاربرد دارد.
در MSP خودتان، هنگام وصل کردن دو فعالیت با کلیک روی فلش، پیشفرض FS است. برای تغییر نوع، روی وابستگی دابلکلیک کنید، تب Dependencies را باز کنید و نوع را عوض کنید. یا از نمای گانت، دو فعالیت را انتخاب و از منوی Task → Dependency نوع را مشخص کنید.
مثال واقعی: لولهکشی طبقات یک ساختمان
فرض کنید چهار طبقه داریم و لولهکشی هر طبقه ۴ روز طول میکشد. دو تیم لولهکش داریم که باید به ترتیب طبقات را کار کنند.
حالت اول: همه FS (برنامه طولانی)
تیم ۱: طبقه ۱ (روز ۱-۴) → طبقه ۲ (روز ۵-۸) → طبقه ۳ (روز ۹-۱۲) → طبقه ۴ (روز ۱۳-۱۶)
تیم ۲: طبقه ۱ (روز ۱۷-۲۰) → طبقه ۲ (روز ۲۱-۲۴) → ...
کل پروژه: ۳۲ روز
این برنامه سالم است اما غیرواقعی — چون وقتی تیم ۱ دارد طبقه ۲ را شروع میکند، تیم ۲ هیچ کاری ندارد و بیکار است. در واقعیت، به محض اتمام لولهکشی طبقه ۱ توسط تیم ۱، تیم ۲ همان طبقه را شروع میکند.
حالت دوم: SS با لگ (برنامه واقعی)
تیم ۱: طبقه ۱ (روز ۱-۴) → طبقه ۲ (روز ۵-۸) → طبقه ۳ (روز ۹-۱۲) → طبقه ۴ (روز ۱۳-۱۶)
تیم ۲: طبقه ۱ (روز ۵-۸) → طبقه ۲ (روز ۹-۱۲) → طبقه ۳ (روز ۱۳-۱۶) → طبقه ۴ (روز ۱۷-۲۰)
کل پروژه: ۲۰ روز
اینجا وابستگی بین «پایان طبقه ۱ تیم ۱» و «شروع طبقه ۱ تیم ۲» نوع SS است. اما کمی وقفه هم نیاز است — مثلاً ۱ روز برای بازدید کیفیت و تحویل طبقه. آن یک روز را با لگ مثبت میگذاریم: SS+۱.
در این حالت، هر دو تیم همیشه مشغولند و پروژه ۱۲ روز زودتر تمام میشود. این همان چیزی است که در هر جلسه کنترل پروژه باید بتوانیم نشان دهیم: «اگر همپوشانی را قبول کنید، ۱۲ روز وقت میگیرید.»
لالگ مثبت و منفی چه میکنند؟
لالگ (Lag) فاصله زمانی بین رویداد پیوند است. در MSP به صورت عدد با واحد زمان وارد میشود — مثلاً 2d برای ۲ روز.
- لالگ مثبت (+۱d): فعالیت بعدی بعد از رویداد پیوند آغاز/پایان مییابد. یعنی وقفه یا فاصله ایمن. مثل همان یک روز بازدید و تحویل در مثال بالا.
- لالگ منفی (-۲d): فعالیت بعدی قبل از رویداد پیوند آغاز/پایان مییابد. یعنی شروع زودتر. این یعنی همپوشانی عمدی — فعالیت بعدی ۲ روز قبل از پایان پیشین شروع میشود.
لالگ منفی در SS و FF بسیار رایج است. مثلاٌ در پروژه نفتی، «مونتاژ پمپ» میتواند ۲ روز قبل از پایان «رسیدن قطعات به سایت» شروع شود — یعنی کارگاه مونتاژ همزمان با ترانزیت قطعات کار را پیش میبرد. این کار را در MSP با SS و لگ -2d مدل میکنیم.
فرمول زمانبندی با لگ منفی:
تاریخ شروع فعالیت بعدی = تاریخ شروع فعالیت پیشین + لگ منفی
مثال: پیشین روز ۵ شروع میکند، لگ -2d
→ بعدی از روز ۳ شروع میشود (۲ روز زودتر)
لالگ منفی را با احتیاط مصرف کنید؛ MSP به صورت خودکار آن را محاسبه میکند و تاریخ شروع فعالیت بعدی را به عقب میاندازد، اما اگر پیشین جابجا شود، لگ منفی همیشه نسبت به همان رویداد پیوند باقی میماند — این ثابت بودن ریشهی منطقی است، نه یک باگ.
ترکیبهای کاربردی در یک جدول
در پروژههای واقعی، این ۴ الگوی وابستگی را بیش از ۹۰٪ مواقع میبینیم:
FS : بتنریزی ← قالببندی
FS+lag : نما ← بتنریزی (۳ روز لگ برای پخت بتن)
SS+lag : تاسیسات الکتریکی ← دیوارچینی (شروع سیمکشی همزمان با دیوار)
FF : پایان پاکسازی ← پایان نصب تجهیزات (هر دو همزمان تمام شوند)
FS : تست هیدروستاتیک ← اتمام جوشکاری لوله
SS-2d : مونتاژ ← رسیدن قطعات (همپوشانی ۲ روزه)
SS : پایش زمین ← حفاری (پایش همزمان با حفاری)
FF : پایان مستندسازی ← پایان اجرا (همزمان خاتمه مییابند)
FS : انتشار ← پذیرش درخواست (PR review)
SS+1d : تست خودکار ← کدنویسی (تستها ۱ روز بعد از شروع کد فعال میشوند)
SS : گزارشدهی ← توسعه (گزارش همزمان با توسعه بهروز میشود)
FS : آموزش کاربر ← انتشار نهایی
جمعبندی
انواع وابستگی در MSP فقط چهار گزینهاند و انتخاب درست آنها، ۸۰٪ کیفیت برنامه شما را میسازد. قانون کلی: اگر باید صبر کنید تا پیشین تمام شود، FS؛ اگر میتوانید موازی کار کنید، SS؛ اگر پایان فعالیت بعدی وابسته به پایان پیشین است، FF. لگ مثبت = وقفه ایمن، لگ منفی = همپوشانی عمدی. دفعه بعد که برنامهای میکشید، قبل از اتصال فعالیتها یک لحظه فکر کنید: آیا واقعاً ۱۰۰٪ باید صبر کنیم؟ اگر نه، احتمالاً SS یا FF با لگ مناسب جواب شماست و برنامهتان هم کوتاهتر، هم واقعیتر میشود.