Kill your output with premature optimisation
"Design Patterns", "Code architecture", "Scalability", "OOP", "Maintainability", "The code you write now, is the legacy code of the future", "Be kind to your future self" & "Code smells".
Just like Bruce Almighty trying to block out the voices in his head, my pangs of guilt and angst come from the paradigms above; like an unwavering, continuous stream of distraction overwhelming my thinking as I'm trying to write one single line of code. One single line of code. That's it. Nothing special. No one's going to live or die if it's not the most optimised, architected and scalable line in the world.
We are under a constant barrage of posts, tutorials and articles about these paradigms. I often feel guilty if these paradigms aren't at the forefront of my mind whilst developing. It often kills my output. I'm trying to adopt a new workflow where I won't try and solve a problem until it becomes a problem; until I see it in the 'wild'.
Just like Adii Pienaar wrote, why do we worry about scalability on day 1? This is precisely the approach I'm trying to apply to my developing. However, it's the same with any new approach, I'm not blindly following it. It doesn't give you an excuse to write shit code, but forces you to complete a task more quickly and get that feature out there.
Your users care about precisely two things, "Does it work?" and "Is it fast?". (I'm talking specifically development here, they obviously care about design and all that jazz.)
So, I'm trying to stick to the following mantra:
Build it, release it, analyse it and only then decide if it needs optimising.
I'm available for hire