Configuration is the future of software
There are two trends shaping the future of software: engineering platforms and AI-assisted coding.
Self-service organizations
In the last 10 years, a key theme at tech companies has been to build replicable workflows with self-service capabilities, also called engineering platforms.
The idea is to build internal tooling that covers 80% of uses cases, then abstract these into easy-to-use interfaces, and let developers independently bring their own inputs while the platform handles the rest. Everything from machine learning, experimentation, analytics and deployment are undergoing this process of platformization.
Platforms make sense because they lower coordination costs, reduce scopes to favor reliability and scale, and specializes labor to distinguish between building product features and infrastructure.
Writing code with AI
Large language models like Codex are showing incredible results when applied to writing code. Today they are able to autocomplete functions with high accuracy, and it is reasonable think that they will be able to generate full components within the next 3-5 years. The challenge is to figure out which inputs, typically referred as prompts, yield your desired code outcome. Over time, it is easy to see ways in which prompt engineering will become a new paradigm to instruct computers with directed goals instead of specific instructions.
From business requirements to configurations
These two trends give us a future of accelerated software development, underpinned by an architecture of replicable and reliable workflows that provide user experiences. Software is often thought of as translating business logic into code. But what if code is easy to generate and scale? I believe businesses will largely focus on reconfiguring their systems as new market opportunities present themselves.
The most upstream element in this equation is configuration, which is the initial parameters that modify the behavior of applications. Think of configuration as the settings to control and manage a business: resources, experiments, product features, pricing, modeling.
The future of software is one where code is significantly written by language models while human operators define goals. Like Tesla’s self-driving, software will be about defining where to go, not how to get there.