Fiction in software – part two

Natural born storytellers

Michelangelo said once that he did not see himself as the ultimate creator of his sculptures. He was only who help forms already within the rock to break free. His hands would use the chisel and the hammer to rescue pristine, mineral creatures trapped inside the stone who knows for how long.

Michelangelo is not alone in this use of a suggestive metaphor to talk about his or her work. Centuries later, Jackson Pollock explained he spent hours staring at the white surface of a canvas until the full painting came to his mind. Then he would pick the brushes and the paint cans and do the spectacle we can watch him doing in documentaries.

And that is certainly not an improvised spectacle: Pollock really looks like he did have the full picture in his mind before start painting.

Did Michelangelo see himself as a mere instrument to reveal whatever shapes were caged in the stone? Did he and Jackson Pollock, as many other artists, have their works of art within their minds before start creating them? Discussing these questions here would be off-topic. What I do find revealing in their words is that they tell us a story about how they represented their actions to themselves.

Their words are the narrative that Michelangelo told himself, and others, about his work. And as such representation, his words tell us more about him that about his work. and that is so because narratives are fiction, we invent them.

No matter what Michelangelo believed, his sculptures were not already there, in the stone waiting for him to expose them. Narratives do not explain the world around us: they tell the story about us explaining the world to ourselves. They are the plot that connects the dots from the white canvas to the final painting. And that is precisely what Michelangelo and Pollock saw in their minds: the sequence of drops of paint, or the strikes of the chisel, that they ought to execute to produce one wonder.

For narratives are such a powerful tool: they enable us to act upon the world in ways that fulfil a purpose.

Natural born software designers

Narratives are not restricted to the world of Art. Humans are natural storytellers, so narratives are everywhere. Indeed, as I explained in the first part of this series, software designers rely on narratives to produce software applications too. And, as it was the case of Michelangelo, it does not matter whether those narratives are truth or false the same way that it does not matter whether stone creatures were truly trapped within the stone or not.

In that first post I picked two alternative narratives to illustrate how a software team may use either of them to design the very same application.

The first narrative followed the story of an Order: it starts when a client asks the barista for one of the cafe’s specialties, and it ends with the coffee prepared, handed to the client, and the money in the cash register.

The second narrative followed a chain of correlated steps that happen in sequence (client makes her order; the barista prepares the specialty; the client pays the price and gets her change back, if any), but that lacks a unique Order entity been handled throughout the whole process. In this second narrative, the link among those steps that correlates them is kept implicit instead.

Both narratives are capable of handling special circumstances too. For example, the client gets a phone call and has to leave without grabbing the coffee she had ordered; or, the client pays and waits for her coffee to be brought to her on her seat. And many more.

Certainly, both narratives, as many others that software teams might invent, would feel more or less natural depending on how well the stories they tell fit the way we would tell the same story. Michelangelo’s narrative worked for him, but no narrative works for every one because they are fiction and so they are linked to whomever invented them and so to their context.

And this is key. Because narratives are ancillary. Experience proves that many narratives can work, and also that every narrative can fail in their role of helping the team to accomplish the goals.

Fiction is culture

How is that even possible? I mean, should it not be easy for the people in charge of designing software applications to choose the right narrative to help them out? For narratives are free to use, no one owns them, and information in every format is available in huge quantities. Certainly, it takes time to learn new narratives, though learning is as an essential part of the job for people in software as it happens in other professions as well.

So, if not access, where is the problem?

Let me repeat myself: narratives are fiction. Indeed, from a technical point of view, all narratives have pros and cons, which means that they are debatable. But narratives are a way of thinking. They are not neutral but culturally biased.

Just pick one the currently hottest narratives: micro-services, the blockchain, Kubernetes. Plenty of teams are working with one, or some, of these technologies just because plenty of teams are working with one, or some, of these technologies.

Which does not mean they are not legitimate options in the right scenarios. But they cannot definitely match every context and, hence, some implementations that are relying on them are definitely going to fail.

When that happens, everyone is guilty. Which, as it is common in human culture, it means that no one is. And then you start watching videos and reading blog posts about micro-services, or the blockchain, or Kubernetes, being wrong.

Let me expose myself here: It is never true. Narratives are neutral, only implementations succeed or fail.

Is that so bad? Well, just think of the alternative: retired software developers called back to work because they are the only ones who still can read and write code in Cobol.

Risk, or fear? What would you choose?

Copyright notice: picture taken from The Daily Beast website without permission.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Website Powered by WordPress.com.

Up ↑

%d bloggers like this: