I’ve been a computer nerd since I was a young child. My dad bought the family a TI 99/4A before I even went to Kindergarten, and I basically started programming when I learned to read. As I grew up, the thing that fascinated me most about technology was the ability to automate.
Automation, in theory, is supposed to make people’s lives better. It’s supposed to take the drudgery out of work, to leave people to focus on the more creative aspects of their work. With a word processor, I can type, correct, spellcheck, rewrite, and reorganize in an instant. I can even maintain old drafts easily. With a spreadsheet, I can keep track of all my income, expenses, grades, goals, and whatever else I’m interested in.
However, in the last 5-10 years it has felt that technology is actually running the other way. We aren’t getting more productive with our technology — we’re getting less productive. Even as technology grows, it is not providing significant gains, and in fact is giving us problems.
As a simple example, let’s compare a 16-bit Windows program to an iOS application. If I wrote a program in 1992 for Windows 3.1, how long would my work last? That is, how long would the effort that I put into that program continue to provide benefit for the company I built it for?
Microsoft Windows has been careful to make sure that old programs continue to run on new systems. While not perfect, that program you wrote in 1992? It basically worked until last year. That’s nearly 30 years of support, across multiple extremely different Windows architectures.
Now, let’s consider an iOS application. iOS doesn’t even let you submit to the app store if you are using developer tools more than a year old. Updating your developer tools often means significant rewriting of your apps. Most of the time, old apps just don’t run with newer systems.
I first noticed this problem writing apps for Facebook. At the time, Facebook had lots of apps that you ran under Facebook. That is, they were contained within the Facebook frame. Unfortunately, Facebook just couldn’t keep their platform consistent. They were always changing, which means that your app had to always be changing. The problem is that this meant a fundamental change to the way that technology was financed. It used to be that a one-time investment would last for at least a decade. Maintenance releases were always available, but they were minor. But with Facebook, if you weren’t rewriting your app every few months, it would simply stop working.
This requirement of constant upkeep means that technology investment no longer works as an investment. Previously, writing code was like building a house. You made a large up-front investment and the house was yours. Sure, occasionally you would get a leak or a light bulb would go out, but the house is relatively stable over long periods. Today, technology requires that you buy the house upfront, but have to renovate a quarter of the house every year. This is the opposite of what technology is supposed to bring to us.
There are many problematic issues in this mess, with platform providers only being the most obvious:
- Always looking to technology for solutions
- The programmer’s tendency to want to rewrite with “the latest thing”
- The perceived need for interface perfection
- The real and persistent threat of hackers
- The users’ tendency to use what is newer and flashier
- The lack of options for users to not upgrade
- The lack of historic understanding of many newer developers
When added together, what started out as investment ended up as simple churn — throwing money after money after money just to keep up with the Joneses. Technology isn’t adding value anymore. It’s adding expense.
To some extent, our attachment to and attitudes toward technology are precisely what has caused it to lose its effectiveness. Technology for X, where X is some non-technical goal, tends to produce benefit for all involved. However, technology for technology’s sake — to be “on the cutting edge” or “get ahead technically” or just be the latest hot thing — transforms investment into just expenditure.