Guild of Project Controls: Compendium | Roles | Assessment | Certifications | Membership

Tips on using this forum..

(1) Explain your problem, don't simply post "This isn't working". What were you doing when you faced the problem? What have you tried to resolve - did you look for a solution using "Search" ? Has it happened just once or several times?

(2) It's also good to get feedback when a solution is found, return to the original post to explain how it was resolved so that more people can also use the results.

Closing open ends in MS Project and FS-links with negat

2 replies [Last post]
Bo Johnsen
User offline. Last seen 8 years 7 weeks ago. Offline
Joined: 28 Feb 2006
Posts: 119
Further to a recent discussion on Planning Planet about minus lag (in a different forum), I would like to hear how different planners out there using MS Project are making sure that all start and finish dates are secured, i.e. that there are no open ends for any activity in their contractual programmes, if NOT using FS-links with a lead (negative lag).

As MS Project (at least up to version 2000) do not have the capability of using ladder-logic (both SS and FF links between the same 2 activities) I do not see any other way out than the following options:

1) Apply constraints on relevant activities, but constraints are a “No No”, so that is not a correct solution.
2) Only have FS-links with zero (and/or positive) lag between activities, but then the programme becomes extremely detailed for most larger construction projects and also for a contractual programme. Being so detailed it most probably also loose its value as a management tool as no foreman or other people working in the field want to look at the programme, thereby only becoming a programme for the people in the site office and further “up the ladder” to discuss.
3) Find relevant activities in the programme where a SS link can be applied to one activity and a FF link to another activity, but in reality this can only be done properly for a few activities.
4) Use the FS-link with a negative lag, which for me is "the lesser evil" when using MS Project.

Maybe there are some other options and/or opinions. If so, I would be glad to know.


Regards,

Bo



P.S. Please no remarks about "Stop using MS Project then" or "Real planners don’t use MS Project", etc.

Replies

Ray Messinger
User offline. Last seen 4 years 26 weeks ago. Offline
Joined: 28 Mar 2001
Posts: 32
Groups: None
Here a a macro that will link two selected tasks S2S and F2F by adding a Finish milestone between them. It will add the S2S lag if they are overlapped.

Sub LinkS2SF2F()
’**********************************8
’* This macro will connect selected tasks with Start-to-Start & F2F ties
’*
’* Ray Messinger 8-Aug-08
’*
’**********************************

Dim tt As Task
Dim tt1 As Task
Dim tt2 As Task
Dim myProj As Project

minperday = ActiveProject.HoursPerDay * 60

Set myProj = ActiveProject
Set myTasks = ActiveSelection.Tasks
fName = ActiveProject.name

If myTasks.Count <> 2 Then
MsgBox "You must have two tasks selected for this macro to work"
Exit Sub
End If

Dim TaskIDs(2)
For Each tt In myTasks
tcnt = tcnt + 1
TaskIDs(tcnt) = tt.ID
Next

’--- Add Start to Start ---
For t = 1 To tcnt - 1

Set tt1 = myProj.Tasks(TaskIDs(t))
Set tt2 = myProj.Tasks(TaskIDs(t + 1))

Sdate1 = tt1.Start
Sdate2 = tt2.Start
DDiff = Application.DateDifference(Sdate1, Sdate2)
dlagday = Int(DDiff / minperday)
dlagday = dlagday & "d"

tt2.TaskDependencies.Add tt1, pjStartToStart, dlagday ’add predecessor to task2
tt2.ConstraintType = pjASAP

Next

’-- Add Finish Milestone ----
tid = tt1.ID
NewID = tid + 1
ActiveProject.Tasks.Add name:="The New Task", Before:=NewID ’insert after

Set NewTask = myProj.Tasks(NewID)

With NewTask
.name = tt1.name & " Finish"
.Calendar = tCalName
.Duration = 0
End With

NewTask.TaskDependencies.Add tt1, pjFinishToStart, 0
tt2.TaskDependencies.Add NewTask, pjFinishToFinish, 0


Beep
End Sub
Trevor Rabey
User offline. Last seen 1 year 21 weeks ago. Offline
Joined: 29 Nov 2005
Posts: 530
Groups: None
Your option 2) is best, regardless of the downside considerations that you mention, which I think are not very significant.
Options 1) and 4) are the worst.
I don’t understand option 3).
I notice that you favour option 4) without mentioning the arguments against it.

Before software, project planning was possible.
Then early software made critical path method networking possible even though functionality was limited to FS links with positive or zero lag only.

It is still possible, and recommended good practice, to use only FS links with positive or zero lag.

Start with some rules and stick to them, and don’t just bend or break them for convenience.

Every Task should have at least one FS predecessor and one FS Successor.
When it seems necessary to use other kinds of links and negative lag, it is really a sure indicator that the Tasks need to be chopped up into smaller pieces.

Lots of Milestones can be very useful as predecessors or successors for Tasks which don’t appear otherwise to have one.

Other links can be applied, as extras, after every Task gets at least one FS predecessor and one FS Successor.

FS links are a good representation of reality. Every Task cannot start until some other Task is finished.

FS with negative lag is a joke, and evil as can be. The signal for the start of a Task B goes off in the future and it is impossible to know when to start Task B, ie when you are x Days before the finish of Task A. It is like jumping off the starting blocks at the swimming pool 0.5 seconds before the gun goes off.