Dialogue or monologue?
“Old graybeard” Alan Cooper, author of one of my favourite software books The Inmates Are Running the Asylum, splurged a Twitter thread, musing on the cultural shift at the heart of agile software development.
There’s a lot of crap intertwined with the practice of agile, but at its core is this utterly novel notion that code should be written collaboratively. This idea is astounding, revelatory, amazing, & fundamentally revolutionary.
We often avoid discussing this key premise of agile, because it’s so emotionally and culturally charged. Teams and organisations can go for years tweaking their approach to estimation, sprint planning, user story creation and so on without even once experimenting with collaborative software development practices. There can be a huge cultural resistance even to trying it.
He admits himself to struggling with it:
I’ve tried to program in pairs and it fucking hurts this old graybeard’s sensibilities. It assaults my deeply ingrained—nearly instinctual—notions of what programming is all about.
I can identify with this. The way we’re taught how to write software, and the way that education works generally, works against collaborative practices because they ingrain individualistic notions of expertise and creation. When I first joined a team using pair programming for all production code, my brain hurt constantly for the first six weeks as I fought against the grain. It took a while to see the true benefits.
Alan sums this up by framing software as a communication pattern:
There is so much ink spilled about agile practice and it is all so much camouflage for the real battle, which is: Are developers working in an external, public dialog or in an internal, private monolog?
There’s lots more to the thread. I recommend that you read it in full.
All the best,
– Jim