It sounds to me like you&#x27;ve dug yourself into too much of a rut of how software <i>should</i> be made that you can&#x27;t just dive into it anymore, and get bogged down in doing everything &#x27;perfect&#x27; that you don&#x27;t get anything done at all.<p>I tend to just dive in, make a bit of a mess, and refactor&#x2F;clean things up before I check things in. I think it helps that I have tackled learning quite a few different languages over the years and have done some working for startups (which has no time to get things right, it&#x27;s just got to get done before the whole ship sinks).<p>Just pick a little piece of what you want to work on, get that working, then add another bit, and another bit, until you have a full feature but still runs, then clean it up, check it in, and move on to the next tiny piece. Don&#x27;t worry about documenting every little thing.<p>Learning a new language, especially a scripting language that can get things done in a few lines of code and people don&#x27;t obsess over diagrams and graphs of the system could help. Python filled that niche for me.<p>Good luck!