In the MS Project file I am building, some of the tasks depend on environmental conditions – specifically tidal currents being below a certain flow speed. I know precisely the start, finish and duration of every ‘slack water’ period – when the flow speed drops below the critical threshold – but each slack period is different in length and the pattern is irregular. Each slack water period typically lasts between 30 minutes and 2 hours, on an approximately 6-hourly cycle. However, I need to be able to work with specific timings for every slack period: average timings are not accurate enough.
Essentially, if the next task requires the flow speed to be below the critical threshold, and the next slack water period does not start for another 3 hours, then the whole project must wait 3 hours for the slack period to start.
I have had 2 attempts at solving it that have come close, but neither has worked. The attempts are:
1) At the top of the Gantt Table, enter a series of dates/times to represent the start of every ‘Slack Water’ period, essentially a list of milestones. It is possible to manually select one of these milestones for every task that is dependent on slack water. This works fine for the initial schedule: every slack-dependent task only starts when the next slack water period starts, and the gaps that appear in the schedule are accepted. However, the problem starts when the project is live: delays happen, and some of the slack-dependent tasks overshoot the end of their planned slack water periods. In reality the project would wait for the next slack water before those critical tasks can start, but I have not found an automatic way of MS Project re-selecting the next available slack water period. This would amount to MS Project automatically changing certain task dependencies, which I believe is not possible. I believe it’s also not possible to use ‘IF’ logic to determine the timings of tasks (but if it were possible, then perhaps there would be a way of using compound IF statements to select the most appropriate slack-milestone in the Task Dependency column based on the ‘estimated finish’ date/time of its predecessor task).
2) Enter a Resource called ‘Slack Water’, and input the precise times when that resource is available to work, according to the start and finish times of each slack water period. This is on the basis that the Resource Calendar would supersede the Project Calendar for the tasks on which the 'Slack Water' resource is assigned. In principle I thought this should work, until I realised that the Resource Availability information cannot be entered for such short time periods, or for more than one period per day. For this approach to work, I would need to enter 4 short periods of availability per 24 hour cycle, which I now believe is not possible.
Can anyone suggest how either of these approaches could be successfully amended, or to explain an alternative solution within MS Project?