سلام آقای الياس پور. من مجددا مزاحم شدم
می شه در مورد تفاوت بين relationship ها و constraint ها تو msp توضيح بدين. آيا اگه برای فعاليتی هر دو مورد تعريف بشن ، اولويت خاصی از طرف برنامه به اونا اعمال می شه ؟ اگه برای يه فعاليت deadline تعريف بشه و اين با دو تای قبلی در تضاد باشه ، چه اتفاقی ميفته ؟
خيلی ممنون می شم اگه راهنمايی کنين. راستش من تو يه شرکت برای کار کنترل پروژه استخدام شدم و تو اين مورد زياد اشکال دارم. اگه اشکالی نداشته باشه ، بازم مزاحمتون می شم.
ممنونم
سلام خانم سارا
خواهش می کنم. خوشحال می شم که بتونم کمکی بکنم. البته شما هم حق دارين چونکه که نرم افزار MSP خيلی وسيع و پيچيده ست و تسلط به همه ريزه کاريهای اون وقت گير هست.
در مورد relationship يا رابطه بايد توجه داشته باشين که بين حداقل 2 فعاليت تعريف می شن. اگر فعاليت A می بايست قبل از شروع فعاليت B تکميل شده و يا مقداری پيشرفت داشته باشه ، در اينصورت فعاليت A رو predecessor ئ فعاليت B رو successor می گن.
نکته مهمی که بايد توجه داشته باشين اينه که هر نوع relationship تو برنامه ، يه محدوديت هست و اضافه شدن اون يا تو زمان بندی بی تاثير هست و يا اينکه باعث ايجاد تاخير می شه. پس تا حد امکان سعی کنين که از روابط soft logical چشم پوشی کنين و در مورد روابط hard logical هم اگر می تونين از تکنيک های ديگه ای مثل کنترل منابع استفاده کنين ، مگر اينکه واقعا چاره ای نداشته باشين.
چند تا نکته در مورد روابط :
1. وجود فعاليتهايی که پيش نياز و پس نياز ندارن ، نشون دهنده اشکال تو برنامه ريزی پروژه هست.
2. اگر فعاليتی هيچ پيش نيازی نداشته باشه ، می بايست هم زمان با شروع پروژه ، شروع بشه. اگر اينطور نشد ، اشکالی تو برنامه ريزی شما وجود داره. همچنين اگر فعاليتی هيچ پس نيازی نداشته باشه ، بايد هم زمان با نکميل پروژه ، تکميل بشه و اگر اينطور نشد ، باز هم اشکالی تو برنامه ريزی شما وجود داره.
3. اگر فعاليتی پيش نياز فعاليت ديگه ای بود ، به طور مستقيم يا غير مستقيم نمی تونه پس نياز اون هم باشه.
4. تو MSP علاوه بر task ها می شه روی summary task ها هم رابطه تعريف کرد که در اينصورت ، محدوديت روی همه فعاليت های زيرمجموعه اون هم اعمال خواهد شد.
در مورد constraint يا قيد ها بايد اينو بگم که نوع ديگه ای از محدوديت ها هستن تنها به يک فعاليت اعمال می شن. تو MSP برای هر فعاليت می شه يه constraint تعريف کرد. البته از نظر منطقی و فيزيکی ، برای هر فعاليت می شه بيشتر از يه قيد تعريف کرد ، اما خب MSP اجازه اين کارو نمی ده و شما بايد مهمترين قيد رو تعيين کنين.
همونطور که می دونين 4 نوع رابطه و 8 نوع قيد وجود داره. تو MSP به طور default روی همه فعاليت ها قيد ASAP اعمال می شه.
نکنه مهم : اگه برای يه فعاليت از قيد ALAP استفاده کنين ، MSP برای برنامه ريزی از total slack اون فعاليت استفاده می کنه. در حاليکه تو PRIMAVERA اينطور نيست و برای برنامه ريزی از free float فعاليت استفاده می شه.
چند تا نکته مهم :
1. مقادير فيلد های start و finish در هر شرايطی توسط خود MSP محاسبه می شه و اگه شما تو اين خونه ها مقدار وارد کنين ، اين مقادير لزوما تو برنامه ريزی اعمال نمی شن ، بلکه به صورت يه constraint خودشون نشون می دن.
2. استفاده از قيدهای FNLT و SNLT تو پروژه هايی که بر مبنی start date نوشته می شن ، صحيح نيست. همينطور استفاده از قيدهای SNET و FNET تو پروژه هايی که بر مبنای finish date نوشته می شن هم کار صحيحی نيست و باعث اشتباه محاسباتی می شه.
3. به طور default اگر تناقضی بين relationship ها و constraint ها به وجود بياد ، MSP اولويت رو به constraint ها می ده. البته شما می تونين اين تنظيم برنامه رو عوض کنين. برای اين کار به منوی Tools | Options و به زبانه schedule برين. اگر مايل بودين که موقع بروز تناقض ، اولويت به روابط داده بشه ، گزينه زير رو غير فعال کنين :
Tasks will always honor their constraint dates
4. تو هر task که دارای روابط و قيدهايی باشه ، از نظر محدوديت زمانی ، تنها يک و يا تعداد معدودی از اين روابط و قيد ها از همه سختگيرانه تر هستن. اينها باعث می شن که فعاليت مورد نظر موقع زمان بندی پروژه يه bottle neck محسوب بشه. به چنين عناصری driver گفته می شه. حالا اگه driver از نوع رابطه باشه به اون driving relationship و اگر از نوع قيد باشه ، به اون driving constraint گفته می شه. برای مشاهده driver ها بايد گزينه task driver رو از منوی Project فعال کنين.
5. در مورد deadline ها بايد به اين نکته توجه داشته باشين که اونا جنبه alarm دارن و محدوديتی تو برنامه ريزی ايجاد نمی کنن. يعنی از نوع constraint نيستن و مشکلی موقع تناقض ايجاد نمی شه.
اميدوارم تونسته باشم جواب سوالای شما رو بدم.
موفق باشين