You might not know what it is, or if it’s the right one, but if it’s something, in the direction you are headed, then chances are, you’re making the right choice. Don’t get hung up on everything that could go wrong after the next, third, or fourth step, just take it. When you get to the second, third, or fourth step, you’ll have plenty of time to decide where to go from there, and more…
Start with what needs to be done. But you know that, and no one wants to start there because that is boring. What you are trying to answer is – “How can I avoid what needs to be done and get to what I want to be doing?” – that’s another question that requires you to go back to the first question – to focus on what needs to get done so you can focus…
If it’s valuable to you, it’s Good Work. That means it needs doing. That means someone isn’t doing it. That means it falls to you to do it. That can get frustrating because no one else is doing it, but perhaps they aren’t doing it because they don’t see what you see.
When you start building code, insurmountable amounts of code that you had not planned on writing at the onset, to work with the platform. It’s time to move on. You tried, the fit isn’t there, move on.
Complain about it. Walk away from it. Work on it. That’s it, no further explanation needed. You can apply all three to any problem – get angry at it at first glance, take a breather from it and then come back to work on it. Nothing wrong with that approach, just don’t focus on the first two for too long.