Sure, that's the best way, but most people cannot do it; they risk being late for work, or in my case, getting the kids to school. (Actually, to be honest, my only risk is in not having as much time as I'd like before the kids wake up.)
A good second choice seems to be using something like 'Sleep Cycle' for iPhone, or one of these fancy new wristband accelerometer gizmos. I've had good success with Sleep Cycle, myself.