4 ms·
So I played a lot Overwatch for the two years after it came out. (I swear, this is relevant.) For the uninitiated, Overwatch at release gave players more free
by invalidOrTaken 7y ago
So I played a lot Overwatch for the two years after it came out. (I swear, this is relevant.)
For the uninitiated, Overwatch at release gave players more freedom than any shooter on the market. Pretty much any effect you wanted (mass teleportation? Energy shields? Hacking? Automated turrets? Sonar? Lifedrain?) was available to you if you switched to the appropriate hero.
And the players started eating each other alive.
See, diversity of abilities means that some will synergize well together. But those parts are not necessarily equal; it's usually more fun to mow down opponents than to carry ammo around, for instance. So gamers, being dicks, will insist that other people do the boring stuff like carry ammo or whatever, then retreat to the motte of "Don't you want to play as a team?" when called on this.
I got really idealistic about this game, and wanted to play it in a way that respected and supported the humans on my team.
What I found was that the best way to do that was to pick heroes with which I could reduce existential risk, (channeling Taleb) thereby not constricting my teammates into "Do X or we lose the game immediately" situations. This increased the options available to my teammates.
In an ideal world, they'd have reciprocated and made my flexibility a priority as well, but, well, it's online gaming.
So the status quo was players yelling at each other to do X_UNFUN_THING that (supposedly) synergized with Y_FUN_THING.
Well, after three years the developers got sick of the players arguing with each other and enforced some structure.
This is how I feel about Agile, and software in the large. There are a zillion degrees of freedom available to individuals, who use that freedom in ways that have negative externalities for other stakeholders. Those stakeholders are doing the same, of course, and now you have a coordination problem.
What does it mean to write software in such a way that you create/preserve options for other parties? How do they act to do the same for you?
I think that's the place to start.