Specifications Are Coming

Published on Aug 19, 2025
1 min read

Specifications are documents that describe how software should behave and what functions it must perform. In other words, they are a separate form of implementation that exists independently of the actual program. By leveraging specifications, we can verify that our software is constructed correctly, which improves its safety and reliability.

Yet maintaining specifications is hard and boring. Because specifications do not directly improve performance or features, most companies neglect them. Once a specification falls behind, it quickly degrades into legacy that nobody reads or maintains.

But with the advent of AI developers, the situation has completely changed. The most important thing when working with AI developers is to provide detailed, concrete objectives. In short, writing good specifications becomes the most important element.

Now we must consider how to write specifications well. Methods and tools for writing specifications are still less mature than programming itself. I predict that future programming systems research will focus on specification writing and related areas.

Let’s imagine an ideal programming system: Human programmers write a specification, and AI developers implement the program according to the specification. If a human changes the specification, AI developers update the program. Equivalence between the specification and the implementation is automatically proven by an AI-based verification engine.