avatarYitaek Hwang

Summarize

What’s Next for Tech?

Software ate the world…now what?

Photo by Nick Night on Unsplash

It’s been nearly 10 years since Marc Andreessen published his iconic “Why Software Is Eating the World,” arguing why he and his eponymous VC firm Andreessen-Horowitz believed we were in the midst of a “dramatic and broad technological and economic shift in which software companies are poised to take over large swathes of the economy,” despite pundits referencing the dotcom crash to label tech as another dangerous new bubble. Andreessen’s theory stood the test of time, and a decade later, it’s safe to say that software ate the world. From the dominance of so-called FAMANG (Facebook, Apple, Microsoft, Amazon, Netflix, Google) companies to the continued rise of mobile and cloud computing, software and tech have disrupted every facet of our lives.

More recently, the historic downfall of WeWork and a slew of tech IPO struggles (e.g. Uber, Lyft, SmileDirectClub) combined with the tech backlash over concerns of privacy, employment issues within the gig economy, and the toxic nature of social media shifted the narrative on what “software eating the world” meant in a broader sense. Benedict Evans summarized it perfectly on his presentation, “Tech and the new normal,” positing that:

Software ate the world.

So all the world’s problems get expressed in software.

The end of Silicon Valley idealism was punctuated with the unprecedented spread of COVID-19. Even Andreessen published a new essay, “It’s Time to Build,” reflecting on the institutional failures to respond to the coronavirus pandemic.

So what’s next?

As an engineer working in tech, my views on the larger impacts on tech are limited at best. For those discussions, I’ll direct you to more eloquent pieces, particularly Alex Danco’s “Progress, Postmodernism and the Tech Backlash” and Ben Thompson’s “Media, Regulators, and Big Tech; Indulgences and Injunctions; Better Approaches.” Instead, this post is my understanding of the general trends in tech and the combining of ideas I’ve read online with my personal experiences to postulate on what happens next.

Everything as Code

In the era of COVID-19, the shift to the cloud accelerated by necessity. In fact, Microsoft saw “two years’ worth of digital transformation in two months,” according to CEO Satya Nadella during April’s quarterly earnings report. As more enterprise companies migrate to the cloud or embrace a hybrid architecture, the movement towards Everything as Code grew as the need to manage and operate complex cloud architecture intensified. While the cloud giants commoditized the infrastructure layer as a service, the proliferation of microservices and modular components increased the complexity of operating a modern software stack.

Everything as Code is an approach to defining and managing the ops-related layer through code so that we can treat it as another piece of software. The idea began with Infrastructure as Code (IaC), which Martin Fowler laid out in his 2016 blog post as a means to use source code to “allow auditability and reproducible builds, subject to testing practices, and the full discipline of continuous delivery.” This idea grew to other aspects in DevOps:

The list goes on for related tools to manage the workflows built on top of this ecosystem. As Seth Vargo points out in his presentation, Everything as Code had the following advantages in managing operational complexity:

  • Linting, static analysis, and alerting
  • Testing
  • Create a common language for DevOps
  • Separation of concerns
  • Model abstract concepts
  • Apply development concepts into DevOps

Up to this point, I view the progress in Everything as Code as commoditizing infrastructure (e.g. Kubernetes for container orchestration, Istio for networking) and reducing human error by automating workflows (e.g. CI/CD, GitOps). One trend to look out for in the future is AIOps: using artificial intelligence to automate workflows. Perhaps the ultimate goal in Everything as Code is to eliminate human operator intervention by automatically healing broken applications, detecting anomalies, and patching vulnerabilities. The obvious starting point is automated log analysis and anomaly detection perhaps at the distributed tracing level. We can already see companies in the log/monitoring vertical (e.g. Splunk, Datadog, New Relic) move into this space. The next plausible candidate in my mind is automated security (i.e. DevSecOps). Moving beyond static analysis and vulnerability scanning, will there be a tool or a system to automatically patch security issues by software? Google Cloud’s IAM recommendation is an interesting example, but can that be applied to a broader ecosystem?

No Code / Low Code

On the other side of Everything as Code, we have the rise of no-code or low-code development tools. The competition intensified when AWS announced the entry into this field with the beta launch of Amazon Honeycode to build web and mobile apps without writing code. Amazon Honeycode joins a growing ecosystem of no-code or low-code companies in various verticals:

The term “no-code” is polarizing in the development communities. To some, the notion of no-code conveys the undertone that “code” is the problem, and providing “dumbed-down, click-and-drag” tools for millions of “non-technical” users is a step in the wrong direction. The two most common arguments I hear against no-code is that (1) it’s nothing new (previous attempts at eliminating code have all failed) and (2) it’s not productive to artificially constrain creators to the limits of no-code tools vs. empowering users to learn to code as it is easier than ever to do so.

