"Technical Debt" is bullshit Agile Newspeak for "unfinished work." It just sounds all up-to-the-minute and trendy, kind of like teenagers with ripped jeans.
"Stories." A degrading and humiliating term for "usage scenarios." Oh, does that take too long to say? Then let's use kindergarten language.
"Refactoring." Ten people say it, meaning ten different things. As in your article. Pure bullshit.
"Sprint": a half-dozen extra meetings atop a *daily* morning meeting of turbo-charged uselessness. Keeps the pressure on so people end up working 60-80 hours a week.
And what's wrong with developers writing specs? Nontechnical people can't write them, and even clients hiring freelancers like me have no idea how vague their design really is and depend on someone like me, simultaneously a software developer and a technical writer, to fill in details.