, 21 tweets, 3 min read Read on Twitter
When I started programming, it was a solo skill, performed by individuals, with little or no sharing and virtually no collaboration. A culture was built around those facts. 1
So, back in the day, to be a good programmer one had to be able to do all the logical gymnastics that programmers do, but one had to do it solo, and ENJOY doing it solo. The culture of individualism grew strong. 2
I don’t want to defend that culture, and I’m not a little bit embarrassed by the fact that I thrived in it. I wrote a chapter about the macho culture of programming in my book, The Inmates are Running the Asylum, published 20 years ago. 3
I see so many strong connections between the toxic behavior of technologists today--the hubris, the misogyny, the ageism, the delusion of self-made success—and that culture of rugged individualism at the core of programming. 4
Then along comes agile. Boom. It’s different. Really different. It’s the first new idea in programming that is about people and process and not about tools and technologies. 5
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. Agile is not like anything that came before it. 6
Going from one person coding something, to two persons coding something is not just a 100% increase in staffing, but it changes programming from a solo practice to a team sport. 7
When you program in pairs, you have to communicate your ideas, you have to explain your thinking, you have to agree on intent, and your work gets checked and checked again. If this bothers you, you can’t sustain it at a high enough level to be professionally competent. 8
So, it should not come as a surprise that the single most confused, abused, and refused aspect of agile development is the collaborative part. That’s because it alters what many consider a foundational part of the culture of programming. 9
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 have nothing but respect for contemporary programmers who can work collaboratively. 10
So, from my vantage point, there is a massive, yet nearly invisible, war taking place in the world of software development: The fight between the self-made men of yesteryear, and the new generation of team players. 11
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? 12
I don’t think it matters one whit if your shop uses scrum or jira or stand ups or burn downs. Only one thing truly makes a difference, and it’s a huge difference: Do you code in a group? 13
And not at all remarkably, if you ask around, you will find intense debate in development circles of every single tiny insignificant aspect of agile, but almost no discussion of coding in pairs or groups. It touches the heart of the matter a little too precisely. 14
And yet, the development community is actually grappling with the cultural upheaval that collaborative development introduced. Meanwhile, another community has emerged from dev, and still embraces the old values. Yes, I’m talking about billionaire tech moguls. 15
Having a lot of code to write, & a lot of users to satisfy, are reasons why devs eventually discovered agile methods. Having a lot of money, OTOH, is the reason why tech tycoons can ignore agile methods. They are only interested in agile if it somehow reduces their dev costs. 16
My goal here is not to debate agile or agile methods, but to highlight this atavistic cultural divide that—I believe—originated in proto-programming years ago. 17
I have faith in practitioners. I believe that we will innovate and improve our methods and eventually get better at building software. I’m not so sure about those tech tycoons who adopted our old, discredited religious practices. 18
In unconstrained free-market capitalism, those older, bogus beliefs pay off in the billions. There’s no mind harder to change than one that has been hugely rewarded for not changing. 19
If our goal is to get rich, or to avoid falling through the ever-widening cracks in the floor of the middle class, then we will always look longingly at the old ways of solo creation. Those ways grant us permission to crush other people as we climb to the top of the heap. 20.
If, on the other hand, our goal is to be a good ancestor, then we have to understand that everyone is poor while anyone is poor. Thus we see that collaboration is necessary for a sustainable culture and not just a tool for more efficient programming. 21
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Alan Cooper
Profile picture

Get real-time email alerts when new unrolls (>4 tweets) are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!