Each year, we like to run a series of posts called "90-in-90." The idea is that we'll take a look at every player on the roster, from the very bottom to the top and break them down a few ways. This roster will certainly change, and some days we'll have more than one so it's not exactly 90 players in 90 days. At this point, it's a name we're keeping around for street cred.

When the San Francisco 49ers brought in running back LaMichael James, I think his future spot on the roster was pretty clear. He was going to come in and either provide a one-two punch with Kendall Hunter or a running back to be named later, and he was going to fight to be the primary running back. He had all the tools to make that happen, with a few concerns to be ironed out.

That didn't happen.

James ended up with 27 carries in his rookie year, with a 4.6 yards-per-carry average. It was unremarkable, but most still expected him to get more carries last season. That ended up ... not happening, leading to James complaining a whole bunch and leading most of us to assume his time in San Francisco was limited.

The 49ers only gave James 12 carries last season, for 49 yards, with three passes thrown his way. He played in just 10 games total, though he did find his way onto the field in one capacity: as a kick returner. He did look pretty solid doing that, returning 23 punts for 251 yards, and 12 kickoffs for 321 yards.

Now San Francisco has guys like Marcus Lattimore and Carlos Hyde pushing for playing time and an eventual starting role. It seems like being a returner is the best-case scenario for James, who may not be happy doing that. Whatever the case, he did look solid doing it last season, for whatever that's worth.

Why he might improve:

James hardly played last season, and he's 24 years old. The guy is fast, and shifty, and he can certainly make big plays with the football in his hand. It's easy to see his value on offense, especially if the 49ers figure out what a screen play happens to be. But that's not the most likely scenario at this point, so he'll have to improve as a returner. If that's what the 49ers are asking of him in training camp and the like, then it's easy to see him getting better at it.

Why he might regress:

He might see the field even less. He might let the fact that he's unhappy get in the way of his play. These are two very real possibilities, though I don't claim any intimate knowledge of James' thoughts or his opinion on his current situation. It just seems, from afar, that he's unhappy with his current situation. That could lead to pretty poor play in general.

Odds of making the roster:

This is a tough one. As Matt Maiocco of CSN Bay Area notes, James has looked solid fielding punts thus far in the offseason, which could solidify his spot on the roster. It might be in his best interest to stick around and do what's asked of him, because it might lead to him getting some snaps on offense early in the season when the 49ers will be most hesitant to put the ball in the hands of a rookie like Hyde. Playing well then could lead to a possible starting gig elsewhere. I think the odds of him making the team are very high, but the odds of him being on the team when the trade deadline passes are quite a bit lower.