On Ephemeral Software Development

Sat, 12 Feb 2022 16:58:26 -0800

Tags: philosophical, technical

permalink

Programming to me was about building something. A program or a system of programs that do something useful. It echoed construction of physical artifacts. Engineered artifacts have a lifespan, they are constructed to last a certain amount of time, years, decades, centuries. But it is a construction activity.

Since I started programming, the number of programmers has doubled, about 5 times. This reality plus the philosophy of some companies to "move fast and break things" and the advent of Software-as-a-Service has brought about a new state-of-the-art. It seems to me that the best way to intellectually comprehend what computer programming is these days is to consider it as some sort of performance. Making a parallelism with art, before we used to make a series of paintings, retouching or painting from scratch, but they were artifacts. Each version of a software was an artifact. Continuing with the metaphor, these days, programming seems closer to an art performance. There is rehearsing at the devs and QA desks, then the software is deployed to an audience that experiences it for a very short period of time before a new performance arrives. There is no artifact anymore. Just performances.

What this means in the day to day is that there is very little interest in supporting old software. The libraries are in a continuous state of flux and nothing runs unless it is continuously supported. Lack of support for old users is the new norm. Creation of new functionality is preferred over fixing or supporting existing users. The software grows fast in an almost organic manner. Continuous rewriting is the permanent revolution of the software world.

Is this good or bad? I believe we have to live in the times as they are, it doesn't really matter whether things are better or worse if we cannot change them. Given my background, I'd rather work on software projects that have more of an artifact construction mentality than a performative mentality. But the current reality implies that learning technologies and programming languages is an activity that needs to be exercised immediately. It is similar to growing produce. Either you harvest or it gets rotten. This sense of urgency in the cycle learn, code, deploy might be the reason that Google-programming is such a successful strategy.

Comments

Your name:

URL (optional):

Your e-mail (optional, won't be displayed):

Something funny using the word 'elephant' (spam filter):

Your comment: