As a developer on the Microsoft stack (say what you will) that always feels "consciously incompetent" and loves to learn and find the "best" ways to get things done, I constantly find myself in a conundrum: when to stop investigating and start working.
This problem isn't exclusive to Microsoft developers, but perhaps the problem is more visible from that viewpoint. Microsoft has so many solutions for all sorts of problems big and small, some of them great, some of them not so great, most of them described only in fluffy language, and many of them that solve almost the same problem and are at direct odds with each other. At what point does one stop researching the multitudes of frameworks, tools, technologies and architectures available and just pick one, hoping you don't run into some fiddly bit that makes it a real pain to solve your problem? Or perhaps you toss them all out the window and use the basics given to you by your platform of choice to just roll your own?