Instance-Architecture: A Why-To of Software
When I’m not working with New Bamboo’s awesome teams I’m often to be found obsessing about photography. In fact I’ve spent time on evenings and weekends writing a book on photography, and in doing so I started to see many similarities between photography and creating software.
In the early days of photography, practitioners often modified the shots they took with paints, engravings, and so on. Sometimes they staged the photos to look like scenes from classical mythology, too.
As far as their contemporaries were concerned, all the photographers were doing was a mechanical operation to start a chemical reaction. No creativity there and so, the line went, no art either. And that’s why the early photographers embellished their shots.
Nowadays when we talk about photography, we do it in completely different terms. Is it art? Of course it is! The interesting questions are about the role photographs and photographers have in creating visual culture, or in shaping the narrative of an unfolding event.
Does this remind you of anything?
What would happen if we reframed the debate about coding in a similar structure? What if we decided to acknowledge that creating software is not a ‘purely’ mechanical pursuit, but a creative one also? In what sort of terms would we discuss software then?
I think we can borrow quite heavily from photography theory. Enter, Wisdom through the lens, a collection of philosophical essays about photography by Pierre Poulain. Here’s a quote:
A good photograph captures an Archetype, an essential or impersonal idea or sentiment, part of the objective reality…
The whole chapter is great reading. But in case you don’t have time, the gist of it is that photographs are material ‘instances’ of intangible, invisible and eternal ideas - Poulain calls these ‘Archetypes’.
You could describe a photograph down to the atom on a physical level, but that would necessarily be an incomplete description. You’d be leaving out the effects (emotional, spiritual and mental) it has on the viewer, which is what the photograph is actually truly about.
Take, for example, the portrait of the Afgan Girl Sharbat Gula. The Archetypes are the plight of refugees and the psychological horror faced by people in land devastated by conflict. No description of the photo would be complete without reference to these ideas, but there is nothing in photograph - nothing in the instance that shows either directly.
Here we find support from a somewhat unlikely ally - Seth Godin. Here’s a quote from one of his recent posts:
When I write about making ‘art’, many people look at me quizzically. They don’t understand how to make the conceptual leap from a job where we are told what to do to a life where we decide what to do–and seek to do something that connects, that makes an impact…
I’ve included that quote because we’ve been talking in quite a high-minded way about photography theory. But Seth tells us that really, art is quite accessible. It’s something we can all do, everyday.
Switch out the word ‘art’ for the word ‘software’ in Godin’s words. Here’s where it gets you.
It provides a new way of describing software. Namely, that software is an instance of some or other Archetype.
What are the Archetypes? If you’re starting a new business, they could be the eternal human ideas that Poulain discusses. If you want to aim a bit closer to home, they could be the trenchant but unstated beliefs of your business.
We are not used to thinking about software in these terms so let’s take an example and see what we come up with. At the instance level, Instagram is an Amazon AWS-hosted Redis-backed heavily-customised app (it’s changed a lot since it started as a Django app hosted on a single machine). Interesting as that is, its not really what Instagram is about. Instagram is about showing your friends your photos. That’s the Archetype, the experience of taking a quick silly selfie and sharing it with your mates, and it’s the Archetype, not the instance, that has had influence worldwide.
OK. Does this change how you think about, talk about and create your instances?