It's clear to me that I fight for agile practices because they help to counteract Parkinson's Law.

I have been on teams that let developers disappear for weeks with no output to show for it. I have been on teams that let developers get lost in the weeds. Regularly. And by "developers", I mean me.

Engineer's over engineer. That's what we do. It's part of that DNA that makes us want to be engineers.

I fight for agile methodologies because they temper that. They help to eliminate the waste in development.

In my very first hour attempting TDD, a test failed that I didn't expect. It was caused by a "no-brainer" change I had made while scrolling to the real code. When the test indicated that my change was bad, I simply reverted to what worked. In the past, I would have fiddled with it for a while. Now, the tests gave me the confidence to know that it was working as it needed to. I could change it later, when my current task was complete. If I still felt that it was important.

In a pair, I naturally ensure that we are working on the most important thing. I ask questions like "Do we really need to do this?" I don't need to use external tools. It just happens. I can't explain it. I simply embrace it. I've heard many people repeat these sentiments.

I fight for agile practices because they encourage me to be a better developer.