What do I want to do as a developer every morning when I sit down?
I want to be able to achieve something. I want to be able to walk away at the end of the day feeling that I’ve contributed meaningfully to the project that I’m working on.
But be honest, how many days did you achieve that? How many days did you get what you set out to do accomplished?
Distractions, interruptions, meetings, training, incidents. A pile of things that can make you immediately forget where you were.
How can you be expected to create clean code in a chaotic environment?
How can you be at your best when there are a million things to distract you?
Achieving that feeling is more a product of your environment than it is your mindset. Mindset follows environment.
Therefore if we spend every day distracted and confused, we skate on thin ice when we finally come to write code.
Technical debt writes itself when you are distracted. When you are in a rush all the ideas that you had about cleanliness, about TDD, about refactoring, go out of the window.
All of the tools we have to help us to lint, test, package and deploy the code just seem to get in the way when we are called into action.
Unless we decide not to work that way.
Unless we decide to push back and say no, I won’t rush this release. I won’t speed up. I won’t skip the tests that I want to write.
Because every time I do that, I know I create a problem for myself and others in the future.
This is a choice.