Do you actually think that splitting software into components is something you need to explain to me? Seriously? I’ve been doing this for over 30 years.
See, this is one of the things that pisses me off about these fads; you invent new words for old ideas and act like you’ve invented the ideas for the first time when in reality you’re going backwards, losing ground, substituting inferior methods (TDD, units) for older ones (BlackBox, object classes). All spackled over with important sounding neologisms: technical debt, refactoring, stories.
TDD is approximately worthless. At its foundation is the idea that developers write their own tests, which is seen as some sort of advance because they didn’t do much testing before; it’s a step backwards because of the blind spots issue I’ve mentioned enough times already. They write tests for normal-operation scenarios. Unit testing takes a lot of time and delivers little value. It also requires making structural compromises “refactoring” (spits) for “testability.” (spits again)
When you talk about tests as documentation it’s hard for me to withhold ridicule. This is just a cover for the fact that most developers now can’t write a coherent paragraph because their lives have been games and entertainment, they have the attention span of goldfish. I write documents; I write requirements, functionals, regulatory submissions, user instructions. At a lot of companies, and not just startups, I’ve written the first design docs the company ever saw.
If you think an interface definition is documentation, you are adrift in mid-ocean with no oars.
At least we agree on the mindlessness stuff, though the terms I use is “checking boxes” (I worked ten years at Microsoft, checking boxes is what they’re all about) or “going through the motions.”
I talked with one woman on Twitter who had a pronoun pair in her profile who said she led a “happy team” doing pair programming and TDD, and she wouldn’t want someone like me on her “team.” Fuck teams, this isn’t football, though I bet her team has alcohol-fueled morale sessions where they watch ball games. She was a fucking idiot.
Last time I worked onsite these fads were just beginning, I thought they would die out under the weight of their own uselessness. They haven’t. Productivity is way, way down and the people I’ve worked with who talk the jargon are not only unproductive, they tend to be zero-productive, getting nothing done at all. Literally nothing, and if they wrote any code it was garbage and I needed to fix it.