About a month before I write out a list of people to buy for and a rough idea of what I'd like to get, then I do bits and pieces when I can in the following week. I try and do most of it without the kids because it takes much longer and they find it hard to keep something as a surprise.
Absolutely as early as possible to avoid any Christmas time stress, and if there are presents to be had online I make sure to order them before the final day of November so they have ample time to make it home.
I do bits and pieces through the year when there are sales or when I see things. Occasionally this has backfired as by the time Christmas rolled around the person I'd bought the thing for had decided they didn't want it any more. I shop online a fair bit because it's easier than taking the kids to the shops with me.