Starting a task early RRS feed

  • Question

  • I am sure this is something simple but my brain is full and I can't figure it out.  I have a construction schedule where I have backed into dates that I need materials onsite using the SF dependency.  There are 3 task linked to when I need materials onsite.  Goes like

    Submittal development - SF of submittal approval

    Submittal approval - SF of materials leadtime

    Material lead time - SF of when I need materials onsite.

    But I am starting to get submittals earlier than the constraint is calculating.  So when I put in the dates is does shows 0 days as the duration and then turns into a milestone.  I thought it would be a start no later than constraint but that doesn't work either.

    I appreciate your help

    Thursday, March 8, 2018 10:00 PM

All replies

  • cwby44,

    That's interesting, my brain is nearly empty so I'm normally "runnin' on empty" (Jackson Browne)

    Based on your stated scenario, this is what it should look like. Submittal approval and materials onsite should both be milestones since there are points in time.

    Are you not seeing this structure?


    Thursday, March 8, 2018 10:17 PM
  • Essentially yes.  I have a few days duration for the submittal approval.  But yes you got it.
    Thursday, March 8, 2018 10:18 PM
  • cwby44,

    Oh, and don't enter any dates manually, other than the "material onsite" date. Doing so will set a constraint and nullify the dynamic linking.


    Thursday, March 8, 2018 10:23 PM
  • I am not entering anything manually.  The material onsite is calculated automatically based on my task, the duration, and dependencies.  But when I get submittals to be a few weeks before they are due everything gets screwed up.  Should I have set it up differently? 
    Thursday, March 8, 2018 10:36 PM
  • Maybe I should further explain that the material onsite is another SF predecessor derived based on my construction schedule which is determined by the rest of the calculated schedule.
    Friday, March 9, 2018 1:08 AM
  • cwby44,

    I set up the example based on my interpretation of what you want to do and that is to start with a material onsite requirement and work back to determine when you need the "submit development". If you have a different scenario then present that in more detail and/or with a screen shot and we'll work from there.


    Friday, March 9, 2018 1:40 AM
  • cwby44,

    your question is a very common one and comes up in many different situations and projects. To answer it, we have to go back to some of the basics, real basic, such as what you are trying to achieve and the method of scheduling that is built into the scheduling engine of MSP.

    If you start off by saying that you want to use the critical path method (CPM), then you are obliged to stick to some rules to make that method work for you. Of course, whether you have explicitly made that decision and said so, you definitely do want to use CPM because there is no realistic alternative. The CPM is built in to the scheduling engine of MSP, and that is a good thing. It is a simple yet powerful and elegant method and if you understand it and use it properly, and interpret the results correctly, MSP and CPM will become your next best friends.

    Your use of SF predecessors is what is screwing you up. CPM is about starting with a start date and scheduling forwards, and scheduling everything to happen as soon as possible. You are trying to schedule backwards from a finish date. You seem to be starting with a "known" date for materials on site and then working out with the SF predecessors when each of the other tasks and events have to finish.

    More later. Any help so far?

    Friday, March 9, 2018 1:54 AM
  • I think your stated scenario is wrong.

    Every time you create a task, you have to ask three questions:

    1. What is the estimated duration?
    2. Which task has to be finished before this task can start? You want the FS0 Predecessor.
    3. Which task can't start until this task is finished? You want the FS0 Predecessor.

    If you do this, then for one thing you are using CPM.
    Whatever other predecessor a task might have, the one you need first is the FS0 predecessor.
    Whatever other successor a task might have, the one you need first is the FS0 successor.

    A task may have more than one FS0 predecessor. Find them all.
    A task may have more than one FS0 successor. Find them all.

    I think your scenario should be FS0 all the way.

    You can't start to submit approval until, or any earlier than, the finish of submit develop.
    You can't start to material leadtime until, or any earlier than, the finish of submit approval.
    You can't start to material onsite until, or any earlier than, the finish of material leadtime.

    This is made a bit difficult by your task names which are not crystal clear, and you may need a few more taks or milestones as well. Task names should start with verbs. From your names, I am guessing that you should have something like this, and all FS0 predecessors:

    submit a development application (0 days)
    wait for development approval (2 days)
    obtain development approval (0 days)
    submit an application for something else (0 days)
    wait for approval for that (2 days)
    get approval for that (0 days)
    order materials (0 days)
    wait for material (5 days)
    deliver materials (0 days)
    have materials on site (0 days)

    Once you model it like this, you will have found the earliest possible date to have the materials on site, from the submission of the development application.
    You will also the earliest start, earliest finish, latest start and latest finish for all of the tasks and milestones.

    This is the vitally important information you want/need, and is the reason for using CPM and MSP.

    Now, you may say that if the chain of events starts at day 1 and only takes 9 days, does this mean I am going to have the materials on site at the end of day 9, even if I don't want the materials on site until day 45, say.

    That does not really matter. You have found out what you set out to find out, and found out what you need, and what you can have. Compared to all that, what you want is irrelevant, or at least it is the next part of the problem. Those start and finish dates are the earliest possible start and finish dates. It does not mean that these are the dates that these events are going to happen. Once you know what you can have, then and only then should you be concerned about what you want.

    You are not writing a bus timetable. Of course everyone thinks that the Gantt chart shows the dates when the events are (definitely) going to happen, which is just a common misunderstanding and erroneous interpretation of what they are looking at. All you have to do to get the materials on site on a particular date (must be after day 9), is choose the appropriate start date for the start of the chain of events, ie a SNET constraint on the first task.

    Any help?

    Friday, March 9, 2018 7:02 AM
  • At point 3, should read

    3. Which task can't start until this task is finished? You want the FS0 successor.

    Friday, March 9, 2018 7:03 AM
  • Let's put a name to these materials. Suppose they are 6 pallets of bricks.
    You may say that you don't want the bricks on site on day 9 because you don't need them until various construction tasks have happened first, mainly after the slab has been poured, and you don't want them on site until then because they will take up space, or you will have to provide storage room, or the pallets will make access difficult, or kids will steal them at night, or the warranty clock starts ticking from delivery and you want to extend that as far as possible (this one applies more to, say, if the material is a diesel engine that has to be installed in a boat).

    Anyway, it can be summed up like this:

    Friday, March 9, 2018 7:35 AM
  • Once you have this modeled up in a closed network, you know a great deal about your project. The most important thing is you know which tasks are on the critical path, and which tasks are critical. Clearly, the critical path runs through construction, not through the supply chain of events. Good to know. A relief, in fact. But you also know something useful about the noncritical tasks. You know how much float they have. MSP calls it slack.

    Because you also know the earliest dates and the latest dates, you know the latest date that you can start "material leadtime", or, really, the latest date that you can place the order and start the leadtime clock ticking.

    This information is in the schedule table, and if you tick the box on the format ribbon, you can see the critical and noncritical tasks. Like this:

    Friday, March 9, 2018 7:47 AM
  • Man, I appreciate all your help.  Just finished pouring a big concrete slab so now I can get back into my schedule.  I am going to look all of the answers when my computer charges up.  I am thankful for all your help.


    Saturday, March 10, 2018 7:30 PM
  • Mike, I thought we had lost you there, or you had lost interest. This is only the beginning. There is more, much more, to it. As I said previously, we have had to go right back to the basics to start to answer your original question.

    One thing I would suggest, is that you keep all of the supply chain tasks (orders, lead times and deliveries) in a separate section from the construction tasks. I have noticed that builders are very fond of putting the deliveries in amongst the construction tasks. A better work breakdown structure is this, where each order is a FS0 predecessor of each wait, and each wait is a FS0 predecessor of each delivery, then each delivery is a FS0 predecessor of each respective construction task which is somewhere way down in the construction section:

      Place order for x
      Place order for y
      Place order for z

    Lead times
      Wait for x
      Wait for y
      Wait for z

      Deliver x
      Deliver y
      Deliver z

    Sunday, March 11, 2018 12:46 AM
  • That is exactly like I have it set up sir.  So I basically am going to start over because it is getting to screwed up.  I am going to go back and start to set it up like you have indicated above.  I only get to work on this at night so I have been busy.  I really do appreciate your help.


    Friday, March 23, 2018 4:27 PM
  • So I have a question Trevor.  I understand your logic in not using SF.  I know I hate it.  So how to you make sure you have materials onsite when you need it?  That is where I am getting hung up while reworking the schedule.

    I appreciate your help sir.

    Saturday, March 24, 2018 7:50 PM
  • Mike,

    hmmm.. where to start?

    First of all, adopt the critical path method and stick the rules that make the CPM work. The first rule is that all tasks are to be scheduled as soon as possible.

    If you don't use CPM, or depart from it at the first excuse, then you don't know the early dates and the late dates, and you don't know how much float every task has and you don't know which tasks have zero float. That is a lot of important and useful information not to have.

    Just because the software allows SF, FF, SS and positive and negative lag, does not mean that you have to use them or should use them or that they are a good idea. Sure, in some very exceptional situations they might be of some use. Usually, however, you should aim for strictly FS and zero lag. It's cleaner, much easier to interpret and it always produces a plan which is easy for everyone to understand and which is feasible. Also, it will make tracking and updating easy. You are not thinking far enough ahead, to what has to be done during the project execution. If you have 12 month construction project you will spend 4 weeks writing the initial plan, and then every week for 48 weeks you will be following it as closely as possible, recording progress and updating and then re-planning and re-scheduling as necessary, as circumstances unfold and as newer and better information emerges. If you start with a plan which is an indecipherable ball of spaghetti, the tracking and updating will fall apart in the first few weeks. Then where will you be? At sea without a map.

    Builders often complain that it is all too difficult and too much trouble to track and update frequently, and it certainly is if they have started off with a plan which is, well, let's face it, a steaming pile of crap.

    No amount of weird predecessor links and lag will get the materials on site when needed. But knowing the earliest and latest dates that the order can be placed will. It means you will have the information necessary to make informed decisions, instead of just treating everything as urgent.

    As I have said before, you are not writing a bus timetable. When the default Gantt chart is presented, the tasks are all shown at the earliest dates. Many people, because they are too lazy to take the trouble to understand what they are looking at, take these to be the dates when things will happen. They are not. They are just the earliest dates that they could happen. There are other views, such as the detail Gantt view, that also shows the float. The schedule table shows the earliest and latest dates and the two flavours of float. The information is all in there, and it is reliable if the CPM network has been assembled properly.

    The other really, really important thing is to be prepared to chop up the project into small parts. I already did this above, where I mentioned that you did not have enough tasks, events and milestones. More detail leads more simplicity and more control. It is very easy to make a few more tasks so that you can use only FS0 predecessors. It is a lot harder to have not enough tasks and then try to get the overlaps etc by using contortions with the weird links and lag. The art is in making it all simpler, not more and more complicated. Construction projects are not complicated unless you make it so. The very best planning work by people who know what they are doing, is clean and simple. The worst is the opposite. When a plan is chock full of weird links and lag, not only can't anyone else understand or explain it, but the guy who wrote it can't explain it.

    How are we doing so far?

    Saturday, March 24, 2018 9:13 PM
  • We are doing good, thanks.  I have reworked the schedule and removed the SF with negative lag durations and that is definitely helping.  However, while I understand that setting everything up this way will make it easier, how do I know when I am in trouble because a piece of material hasn't been ordered and now with the lead time being X it won't be on the job in time?  Make the lead on the material a milestone?  Is there something else maybe not as severe as a milestone?  Milestone's for me are like foundation is complete, roof is dried in, exterior complete, etc.

    Thanks for bearing with me.  I thought I was pretty proficient in projects until I started this schedule.

    Sunday, March 25, 2018 2:17 AM
  • Mike,

    You will know that the delivery of the material is later than when it is required when you track the progress and update the plan, and the scheduled delivery date becomes later than the scheduled start date of the task which needs the material.

    That's the whole point of doing the tracking/updating frequently and correctly.

    Or to put it another way, and using the example above, if the order still hasn't been placed when its latest finish date has passed. In the example above, the order, wait and delivery is not on the critical path. But if the order is not placed until after the latest finish date for it, then the order, wait and delivery will be on the critical path, and the construction tasks preceding the task will get pushed off it.

    The ordering task is no different from any other task. Anything noncritical, if delayed long enough, will become critical.

    You set a status date. Look at a task which was scheduled to happen last week. It didn't happen. Re-schedule it to happen asap in the future after the status date. A few more days of its float has been consumed. The following week, the status date is moved to the right. The task is now scheduled to happen last week relative to the current status date. It didn't happen, so it gets re-scheduled again asap in the future after the status date. A few more days of its float has been consumed. As the task's float gets further and further diminished each week, it is getting closer to being critical.

    This is how it would be done even if there was no software tool to do it with. But the software does the calculations, which makes it a lot easier.

    I suspect that you do not fully appreciate how to track and update.
    I guess now we will have to have a long discussion about that.
    First, tell me how you would track and update.

    Meanwhile, I have to go sailing so I will get back to you in a few hours.

    Sunday, March 25, 2018 5:02 AM
  • MIke,

    This picture shows the first few tasks of a project. Each of the orders is a FS0 predecessor to a wait.

    The status date is defined in project information and is the date up to which we are measuring progress, and it is 6 days after the scheduled start of the project. The status date is shown as an event milestone in the task list, and it has a MFO date constraint. It is also displayed in the chart as a vertical red gridline. Since all of the orders were scheduled to start asap, and they have no predecessors except the project start milestone, they are all scheduled to start on day 1. At the start of day 1. The only one which is critical at this point is the first one. When we track and update, we need the status of every task which is scheduled to the left of the status date. Let's suppose that the first order was placed as scheduled, but none of the others were. task 5 can be marked on track, and it gets an actual start date/time. The rest have to be re-scheduled to asap in the future, or asap after the status date. The status date is the boundary between the past and the future. Nothing can be scheduled to happen in the past.

    Monday, March 26, 2018 7:03 AM
  • Mike,

    After the first order is marked on track, we can suppose that the first wait A, the first delivery A and the first construction task A all happened as scheduled and can be marked on track as well. And don't forget to mark the project start milestone on track as well. When the orders which didn't happen are all moved to the status date, the critical path now runs through D, starting at the order for D. Pretty obviously, the finish date of the project has been extended as well, and all of the construction tasks have been re-scheduled (but we will get to them in minute). After this, some time passes, tasks get done or don't get done, and the status date moves to the next Monday, the 9th.

    Monday, March 26, 2018 7:18 AM