Accelerating technical requirements with generative AI
30 July 2024
The success of any development project depends on the quality and timeliness of technical requirements. Preparing a detailed specification, however, is hard. It takes time and a lot of healthy collaboration, but get it right and you maximise the chances of success.
Eliciting requirements is one of the hardest aspects of software development. Good requirements provide clarity and specificity, and enable designers and engineers to do their job effectively. Requirements elicitation is a team sport involving many stakeholders, not just the product owner e.g. engineers and designers will always have skin in the game and will invariably be involved throughout the process.
From business requirement to technical requirement
On a recent project, we have been helping a global fintech organisation build a new investment platform. It is a complex domain in which detailed technical requirements are used to direct engineering work. Liaising closely with the customer's product owners, the requirements process works as follows:
The Product Owner defines and documents their detailed product requirements. Each new feature is specified with a description, its goals, and key functionality.
The Architect reviews the feasibility of the feature and works with the Product Owner to ensure that it can be delivered. If feasible, the architect then creates a more detailed technical requirements document containing additional technical insight and direction for the engineering team.
The level of detail in the technical requirements document ensures the engineers can successfully deliver the feature within the current architecture. However, translating product requirements into technical requirements is laborious and time-consuming, especially given the context switching architects are subjected to on a daily basis.
Several parts of this flow require thought - e.g. defining the initial requirement, adding insight and direction, clarifying ambiguities, etc - but everything else is just tedious, manual work. There had to be a better, faster way of creating these documents.
Removing the drudgery
With a clear problem statement, we decided to investigate how generative AI could be used to expedite the process. We wanted AI to produce a comprehensive technical requirements document with minimal effort i.e. business requirements + technical insights IN, detailed technical requirements OUT.
On this specific project, we have been using the Swift Evolution Feature Template to standardise our technical requirements. The template works well for our teams and wasn't something we wanted to lose, so the AI was wired to transform the business requirements and shorthand technical guidance into a full-fledged, Evolution-compliant technical requirements document.
In many ways, this is bread and butter for generative AI models, and so it proved to be the case here. The generated output was far from perfect, but it provided a great starting point and dramatically accelerated the process. In this case, using AI meant the architect took the role of document reviewer rather than author, significantly reducing the manual effort required.
Playing the AI game
It is a given that generative AI will lie and hallucinate its way to the top. Never trust its output and always include some kind of verification step in your workflow. As long as the generated output is good enough and the verification step is just a refinement, then your process flow will benefit no end.
As the initial bluster about the potential of AI has turned into cold reality and some level of disillusionment, we have no doubts that AI has its place. It is a perfect companion in helping accelerate low risk workflows such as this, where the time to verify generated output is trivial compared with the legwork of creating the documents in the first place.
Measuring the impact
Integrating generative AI into our requirements process has been transformative for productivity on this project. We estimate that we have more than halved the time required to create solid technical requirements for the engineering teams.
The reduction in friction has also raised the bar on technical requirements across the project which has improved accuracy and quality of delivery - things that are ultimately difficult to measure.