To meet the definition of R&D, there need to be uncertainties which cannot be readily resolved by a “competent professional”.
Who is a “competent professional”?
Someone that:
This means that at the outset of the project the company would need to obtain an opinion from a competent professional about:
So to do this, they’d need to research the current state of knowledge at the start of the project.
A competent person could potentially be in-house staff such as the CTO or lead developer, or could also be an outsourced developer/engineer/scientist.