I didn’t want to go into insulting points but you appear to have picked out the core.
Fanatics don’t let themselves learn.
They are beholden to their software ideology, and some of the points I’ve made illustrate fanatic attitudes. I’ve read people many times saying that design is an obsolete idea that the unit tests Rule Them All. Unit tests are believed to have magical powers. Nobody else needs to test your code.
These are not ideas held by people who are going to allow themselves to learn from experience. They are going to react to evidence they’re wrong the same way religious fundamentalists react to atheist arguments: compartmentalization, purge, denial.
I remember the first time I heard about TDD. It took less than a second for me to remember that we always end up changing our design once we start implementation; maybe it’s just my insistence on design documents, but this is viscerally obvious.
But the one that really chaps my posterior is pair programming. My god, what a freaking travesty that is. How could anyone get any work done under conditions like that. Absolutely nuts.
I’m working as a technical writer now, it’s more important to me to not relocate or work onsite than it is to continue writing software. I won’t stay out forever; I’m documenting software and the time may come when I have a hand in fixing the bugs I’m finding. I couldn’t stand listening to jargon all day, or the expectation of intimately intertwined software teams, open offices, agile, daily scrums, sprint retrospectives. No. No.
Today I bought a pair of security cameras for my house, the setup is ingenious and I figured out how the server and cameras work together and felt a urge of wistfulness that I’m not working on stuff like that right now.
But I’d rather be a technical writer than be a programmer listening to kids talk about stories and technical debt.