Cut! Films and buildings are not like software-based systems but we know that, right?

I’m not a regular film watcher but I tend to watch a few over Christmas. Some of them are new films (at least to me!) and some repeated viewings of older classics. Watching the inevitable re-run of Love Actually, I was reminded of Richard Curtis’ reflections on lack of diversity and some questionable relationship dynamics between men and their female subordinates, neither of which would be acceptable in an equivalent film commissioned in 2023. It got me thinking that one of the challenges with a medium such as film is that it’s “done” after a certain point in time. Once a film is released there is no chance of major re-work and limited opportunity for even subtle changes (I’d be fascinated to know if this isn’t the case other than some “directors cut” style re-working or “digital remastering” neither of which significantly changes the original work. It may be that there is some way in which this isn’t true but this is probably tangential to the point of this blog post).

Building a large-scale, software-intensive system and creating a film are both similar to any other large-scale, expensive human endeavour involving the coordination of may different elements in order to achieve success (Wembley Stadium rebuild anyone?). All are subject to cost overruns, missed deadlines, and defects in what’s eventually produced. This should be no surprise. What interests me more is the film itself rather than the process through which it is created. Coming back to the relative immutability of films once they are released, the interesting aspect is that software is not like that, or at least it shouldn’t be. Most people will be aware of remakes of some classic, and not so classic, films. Remaking a film is like the re-writing a system in software. People think they can update the implementation while keeping true to the original concept. As with films, some people will like the new system but others will hate it (I liked the recent remake of A Star is Born but I refuse to watch the remakes of The Italian Job or Charlie and the Chocolate Factory as that’s just sacrilege!) Putting aside the question of the advisability of re-making a film or re-writing a system, the key point for me is that in software this is not the only choice. Software is amenable to change on an ongoing basis (or should be) so you can keep it current in a way I just can’t picture for a film. What I’m wondering is whether there is scope to use people’s familiarity with film in order to emphasise how different a software-intensive system should be in spite of the similarities in the way both of them are often produced.

The first point is that software is amenable to change. We are well past the stage of software delivered on CDs or DVDs. Whether it’s a web-based application refreshed every time you access it, a mobile app updating regularly, or even now embedded software such as your car’s operating system, we have the ability to get changes to our software out into users’ hands very regularly. This is something that is probably only just becoming possible in the world of film as long as everyone uses the same streaming service. Even then, for existing films, millions of copies will exist on DVDs or recorded on set-top boxes. People are increasingly familiar and comfortable with the concept of streaming so this evolution should be part of their mental landscape.

Now let’s think about which aspects of a film you might want to change. You might want to change an advertising hoarding for a company or product long defunct. You could probably easily change this with some digital editing. You might be able to change one or two outdated words used by an actor (“cool”?) through some form of sampling/editing or a suitably talented voice mimic. You could probably even change the facial movements to make it look like the actor is saying the alternative words. The bigger the change, the bigger the impact. What about the cars used in the film? Changing the Minis used in the original Italian Job film would be more complex. You might be able to invest more processing power to dynamically convert one car body shape into another as it progressed through each scene in the film. However, the new Mini is a larger car than the original so there would probably be a whole bunch of knock-on effects in terms of the shape of the car. Would it fit through the sewer pipe it’s supposed to be driving through? Are the passengers still in the right place for it to look realistic? If you have to reduce the size of the car to make it fit then does it still look right?

All of the above is probably possible now given enough processing power and deep-enough pockets. What’s less easily changeable is the storyline. How might the plot-line of a pre-mobile phone-era film from 1990 be changed by the inclusion of current-day mobile phones. Trying to warn someone of impending doom? Call them on their mobile. Lost in the woods? Open up Google Maps. Need to capture that important information on the document you’re secretly viewing? Just whip out your phone and take a picture. “I guess we will never see each other again”. Well, we could always use Facetime or Google Meet. The further from the current day you go, the more it’s a case of “you wouldn’t do it like that now”. Such social and technological evolution could invalidate significant plot devices and change the course of the whole film.

It is the same changing world that software inhabits. The world around it changes and if the software doesn’t change along with the world it becomes increasingly unfit for purpose. However with software you have the opportunity to constantly (or at least regularly) update it to reflect the changes in the world. Not only is this type of change possible in software, it should be expected. Once a software-intensive system becomes sufficiently out-of-kilter with the world it will constantly jar with the people using it. You could think of it like bad special effects which can be really endearing for fans of older sci-fi (yes, I’m looking at you 1970’s Dr Who, or even the original Flash Gordon) but would cause serious cognitive dissonance for most people if they had this in their face every day and those in authority kept insisting that such special effects were representative of today’s world.

Given the malleable nature of software, metaphors based on concepts that are familiar to people, such as construction or films have never been a great fit. For every similarity there are many ways in which other domains are utterly dissimilar from software development. Unfortunately, these other aspects surrounding the metaphor will often come to mind for people on the receiving end of it. Incorrect assumptions based on this mental baggage will often do more harm than any good derived form use of the original metaphor. Maybe a better approach is to use the original metaphor as the “hook” to get people thinking in a particular way but then to emphasise the differences rather than the similarities so people leave the baggage at the door.

Leave a comment