Setting aside the charged word for a minute, these no-code and low-code platforms can and do provide tremendous value for non-programmers and programmers alike. Obviously, there are tradeoffs to using an opinionated tool, and the nascent ecosystem means that functionality may be limited. However, it removes the barrier of learning to code to get started, while simultaneously creating a new ecosystem for those with the expertise to extend the product and make it useful. Take Shopify’s explosive growth as an example. Shopify commoditized the infrastructure needed to build an ecommerce website. Now anyone can start selling online, and we have Shopify specialists and a growing catalog of Shopify apps and integration to complete the ecosystem.

Yet there is some truth to the criticisms. The goal isn’t removing code, because it’s the problem. It’s removing the barriers and automating away the mundane (similar to Everything as Code) to get the job done better. There is some validity to concerns of vendor lock-in and portability but in general, I view this movement as a complementary piece as laid out in Dani Grant and Nick Grossman's “The Myth of The Infrastructure Phase”:

A common narrative in the Web 3.0 community is that we are in an infrastructure phase and the right thing to be working on right now is building out that infrastructure: better base chains, better interchain interoperability, better clients, wallets and browsers. The rationale is: first we need tools that make it easy to build and use apps that run on blockchains, and once we have those tools, then we can get started building those apps.

Our hypothesis is that this is not actually how things play out. We are not in an infrastructure phase, but rather in another turn of the apps-infrastructure cycle. And in fact, the history of new technologies shows that apps beget infrastructure, not the other way around. It’s not that first we build all the infrastructure, and once we have the infrastructure we need, we begin to build apps. It’s exactly the opposite.

First, apps inspire infrastructure. Then that infrastructure enables new apps.

Apps & Infrastructure Cycle for Web Apps — Image Credit: USV.com
Apps & Infrastructure Cycle for Mobile Apps — Image Credit: USV.com

I’m particularly interested in seeing what applications we will see (and the ensuing infrastructure improvements) in machine learning and artificial intelligence space. Along with crypto, AI and ML have been touted as the next phase of the digital transformation, but adoption has been slow. We have amazing progress on frameworks (e.g. Tensorflow, PyTorch), hardware (e.g. Nvidia, TPUs), and research, yet it’s still difficult for enterprise companies to build a time-series forecasting model or an end-to-end data pipeline without a data science team.

If we group AutoML with other low-code platforms in the data science space as the core infrastructure pieces, what new apps are now enabled? Consequently, what new infrastructure will those apps inspire?

Ambient Computing

I may be biased since I work in IoT, but ambient computing is the inevitable, natural progression in the evolution of computing. The history of computing can be characterized by several paradigm shifts. First, there were mainframes from IBM. Then came Microsoft and its Windows OS, riding on the coattails of the PC revolution. Google seized the opportunity on the web, followed by mobile along with Apple’s introduction of the iPhone. While Amazon missed the mobile revolution, it ushered in a new era of cloud computing with AWS.

So what comes after the cloud? Fog? The answer may lie in Google Senior Vice President of Devices and Service Rick Osterloh’s opening remarks from Made by Google 19 keynote:

In the mobile era, smartphones changed the world. It’s super useful to have a powerful computer everywhere you are. But it’s even more useful when computing is anywhere you need it, always available to help. Now you heard me talk about this idea with Baratunde, that helpful computing can be all around you — ambient computing. Your devices work together with services and AI, so help is anywhere you want it, and it’s fluid. The technology just fades into the background when you don’t need it. So the devices aren’t the center of the system, you are. That’s our vision for ambient computing.

The other terminology I’ve seen used is frictionless computing. The promise of IoT is to unlock the value in traditionally siloed data via ambient computing. Once we move past the technical challenge with new IoT connectivity, whether its low-power, wide-area networks (LPWAN) for remote monitoring or high-speed, streaming use cases on private LTE networks, we will see a proliferation of bundled apps leveraging new streams of data.

The big question will be who captures the most opportunity in the value chain? Looking at other tech trends (e.g. autonomous vehicles, clean energy, AR/VR), will the next dominant company be a platform connecting the pockets of data via smart contracts or the bundled app transforming our interactions with everyday objects? Or is ambient computing just an extension of mobile where the current players continue to dominate?

The New Normal

The global lockdown due to COVID-19 forced everything online and cemented the importance of tech in our lives. It accelerated existing trends for faster adoption (e.g. move to cloud computing, the rise of ecommerce, further unbundling of media) and gave us the new normal of assuming that everything and everyone is online.

In 2020, software ate the world and surfaced new, yet familiar, trends in the tech value creation cycle in the form of Everything as Code, no-code/low-code platforms, and ambient computing. To borrow from Benedict Evans, we’re at the End of the Beginning, where tech has become central to society.

Technology
No Code
Everything As Code
Ambient Computing
Software
Recommended from ReadMedium