I usually start switching them when they are done growing and holding weight. If the are getting fat then the extra nutrients in puppy food is not needed. I find that most neutered and spaying dogs can change at 8-9 months, intact dogs usually need to stay on it longer.
Examples of my dogs.
I changed Ember at 8 months, she was done growing and even though she was intact at the time,she was gaining too much weight. She went right to an adult maintenace food. I always struggle with her weight.
Juctice stayed on puppy food until he was 14 months old and then switch to a preformance food. He was done growing at 10 months but was intact, really actice and had a hard time maintaining weight. He still does even at almost 8.
Diva, I switch at 11 months almost 1 yr and she went onto the preformance food Justice was on. Only reason I switched her was I didn't want to buy another bag of puppy. She was like Justce really activem intact and had a hard time holding weight. At 1.5yrs is holding weight better. She has been on raw for 1 month as her co owner wanted to put her on that because she was so skinny. She is doing great on it.