In real life, people struggle to hear, categorize, and remember stories that don’t fit one of the traditional narratives. A story of an open marriage that didn’t work out, where complete honesty wasn’t enough to bring acceptance for romantic love in the plural, where love died gradually until by the time the danger was recognized it was too late

becomes “he cheated and chose his girlfriend over his marriage.” Not the truth, but it fits the pattern, people can classify that and talk about that. Simple models, we like simple models, who cares about accuracy if it’s a nice simple model?

There are accepted narratives in software, too. The web application. The algorithm. The formal scrum iteration or the mostly-waterfall model. The agony of Release Week. When a project or framework or (what can we even call it when there are no clear application boundaries?) breaks out of established modes of computation, when User Acceptance Testing no longer makes sense, how do you even explain that to people?

“I don’t see how this could work. This doesn’t make sense. Stop it.” If we can’t see the reasons for something, there must not be a reason. That person is stopped in the middle of the parking lot because they’re an idiot! There is no other explanation in my simple model!

I grow beyond myself when I am small in the world. Everything happens for a million reasons, and I might know a few, but usually I’m wrong. New ways to see, new ways to think, new ways to learn things I could not conceive before, this is the goal. In relationships and in computing.