I often find that if you don't have a plan, you seem to lack direction. This can then lead to the failure of a product or process.
I am a great believer in plans. Even if the plan does not achieve everything it set out to do, it steers you in the correct direction. As long as you realise from the outset that a plan must be flexible, you can implement corrective measures to mitigate potential risks.
I also find that goal setting is essential. Always have a goal in mind. Not big goals. Go for the 'elephant analogy'. How do you eat an elephant? One bite at a time. This is easy to implement in software/product development as these processes are very iterative. I will plan out the elephant in something like excalidraw/miro etc. This is the big goal, the end product or as calls it 'The North Star'. You then take this elephant and break it down into sections: A trunk, a leg, etc. These could be your Goals. You then break down the sections into tasks, which are lots of small, single-process tasks. Create a login button, attach login logic to the login button, add a login button to the interface, and test the interface. Task complete, strike it down, pick up the next and continue till the proverbial elephant has been consumed. When you have hit a major milestone in your project reward yourself with something. Maybe a book, maybe some family time, or a meal without the need for disappearing into the office (Sorry, wife). When you conclude your project deliverable, I will reward myself. It can be as large or small as you like. Don't use the revenue generated from your endeavours to ultimately reward yourself; re-invest in yourself and/or your company.
I recently completed a consulting gig. It paid well, and all milestones and goals were achieved to the client's satisfaction.
To my satisfaction, the money rolled in, and I 'treated' myself to a new 'toy' today.
I now have the Operating system Holy Grail, Windows, Linux and Mac all available to test and play with