First -- Have one person, and only one person, in charge of the official schedule. Everyone will hate this, but it's a necessary evil. It's important that everyone plays by the same rules, and has the time they need to achieve their goals. You'll never satisfy everyone; not that it's not worth trying to do so, but it's more important to have everyone understand.
Second -- Put some air in the schedule. If there's, say, tech notes in the theater from 8 to noon, and an acting rehearsal beginning at noon, the tech crew may not have fully cleaned up by the time actors arrive ... which may also be slightly before noon. Put some flex-time between every different activity, and work to create the expectation that each group will be done *before* the end of their time, not *at* the end.
Third -- Don't overlap activities. I can't count the number of times I've had a director ask if they can have an acting rehearsal onstage while, say,
soft goods are getting hung. Or the sound engineer wants to set levels during the focus
call. Everyone tries to
play nice, no one wants to tell another department "No" ... but it only works to everyone's detriment.
Fourth -- When the schedule changes, make certain everyone knows about the change. I can't stress this enough. Too often one department will make a (seemingly innocuous) change, and the
production manager approve it ... only to find a third department is put out by the change. Of course, this is often a measure of how well the entire team has constructed their process beforehand.
Usually the forces that change schedules are outside the group's control -- a vendor postpones delivery of some necessary set elements; a rehearsal gets cancelled due a sickness or absence. Obviously things will need to
shift; just make certain that everyone affected understands why it's changing. A good department head will already have a fall-back plan in case something goes awry. Sometimes you can just let other people tell you how they'll adjust, rather than try and dictate a change in process to them.