task constraints, start dates, and calendars

T

theintern

I have Start dates auto input to Project from Access. Then resources are
leveled and it looks great, with one task immediately following the next.
But if i change calendars, for example to one that has a longer workday, then
while the bars do get shorter, as desired, the second task doesn't stay
backed up to the first task, i.e. there is now a gap of downtime between the
two tasks. This is because the second task was given a task constraint of
SNET, which keeps it from moving any closer to the first task. I'd just get
rid of the task constraint, but if i change it to ASAP then the task
immediately flies to the left, to the Project start date. Is there any way
to keep tasks backed up one after the other while changing calendars? I hope
this is clear.

thanks
scott
 
T

theintern

Nope, doesn't work. the task dependency doesn't supercede the task
constraint. Good idea though.
 
J

John

theintern said:
Nope, doesn't work. the task dependency doesn't supercede the task
constraint. Good idea though.

TheIntern,
I think what Jack meant was to get rid of the constraints and then link
tasks appropriately. Task dates should never be entered directly, either
manually or via automation. It sets a constraint and basically defeats
the scheduling engine of Project. In most cases all tasks should have a
predecessor, expect for tasks that truly have an independent start for
whatever reason. And every task in a schedule should have a successor,
even if it is only the finish milestone.

Why are start dates coming from Access anyway? Access is not a
scheduling application - Project is.

John
Project MVP
 
T

theintern

I'm making this for a team of take-off guys, i.e. they estimate the cost of
the jobs we bid on. They currently enter all data into an Access database.
Name of job, bid date, etc. None of these tasks are linked to each other.
any one can be done before the others. They just all have to get done before
the bid date. So in my head linking doesn't really make sense, because none
are dependent on the others. So i have it read in all the data from Access
and level appropriately. It does great if i'm not interested in changing the
calendars, but if i want to change to a 10 hour workday, for example, then it
changes it so the bars get shorter, but it doesn't keep the bars backed up
one to another for each resource, i.e. it creates downtime between tasks for
a resource. This is because of the constraints. any thoughts?

thanks
scott
 
J

John

theintern said:
I'm making this for a team of take-off guys, i.e. they estimate the cost of
the jobs we bid on. They currently enter all data into an Access database.
Name of job, bid date, etc. None of these tasks are linked to each other.
any one can be done before the others. They just all have to get done before
the bid date. So in my head linking doesn't really make sense, because none
are dependent on the others. So i have it read in all the data from Access
and level appropriately. It does great if i'm not interested in changing the
calendars, but if i want to change to a 10 hour workday, for example, then it
changes it so the bars get shorter, but it doesn't keep the bars backed up
one to another for each resource, i.e. it creates downtime between tasks for
a resource. This is because of the constraints. any thoughts?

thanks
scott

scott,
Yes, a couple quick thoughts. If all tasks are truly independent you
could remove the constraints after the import. Then apply leveling.
Given the priority of tasks, the leveling algorithm should move tasks as
necessary to avoid overallocation, but yet keep them contiguous with no
downtime.

If that doesn't work, then you will probably have to manually adjust the
dates after you change calendars. Not very efficient but then you aren't
really using Project as a scheduling application, you are using it more
as a task list - something that might be better done in Excel.

John
Project MVP
 
T

theintern

I've tried removing constraints and then leveling, but this creates a
problem. When constraints are changed to "ASAP" then the task goes flying to
the left, the project start date sometime in the past, so that none of the
tasks are where they should be.
 
M

Mike Glen

Oh dear! What you need to do it to go to Tools/Tracking/Update Project...
and reschedule uncompleted tasks to start - select today's date. This will
then set constraints to Start No Earlier Than today. Now you can level.

Mike Glen
MS Project MVP
See http://tinyurl.com/2xbhc for my free Project Tutorials
 
J

John

theintern said:
I've tried removing constraints and then leveling, but this creates a
problem. When constraints are changed to "ASAP" then the task goes flying to
the left, the project start date sometime in the past, so that none of the
tasks are where they should be.

theintern,
I assumed, perhaps incorrectly, that your Project Start date was set for
whenever you want the first task to start - and that may be the current
date. Nonetheless my fellow MVPs caught that missing piece of info.

John
Project MVP
 
T

theintern

So here is what i came up with. I didn't want to link any tasks, and i
needed it to keep everything back to back. there may be a better way, but
this seems to work great. it basically goes through and if any two tasks are
being done by the same resource (and not by certain resources Yes, HOLD, and
SPEC), then it changes that SNET constraint of the later task to be just one
hour after the earlier task. Thus, once leveled the task will be placed
immediately following the first task (assuming the first task takes at least
an hour).

'Changes task start dates
ViewApply Name:="&Gantt Chart"
Dim t1 As Task
Dim t2 As Task
Dim ts As Tasks
Set ts = ActiveProject.Tasks
For Each t2 In ts
If Not t2 Is Nothing Then
If t2.ID = 1 Then
Set t2 = ts(2)
End If
For Each t1 In ts
If Not (t1.ID = t2.ID) And Not (t1.ResourceInitials = "HOLD"
Or t1.ResourceInitials = "SPEC" Or t1.ResourceInitials = "Yes") Then
If t1.ResourceInitials = t2.ResourceInitials Then
If t1.Deadline < t2.Deadline Then
t2.ConstraintType = "Start No Earlier Than"
t2.ConstraintDate = t1.Start + (1 / 24)
Else
t1.ConstraintType = "Start No Earlier Than"
t1.ConstraintDate = t2.Start + (1 / 24)
End If
End If
End If
Next t1
End If
Next t2
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top