Mindset: Prioritize Working Software
All the best practices in the world mean nothing if the software does not work.
Allow yourself to break your self-imposed rules while building a feature.
Once you have something working, go back and clean up the code with all the new knowledge you gained while getting it to work.