Your product is half-finished, half-baked, and a nightmare to use. You need to be using it for at least an hour a day. If it’s a boring game, play it. If it’s a buggy CMS, blog with it.
Once you have a functional-but-lame product, your focus should shift away from the roadmap and toward what irritates you most while you use it. You’ll find the task list magically sort itself by order-of-annoyance (which incidentally maximises your early users’ observed-improvements-per-day and helps build fans).
The alternative (which is what I’ve historically done) is to have a meeting, figure out what ought to be done, and then plow through the todo list. Because of course it’s not fun/useful/intuitive yet because it’s not finished. Right right?
While your situation may not allow for anything as poetic as using github to develop github, you still ought to be use your product every day.
This is an embarrassingly recent revelation. I was taking breaks from programming a game by playing a different game. Why in the world wasn’t I relaxing by playing my own game?
Well, because it wasn’t fun. Uh oh. When you aren’t using your product because it doesn’t deliver its core value proposition, the danger bells should be deafening.
The problem here is that you haven’t actually finished the earliest todo, which is to make the value proposition sparkle, vampire style. Continuing to move down the list and hit your milestones feels like progress, but doing so is building a house of glass, filled with rocks, on a foundation of sand. This is how so-so products grow more complicated instead of simpler. You’ve already missed your deadlines (which you invented anyway), so man up and lay a robust foundation.
If your product is a literal or figurative nightmare, you’ve even more reason to endure. Spend a couple hours a day using a shitty admin interface or playing a boring game and you will quickly find ways to make that time more pleasant for yourself.
If you ignore the product and stick with your roadmap, the product will simply get worse and worse until even your most faithful users abandon.
: For this game I’m coding up, I stopped assigning development tasks altogether. I also don’t have “work” time for it. Instead, I say “I’m going to play for 6 hours today.” And when something starts to bug me enough, I hop over to vim and fix it up. Most of those fixes fit within a pomodoro, but one of the recent ones took 2 weeks. I had been putting it off because it didn’t look like progress on paper (speeding up the AI) and was going to take a huge amount of time. But waiting for the AI to think was super annoying, and doing it has made the whole game feel 10x more pleasant.