Positive Implications of Universal Basic Income on Software Development
There's been a lot of talk on the future of automation, how advanced algorithms and robots will be taking people's jobs. While there's a lot of differing speculation about the degree of disruption and how things will exactly unfold, most agree that the phenomenon is real. As Sam Harris recently pointed out during his TED talk, even if the rate of progress is small, the robots are inevitable. Myself, I like to think of it as the discussion we need to be having.
Elon Musk mentioned that while UBI (Universal Basic Income) can be deployed, the greater challenge will be to find meaning in life. He's right, and it's dawned on me that — at the very least — UBI can be a wonderful thing in the software industry.
As careers go, software engineering is likely to stick around longest, if for no other reason than that automation requires software. It doesn't mean that developers won't be unemployed; not only are a lot of developers aging and finding placement difficult, but younger coders are finding that there's less interest in simpler tasks or in the types of software that they'd enjoy working on. Not everyone has a Masters degree in neural networking or machine learning.
For the longest time, software development has been governed by profit motive economics where it's simply not practical to develop applications that are robust (including secure). Users are willing to trade some quality and security for features, lower prices, and faster development turnaround. Videogames may be the best example: studios routinely release games that require patching almost immediately after being installed. Documentation is another well-known casualty. No one has the time or inclination to do things right.
For a while, open source was the answer. Legions of coders could examine a project, download the software for free, and contribute changes. But despite a promising start, the profit motive made even this approach impractical. Many developers used open source more as a way to build a reputation and get jobs instead of building perfect software. Commerical vendors outpaced them by simply cutting corners and getting to market faster. In niche verticals, it's easy to find software that is absolutely abominable but users have no choice since there are no alternatives, and most open source developers prefer large projects where recognition and glory are greater. Vendors get paid to offer support, while open source developers find it hard, because support isn't coding, and because free software leads to free support expectations.
In the meantime, we've come up with development methodologies like Agile and improved code editors and debugging tools. Bug tracking software has also come a long way. We've even invented new computer languages and frameworks. But still, with a profit motive economy, no one can afford to develop software the way NASA does. It just takes too long. It's cheaper to release first and fix (and fix and fix) later. To steal a political joke, people get the software they deserve.
Now, if developers receive UBI, the equation can be flipped around. Without deadlines to meet or shareholders to appease, a developer can take all the time required. We can develop new apps that were turned down by management or that didn't get enough funding. We can go back to our favorite projects and fix them and give them awesome UIs. We can write the documentation that we said we would if we ever had the time. We can write the tools and unit tests that would've stolen too much time from the main project while on the job. We don't have to work on our pet projects outside of our day jobs when we're exhausted; we can apply all our energies to them. The ideals of open source were right, but they were just a little ahead of their time.
Like a retired developer who codes for fun, we can all code the way we want to instead of the way we have to. Our only responsibility is to users, and the only limit is our time. I don't know about you, but if UBI gets deployed, I can't wait to see what we come up with.