Create the project structure in the normal way. Pay attention to risks, and take care not to miss out any activities: team members won't have any slack time from task-level contingency time to pick up any extras that are discovered along the way.
Gather estimated durations for each task. Start by asking for the time for 90% confidence of success this is the time most people will give if unprompted. Then ask for the time for which we would be only 50% confident of success (make clear that you fully expect half of these estimates to prove to be low, and you will not regard this as a mistake on the estimator's part).
Set the task timing in the baseline plan using the 50% estimates.
Allocate resources to tasks and identify the critical chain using both task dependency and resource constraints.
Add a project buffer calculated using the aggregated differences between the 50% estimates and the 90% estimates.
Add feed buffers to isolate the critical chain from non-critical workstreams. Schedule non-critical workstreams as latest-start rather than earliest-start, so as to make it easier to focus on getting the project up and running at the start.
Add resource buffers as required to ensure that critical resources are available when required.
As always: work the plan.
Assign tasks to named individuals, but avoid giving exact deadline dates unless absolutely necessary (to meet an externally driven timetable, for example). Instead insist that tasks should be completed as soon as possible.
When monitoring progress, expect that 50% of tasks will overrun the 50% likely time, and 50% will finish early. Try not to criticize any team member whose task overruns as long as they started as soon as they had the necessary inputs, they worked 100% on the task (without multitasking), and they passed on their outputs as soon as they were available. Similarly, make clear that you expect tasks that are completed early to be handed over early, so as to get the benefit of positive variation.
Use the resource buffers to ensure that critical resources are never idle or unavailable.
Monitor usage of the project buffer against actual progress made to determine the true status of the project. Plan for recovery when buffer usage exceeds progress by more than 33%, and enact the recovery plan if buffer usage exceeds progress by more than 66%.
Monitor usage of feed buffers to warn of possible impact of non-critical workstreams on the critical chain, and take pre-emptive action before any such event.