At the end of the day as developers we are here to deliver, specifically delivering value. If we are not delivering value, our client, whomever that may be is receiving a negative ROI.
I got into the software industry through my passionate of writing code. Back then I didn't write software, I wrote code for myself and would throw it out. Most of the time incomplete but it didn't matter, I just want to write code. What I've learnt is that a software developer doesn't exist to write code, we exist to deliver software. Code happens to be one of our many tools at our disposal.
Because I love code, I want my code to be clean, I want it to always make me feel like I did the best with the knowledge I had when I wrote it.
The balance always aim to achieve is to deliver high quality code and at the same time delivering high value. Although it's hard to admit, they may come a time when code quality will take a hit in the interest of delivering value to the client. My aim is to improve everyday to minimise the chances of that happening.