OK first of all please leave “pairing” out of your response; I don’t know what “swarming” is but I have a feeling I don’t want to know.
Pair programming was the end for me. I did three hours of it once and the experience was so ghastly that I quit my job the next morning and eleven years later (about eight months ago) I spent a few thousand on counseling to help me recover from the PTSD that those three hours had left me with.
Yes, Post-Traumatic Stress Disorder, which I had thought only came from combat. The helplessness of having to work in sexual proximity with an obedient, condescending corporate buttkisser whom I despised gave me an all-night panic attack and a decade later I was biting my knuckles every day trying to make the reaction stop. I think any manager who makes his reports do pairing should do five years in the most violent prison system in America. Mine died 18 months later.
No more, please. The experience was so horrible for me that I honestly feel I cannot communicate with anyone who advocates it. I can mentor junior developers, I can have someone sit with me for a code walkthrough, yes, but the idea that anyone could write code under such conditions is so alien to me that speaking Vietnamese is as nothing in foreignness. If an interviewer mentioned PP in any context other than “we don’t do that shit here” I would get up and walk out without even a “thank you for your time” much less any answer to “where are you going?”
Now. The way you describe is how I’ve worked for 32 years. Most of the collaboration I’ve done has been agreeing with the browser guy on interfaces and explaining design changes I need, or vice versa.
I find the whole idea of software groups as “teams” to be kinda creepy. Programming isn’t a social practice for me; I don’t want to put my feet up on the Team Table with the others, I don’t want alcohol-fueled morale sessions, a sprint retrospective would be Marathon Man torture.
Maybe my experience is different but I have always worked solo; less than 18 months after my first job in software I was a developer at Microsoft and less than 18 months after that I had written and shipped two Microsoft products singlehandedly, and I was still quite junior. I work better with testers and customers than with other developers. I don’t like their jagged, cluttered idea of code formatting, I’d rather emphasize stability over mindlessly optimizing absolutely everything, I don’t care about games; I prefer that tasks be partitioned into high-level divisions, usually me doing the entire back end and someone else doing the browser. We collaborate. We don’t work in each other’s armpits.
At my last job in the USA before I moved here they started with scrum; I had to attend a daily meeting at which I learned absolutely nothing of value and it amounted to a status update, better handled in email. I didn’t have to take part in sprints because, again, I worked alone on my project, the company’s game installer. This was an ongoing project with no deliverables other than invisible upgrades and I Owned the whole thing. The group was, as you say, a lot of people whose work didn’t overlap.
One thing that’s obviously different in our experience; I did half my first 20 years in software at Microsoft, and watched their initial greatness disintegrate as they became ever more full of themselves. None of my friends there still work there. A friend in Redmond who does real estate and has a lot of Microsoft clients tells me that nobody likes working there now.
Were I to talk to other members of my group about whether a recurring meeting was worth our time, at least one of them would run to our manager’s office and tattle on me for fomenting insubordination. That’s how Microsoft is; your “teammates” are in competition with you. A “teammate” is more likely to do things to misdirect me than to be helpful. It’s a paranoid place to work.
I’d be terminated within a week. If I asked in a meeting whether we really needed to have it I would probably be marched out before the day was over. The Microsoft that was open to ideas died thirty years ago.
And then there’s the nomenclature. You mentioned “stories” up above; I objected so strenuously to that word I almost got the push. Agile brings in a pile of neologisms, none of them new concepts or procedures and all of them inferior and more imprecise than the words they replaced. What does “refactor” mean? Why do we now call unfinished work “technical debt?” Do we get milk and cookies with our “stories?” Inventing new words for non-new things is like Microsoft rearranging the interface to release a “new version” of Office.
Anyway, it has little to do with me anymore. I’m 66 and I now do as much technical writing as software development and most of my clients are not software companies. I can quit anytime I want to but even were I back in the USA and not in the middle of an ineptly-handled epidemic I would not work onsite ever again, not with open offices and daily morning meetings. I’m too experienced for this shit and I have clear memories of the early days when I was allowed to concentrate.