none
Show how much slack there is in a chain back from a fixed milestone RRS feed

  • Question

  • I have a milestone, lets say "report submitted to board" which has to be shown on a specific date.  There are a couple of a chains of activity leading up to this which are scheduled to finish a few days prior to this date (basically to give contingency).  Other than slinging a hammock task between these chains and the submission milestone is there anyway in project of showing the smallest total slack in the multiple chains leading up to the submission milestone?

    The reason I'd prefer to to use a hammock task is that I'd like to be able to filter on these key milestones and show this figure along side it. 

    I don't know how to get a screen shot into here so I'll have a go at describing it:

    Document A completes with 2 days spare (slack)

    Document B completes with 7 days spare

    Both feed into the fixed milestone "submit to board"

    How do I display the figure 2 days alongside the fixed milestone to signify that the preceeding task chain has 2 days slack in it.  This might allow the PM to see that there is sometiing in one of the chains that they need to discuss with the team.  It is sort of "backwards slack"...

    Many thanks

    Miles

    Thursday, February 9, 2012 4:13 PM

Answers

  • Miles,

    Will a reliable VBA procedure be less welcome than a corrupt prone paste link approach at your client's site? You make the call.

    I had to make some assumptions but this simple Open Event driven procedure should do what you want. The assumptions are, the "submit" milestone has only the one predecessor, the "ready to submit" milestone; the "submit" milestone is identified using the Flag1 field; you are using default definition of a day which is 8 hours. More complex code can be developed to eliminate or work around the assumptions, or to run the code manually (e.g. hotkey) or triggered by another event (e.g. Close Event). Open the VB Editor and paste this code into the code window for ThisProject.

    Private Sub project_open(ByVal pg As MSProject.Project)
    Dim t As Task

    For Each t In ActiveProject.Tasks
        If Not t Is Nothing Then
            If t.Flag1 = True Then
                t.Text1 = t.PredecessorTasks(1).TotalSlack / 480 & " days"
            End If
        End If
    Next t
    End Sub

    Hope this helps,

    John

     
    Monday, February 13, 2012 4:09 PM

