Bret Taylor, the former co-CEO of Salesforce, has penned a blog post in which he says the industry needs to prepare and adapt to the “Autonomous Era” of software development.
AI is in the process of revolutionizing software development, handling many of the basic tasks involved in coding, testing, and documentation. Instead of putting an end to the role of software developer, AI has enabled developers to achieve new levels of productivity.
According to Taylor, the current “Autopilot Era” is only the beginning, and will soon be replaced by the Autonomous Era, “that could make truly autonomous software development a reality.”
In the Autonomous Era of software engineering, the role of a software engineer will likely transform from being the author of computer code to being the operator of a code generating machine. What is a computer programming system built natively for that workflow?
As Taylor points out, such a scenario raises a host of questions about what the industry will look like, what tools will be needed, and how the software engineer’s role will continue to evolve.
If generating code is no longer a limiting factor, what types of programming languages should we build?
If a computer is generating most code, how do we make it easy for a software engineer to verify it does what they intend? What is the role of programming language design (e.g., what Rust did for memory safety)? What is the role of formal verification? What is the role of tests, CI/CD, and development workflows?
Today, a software engineer’s primary desktop is their editor. What is the Mission Control for a software engineer in the era of autonomous development?
Taylor goes on to say that the time to address these questions is now, while simultaneously using the opportunity to improve on the current status quo.
With AI, we have an opportunity not just to create more software, but make software meaningfully more robust. Can we make a new software engineering system that enables us to not only be more productive, but produce fewer bugs and security vulnerabilities? Why shouldn’t every program be verifiably correct and run incredibly efficiently if AI is doing all the work? How much of the world’s unsafe software can be rewritten when we have such a system?
As an industry, I think we should be more ambitious and actively design the Autonomous Era of software engineering. If you’re working on these types of problems, I’d love to learn more and be inspired by your project.
Taylor raises some interesting possibilities for the future of software development, possibilities that further redefine the role of software engineers.