The future won’t be built by programmers
I believe that teaching kids to code is not enough for us to become a society where the advances in technology benefit everyone, and that we need better tools to allow everyone — both kids learning now and the people already working — to build the future themselves.
How Did We Get In This Mess?
Back in the middle ages, as skills turned to trades turned to professions, it was the deeply skilled practitioners—the artisans—who had all the control over what was produced. The decisions of individual weavers determined what fabrics were produced, blacksmiths what objects were produced. The first surgeons were actually butchers — just because that’s who were most efficient at cutting through meat and bone as quickly and cleanly as possible.
That’s the position we’re in right now with programming. Society has reached a point where the systems required for it to operate at a high level are now to be made in software and so developers—suddenly finding their previously niche skills in high demand—are enjoying a golden age.
By being the only ones who both understand what can be achieved with code and how to go about doing it, programmers have acted as both conductor and orchestra, captain and crew, architect and bricklayer.
This phenomenon, I think, has also contributed to the problem of technologies being built without real understanding of whether they’re the right solution for a problem — or if they’re solving a real problem at all.
Adding more developers into the world doesn’t solve this problem — it just means that these ill-fitting and unwanted software solutions are produced at a faster rate. Our aim is should not be to grow the small group of people who can solve the problems we face, but to change our environment so they can be solved by whoever has the necessary insight, understanding and will.
Is code enough?
We need for more and more of the people who experience and understand the problems they face to have the ability to solve them themselves. The answer to this need is not to teach everyone how to code. The transformation of the personal publishing industry did not come from teaching everyone how to use a printing press, but from the ready availability of desktop publishing software that meant that they didn’t have to.
But just as the advent of Lotus and Wordperfect didn’t remove the need for good design skills and clear written communication, so too the revolution in building software won’t remove the need for good system design and implementation.
That’s why instead of teaching our children the skills to write code to build software from the ground-up (and often teach it badly), we need to teach them how to design systems using technology.
I believe that even now it’s probably more useful for them to be able to think in excel formulae and model useful databases than it is for them to be able to write a sorting algorithm in C++ from memory. These are the sort of skills that are immune to shifting fashions of technology, and that can be taken and applied in any industry.
We’re already seeing some of this happing in software today. Some of the power is already shifting from the science-leaning programmers and engineers towards more holistic roles like product manager; to individuals who are able to look at a problem in its whole and within its context, and who are far more likely to come from arts and humanities backgrounds than those whose job it is to build the software. Think of the difference between architects who plan a temple, and the expert craftsmen who shape the stones that form it. Both are required, but if all we have are craftsmen, all we’re going to get are a lot of nicely shaped stones.
In the future, the power will be not with those who can use their will to create software, but those who can design software that can do their will.
Seizing the means of production
As well as promoting systems-thinking, we also need to provide the second ingredient: the tools that allow people to build apps and systems without being expert programmers. We need to build tools that let people solve their own need without having to turn to a specialist to make it happen. And these tools aren’t just for the next generation—they’re needed right now. Because the non-programmers have already started programming.
As the developer rockstars of Silicon Valley flourished and turned their focus towards grand missions like uniting all the people of the world on one advertising network, the “code illiterates” have continued to find ingenious ways to build the systems they need, just as they have done for decades before Javascript was born.
They’re building them right now: using post-its, people and paper; using emails, slack channels and spreadsheets. The popularity of the new generation of tools to collect and manage data (Trello and Google Sheets), create quick webpages (Wordpress, Wix and Squarespace), collaborate and capture ideas (Notion, Coda) and move data between apps (Zapier and IfThisThenThat) attest to the enormous appetite of people from all backgrounds to be able to create progresses and algorithms and apps, without writing a line of code.
We need to keep building tools like these, of all shapes and sizes, to allow innovation to happen at the heart of the industries that will benefit from it, not from tech geniuses outside looking in.
Even with these tools, there are still things that are really hard to do without substantial amount of coding. One thing that’s still out of reach is the ability to create interactive consumer apps like Airbnb, Uber and Kickstarter. That’s why I’m spending my time building a platform that lets non-developers build entire apps without code.
Because one thing’s clear: we can’t leave creating software entirely in the hands of developers.