Software engineering in the AI era
Software engineering explicitly/implicitly presupposes that 1) software development is done by humans, 2) labor and time are expensive resources, and 3) human intellectual activity has various special characteristics. But as agent-based coding advances, it seems like the time has come to revise these assumptions substantially.
Premises
Let us assume that before long the situation changes as follows.
- The cost of the entire process of creating and operating software converges to 0.
- AI agents become the primary actors in the process of creating and operating software. Humans are involved as stakeholders playing various roles (bearers of legal/ethical responsibility, supervisors, decision-makers, users/consumers, etc.).
For reference, as of April 2025 the above premises have not been achieved, and they are still a long way off from being achieved. At most, as bottlenecks in some parts of “software creation and operation” (software design, coding, design, etc.) are eased, it seems possible that before long the bottleneck will shift to other points (higher-level planning, business development, validation and learning in the market, etc.).
Anyway, let us assume it has been achieved and think it through.
Predictions
Design:
- From the perspective of Agile methodology, Big Design Up Front means incurring a large cost in a situation you do not understand well, so 1) many resources have been invested but have not yet been converted into actual value (a working product), and 2) because an uncertain world is combined with ignorance, it is inventory that is highly likely to be discarded soon. Therefore, excessive up-front design should be avoided.
- But what if the cost of design (including time) converges to 0? You can just do excessive up-front design, and whenever new information appears or the world changes, you can update the design every time.
Code quality:
- It seems it will still matter both in the short term and in the long term. However, from a long-term perspective, the criteria for quality may be somewhat different from the current criteria for quality. See: Source code quality in the AI era
Software quality and demand:
- It does not seem right to assume that software with quality similar to what exists now will be released into the world at a pace similar to now. That is because the world has far too little software, and even the software that does exist is of far too low quality. This is a natural phenomenon derived from the fact that the software production process had been the bottleneck. If this bottleneck is eased, more software and vastly better software will spread through the world. (See: Jevons paradox)
- I suspect revolutionary changes will occur in many fields related to software production and drive software quality up to an extreme degree. For example, there could be a change in the field of HCI that fundamentally breaks away from the 50-year-old WIMP paradigm. (See: Premature UI design end-times rhetoric)
Changes one might anticipate that are not directly related to software engineering:
- Accessibility: If you completely set aside the ethical meaning and look only from a business angle, improving software accessibility is a means of targeting the long-tail market. It is just that until now, software development costs were high, so it was ignored. If costs converge to 0, there is no reason to ignore this good market. The world will get better not because companies become kind or because the law gets stricter, but because it makes money. From the perspective of universal design, today’s software is barbaric in its level and alienates countless humans (and sometimes animals).
- Security and privacy: The expected value of an event is obtained by multiplying the probability that the event occurs by the value (or cost) when that event occurs. In Korea’s case, accidents occurred fairly frequently, but because the cost to be paid was so low, security and privacy issues were neglected. But if development costs converge to 0, there is no particular reason to leave even this small risk alone. The world will get better because it makes money.
Transitional bottlenecks:
- Before the cost of the entire process of software production converges to 0, the bottleneck at the “development” stage seems to be disappearing quickly. When this happens, the bottleneck shifts to other points in the process (The Goal), and most likely the planning stage and the stage of collecting feedback from the market will become such bottlenecks. To resolve the bottleneck at the planning stage, tools and methodologies are needed that can get beyond the limits of specifications written in natural language. Then eventually the bottleneck will shift to higher-level decision-makers, and when that point arrives, we will finally realize how shoddily we have been making decisions all this time.
Memo
- “You are outnumbered by entities that cannot carry responsibility.” —The friction is your judgment
See also
- Securing AI-generated code