I have some experience with very large-scale projects within major corporations.
Specifications were created by staff in customer-facing roles and subsequently stored in large databases. These specifications were then broken down into detailed requirements. Over time, the volume grew to the point where there were thousands of individual requirements.
Although the development process mandated a thorough review of all requirements, human errors still occurred. Furthermore, additional requirements were frequently introduced during the development phase itself.
All of this resulted in a requirements database that lacked full consistency—regardless of whether the Waterfall model or Agile Development was being used.
Here is what I would like to see:
a) Requirements management tools should check natural language text for consistency right from the start and immediately alert users to any inconsistencies found in the database.
b) The process of breaking down high-level requirements into detailed ones should be AI-assisted, with the AI specifically flagging any gaps—essentially signaling, "Something is missing here!"
c) Existing requirements in commercial tools like e.g. IBM DOORS or Siemens Polarion should feature a new mode allowing users to resolve database inconsistencies through a dialogue with the AI.
d) Official bodies—such as the IETF, SAE (automotive), ERA (railway), and many others—should check their existing specifications for consistency and gaps. New specifications (typically involving multiple companies) should be developed in collaboration with AI.
Thanks for spelling out that great list of priorities for future tooling. I have a feeling the industry is already headed pretty vigorously in that direction, though it will take time for tools to be polished and then to diffuse into practice.
My "good news" message of this post is that we have reason for optimism that, as AI agents themselves trigger more development of new software, they will be well-positioned to provide truly *formal* requirements from the start, which are much more easily amenable not just to consistency checks (clearly very valuable) but also to verification (checking against implementations) and synthesis (producing implementations automatically from specs, which is widely done with AI coding assistants today, but with the right formalism, it can come with mathematical guarantees).
I fully agree with the post's positive core message!
However, the industry needs some time to adapt to this new era of AI-driven / formal workflows.
The most compelling argument would be the success of a large-scale project that utilized AI / formal methods and was completed largely within budget and on schedule.
I would be delighted to see that!
PS: Should the average engineer then be required to know first-order logic or temporal logic, or merely a textual variant thereof (formal engine works in the background)?
My guess is that the population of engineers is going to shrink enough that any particular new skill that we want "everyone" to have becomes more feasible to get out there. The ability to work with formal logic formulas seems totally achievable at the scale I'm imagining for a human software-engineering workforce of the near future.
I have some experience with very large-scale projects within major corporations.
Specifications were created by staff in customer-facing roles and subsequently stored in large databases. These specifications were then broken down into detailed requirements. Over time, the volume grew to the point where there were thousands of individual requirements.
Although the development process mandated a thorough review of all requirements, human errors still occurred. Furthermore, additional requirements were frequently introduced during the development phase itself.
All of this resulted in a requirements database that lacked full consistency—regardless of whether the Waterfall model or Agile Development was being used.
Here is what I would like to see:
a) Requirements management tools should check natural language text for consistency right from the start and immediately alert users to any inconsistencies found in the database.
b) The process of breaking down high-level requirements into detailed ones should be AI-assisted, with the AI specifically flagging any gaps—essentially signaling, "Something is missing here!"
c) Existing requirements in commercial tools like e.g. IBM DOORS or Siemens Polarion should feature a new mode allowing users to resolve database inconsistencies through a dialogue with the AI.
d) Official bodies—such as the IETF, SAE (automotive), ERA (railway), and many others—should check their existing specifications for consistency and gaps. New specifications (typically involving multiple companies) should be developed in collaboration with AI.
Thanks for spelling out that great list of priorities for future tooling. I have a feeling the industry is already headed pretty vigorously in that direction, though it will take time for tools to be polished and then to diffuse into practice.
My "good news" message of this post is that we have reason for optimism that, as AI agents themselves trigger more development of new software, they will be well-positioned to provide truly *formal* requirements from the start, which are much more easily amenable not just to consistency checks (clearly very valuable) but also to verification (checking against implementations) and synthesis (producing implementations automatically from specs, which is widely done with AI coding assistants today, but with the right formalism, it can come with mathematical guarantees).
I fully agree with the post's positive core message!
However, the industry needs some time to adapt to this new era of AI-driven / formal workflows.
The most compelling argument would be the success of a large-scale project that utilized AI / formal methods and was completed largely within budget and on schedule.
I would be delighted to see that!
PS: Should the average engineer then be required to know first-order logic or temporal logic, or merely a textual variant thereof (formal engine works in the background)?
My guess is that the population of engineers is going to shrink enough that any particular new skill that we want "everyone" to have becomes more feasible to get out there. The ability to work with formal logic formulas seems totally achievable at the scale I'm imagining for a human software-engineering workforce of the near future.