Progress depends on coaching, playing time, a little bit on success, and how far away they are from their projections. They can also receive promotion bumps.
My opinion...
I typically start 18/19 y/o out in rookie or LoA, depending on when I acquire them. 20 is typically LoA/HiA, 21 -- Hi-A/AA, 22 -- AA. If they're future major leaguers, they should never spend more than 1 season per level. And I treat Lo-A and Hi-A as 1 level, so my guys typically spend 1/2 a year at each.
If he's going to make the majors, I'd put your 20 y/o in Hi-A this year, AA next year, AAA the next, then ML when he's 23.