Software may qualify for enhanced research and development (R&D) relief in two respects:
- as the means to achieve the R&D, and
- as the object of the R&D
Software that is used as a tool in a larger R&D project
Where software is developed as a tool for direct use in a larger R&D project, then development of the software will qualify as R&D. An example might be data handling software needed to record and monitor the results of the R&D. The software need not of itself involve a specific advance in science or technology – if it directly contributes to a larger R&D project it will qualify as R&D.
Development of the software as the goal of the R&D project
Software should be given equal treatment to other forms of technological activity. Therefore the guidelines apply to a software project in the same way as they apply in any other project. In particular:
- The project must seek to achieve an advance in science or technology.
- The activities that directly contribute to achieving the advance through the resolution of scientific or technological uncertainty are R&D.
- There must be an advance in overall knowledge or capability in a field of science or technology, not just the company’s own state of knowledge or capability alone.
- The development of a software product does not represent an advance in science or technology simply because it is software.
- Routine adaptation of an existing product or process is not R&D.
- Assembling components of a program to an established pattern or using routine methods for doing so is not R&D.
- However combining standard technologies can be R&D if a competent professional in the field cannot readily deduce how the separate components should be combined to have the intended function.
Most qualifying software projects will be intended to result in a product to be either used in house, licensed or sold. However that is not to say that all costs of development of commercial products will qualify in their entirety. Only the costs incurred in reaching the resolution of technological uncertainties will qualify. Subsequent costs incurred in generating a marketable product may not qualify.
Software R&D might include investigations in such areas as theoretical computer science, new operating systems, creating new search engines using materially new search methods, new programming languages, significant technical advances in algorithms, new or enhanced query languages or object representations, creating new encryption or security techniques that do not follow established methodologies, resolving conflicts within hardware or software, where the existence of a problem area and the absence of a known solution have been documented, software engineering methodologies for improved computer programmes and artificial intelligence.
In this context, artificial intelligence might cover technical advances in such areas as machine vision, robotics, expert systems, neural networks, the understanding of natural language and automatic language translation. The development of, say, a new natural language interface for a computer game could qualify as R&D, al though the game may be a mature product and represent non-R&D activity in most other respects.
Software related activities of a routine nature are not considered to be R&D. Such activities include work on system-specific or programme specific advancements, which were publicly available prior to the commencement of the work. Technical problems, which have been overcome in previous projects on the same operating systems and computer architecture, are excluded, as are activities such as:
- Supporting existing systems.
- Converting/and or translating computer languages.
- Adding user functionality to application programmes.
- De-bugging of systems.
- Adaptation of existing software.
- Preparation of user documentation.
- Creating software that replicates an established paper procedure, possibly building in best practices. The fact that a previously manual task has been automated does not by itself make it R&D.
- The assembling, carrying out routine operations on, and the presenting of, data.
- Using standard methods of encryption, security verification and data integrity.
If your company designs and develops software, it may benefit from a qualifying development activity.