When I started Cypher I already had another game running that I could pull code from (ie message center for in game messaging, gang portal, signup, login, game news etc etc). What took the longest time, about a year, was to get the actual mechanics of the game working. I can create a "basic" game in about 3 days because I have everything broken down into libraries that I can just plug in. What takes time is the "meat" of the game, the attack system, the mission system or whatever is the real "core" game.
If your starting out though think small, if you think to big then you'll probably get discouraged and quit! Start small, keep your expectations low and it will all come together in the end...
Tip of advice.... No matter how well you think up a game, how you think things though users are going to throw a loop to your system. They will also think of even better things they you did originally! So thats why I say start small, get it out, let your players give you feed back and your game will be awesome!!!!