The two things that work for us are having a motivator and scaffolding beforehand.

Right now, the motivator is DD12s new school, which places a high priority on attendance. She doesn't want to miss her bus, so once we get her up, she tends to move. If she were really slow, at this point we'd let her be late and take the consequences. That's way more effective than yelling (we know first hand).

In terms of scaffolding, we make sure she gets a shower and finishes any work the night before. Even if she's up a little later. That works because she's much better at night than in the morning, where she's too incoherent to study anyway. We push as much of this earlier in the evening as we can as well. This reduces the amount of stuff that needs to happen in the morning and the number of distractions. Plus I still handle lunch and breakfast. We get her up as late as possible so that she can do the basics and get out the door without too much stress, but without dawdling.

This sounds weird, but if she has more time, to read or study or suddenly decide that none of her outfits work or that she wants a different hairstyle or that her room needs cleaning... it's a lost cause, she'll putter endlessly. But by giving her just enough time to eat, dress, clean up, and head out, it keeps her moving.

The hard part for us is the getting out of bed part. Once she's up, it's pretty much autopilot, but until she's out of bed, she's likely to just fall right back asleep. We're still working on that one.

My end goal is to not have to do anything except set the coffee the night before and kiss her goodbye.