When you change the start date manually, you are setting a Start no Earlier than constraint and wiping out the SNLT. Project cannot know about your "cushion" - it assumes if you said 20 days - it will take 20 days. My suggestion is to set the duration to 10 days and then set a deadline on the task of June 27. I would also create a milestone for the Approval task, linked F to S to the programming task. Move the milestone around, leaving the programming task alone.
|