All replies

  • MilesS2111S,

    Wow, positive slack, I've never had the pleasure of working on a schedule with positive slack. Obviously you're doing something right.

    You mention total slack in your lead-in paragraph but in your scenario you only talk about slack. Did you try displaying the Total Slack field? That will show you the relative total slack value with respect to the milestone. Assuming the "submit to board" milestone is not the last milestone in your plan, you may have to either do some mental math or use a simple macro to calculate the absolute total slack against that particular milestone, a custom field formula won't do it.

    Hope this helps.

    John

    Thursday, February 9, 2012 4:27 PM
  • Miles,

    Regarding the simple displaying of the information...It depends on how you want to display this information; graphically or in table form.

    To display slack graphically, from the Gantt Chart view, select the Format button, then in the Bar Styles command group, check the Slack check box.  By default this will display free slack information.  If you want the total slack to show, then change the Free Slack to Total Slack in the Bar Styles dialog box.  You can also have the Slack Gantt bar display the slack in terms of a number by using the text tab in the Bar Styles dialog box.

    If you want to display this info in a table format, as John eluded to... inserting the free slack and total slack columns in the table area will do the trick.

    Now to the bigger question about these chains coming together at one point.  There is no "easy" way of showing this.  Project will display the least amount of slack available given relationships and constraints.  When you use constraints and realtionships, this is where negative slack begins to happen.

    Regards,


    Gregg D. Richie, PMP, MCTS; Author, Microsoft Project 2010, Microsoft Official Academic Course Series


    Thursday, February 9, 2012 5:13 PM
  • LOL - happy days :)

    I use Total Slack as one of the more powerful tools in my armoury as planner and as PM however in this situation the actual milestone has 0 slack as it is fixed to the day of the deadline.  The closest I get to being able to see the desired information is the total slack figure on the preceeding milestone of "ready to submit to the board".  From the pure PM view this is fine however we'd like to be able to show the actual key milestone: "Submitted to board" with the slack from the preceeding milestone displayed along side. 

    The only way I can see of doing this so far is to Paste Link from the Total slack of the "ready to submit" milestone into a text field however I waa wondering if there was a neater way fo doing this to give this information to any milestone flagged as "key".

    Thanks

    Miles

    Friday, February 10, 2012 7:21 AM
  • Gregg

    Thanks for the information on slack etc - all good stuff and I find Total slack very useful when managing plans etc and negative slack is always bad news :)

    The question is more about looking backwards for the slack in the tasks leading to the flagged milestone.  In this situation we have an intentional gap between the tasks and the deliverable and it is this gap which I'd like to be able to reflect along side the actual milestone for a report (rather than any useful day to day management tool).

    Regards

    Miles

    Friday, February 10, 2012 7:24 AM
  • Miles,

    At first I had a little trouble understanding your structure so I emulated it in a simple plan - two tasks, document A and document B, both feeding a "ready to submit milestone" milestone task. I then added a "submit" milestone 3 days later to simulate your deadline milestone. The total slack from the ready to submit milestone was 3 days and I believe that is what you want to show in an extra field (e.g. Text1) adjacent to the deadline milestone. Hopefully I got that right, or at least close enough.

    Upon hearing you are using a paste link my first thought is, bad idea. Paste links are very fragile and even within a given project they set up a case for corruption waiting to happen, although if managed with utmost discipline paste links can work. However, the difference between your ready to submit milestone and the deadline milestone is as you say contingency time. One way of handling that is to insert a contingency task with a duration equal to the existing total slack. This "task" is adjusted as necessary to equal the positive slack available. So one approach that doesn't involve paste links is to add contingency tasks where necessary and then you can display them next to deadline milestones. One big advantage of this approach is it is a lot easier for management types, who may not understand the concept of total slack, to readily see the buffer in the schedule. Yes, it takes a little manual effort to set up and maintain, but it is very descriptive and easy to comprehend.

    If the above approach is just doesn't do it for you, then as I mentioned earlier, VBA could be used to take the positive total slack value and dump it into an extra field for display next to the deadline milestone(s).

    Hope this helps.

    John

    Friday, February 10, 2012 3:58 PM
  • John

    This mimics the approach which I may end up using - stringing a hammock task between the two milestones (though that uses a pair of paste links and I note your dislike of these) as I don't want to have to manually modify the duration of the "buffer" task everytime.

    I fear that without a paste link or VBA I will not be able to show the preceeding slack alongside the milestone and I worry that VBA may not be either allowed or welcome at the client site.

    In case it is how would I go about doing this and is it something that auto runs or I need to actually trigger?

    Many thanks

    Miles

    Monday, February 13, 2012 2:26 PM
  • Miles,

    Will a reliable VBA procedure be less welcome than a corrupt prone paste link approach at your client's site? You make the call.

    I had to make some assumptions but this simple Open Event driven procedure should do what you want. The assumptions are, the "submit" milestone has only the one predecessor, the "ready to submit" milestone; the "submit" milestone is identified using the Flag1 field; you are using default definition of a day which is 8 hours. More complex code can be developed to eliminate or work around the assumptions, or to run the code manually (e.g. hotkey) or triggered by another event (e.g. Close Event). Open the VB Editor and paste this code into the code window for ThisProject.

    Private Sub project_open(ByVal pg As MSProject.Project)
    Dim t As Task

    For Each t In ActiveProject.Tasks
        If Not t Is Nothing Then
            If t.Flag1 = True Then
                t.Text1 = t.PredecessorTasks(1).TotalSlack / 480 & " days"
            End If
        End If
    Next t
    End Sub

    Hope this helps,

    John

     
    Monday, February 13, 2012 4:09 PM