Harry Kim was an ensign for seven years because Starfleet pays attention to it's recruit's ability levels. Not everyone can be James T. "Four years? I'll do it in three" Kirk.
Compare Star Trek
with the Voyager episode "Nightingale" to see how Kirk and Kim's first commands compare.
Here's to the next 40 years of Harry Kim's ensignhood!