(4) Software development as qualified research. In determining if software development activities constitute qualified research, the comptroller will consider the facts and circumstances of each activity.
(A) Application of Four-Part Test to software development activities.
(i) A taxable entity must prove that a software development activity is qualified research and meets all the requirements of the Four-Part Test under paragraph (1) of this subsection, even if the activity is likely to qualify as described in subparagraph (B) of this paragraph.
(ii) A taxable entity may prove that a software development activity described as unlikely to qualify in subparagraph (C) of this paragraph, is qualified research by providing evidence that the activity meets all the requirements of the Four-Part Test under paragraph (1) of this subsection.
(B) Software development activities likely to qualify. Types of activities likely to qualify include, but are not limited to:
(i) developing the initial release of an application software product that includes new constructs, such as new architectures, new algorithms, or new database management techniques;
(ii) developing system software, such as operating systems and compilers;
(iii) developing specialized technologies, such as image processing, artificial intelligence, or speech recognition; and
(iv) developing software as part of a hardware product where the software interacts directly with that hardware in order to make the hardware/software package function as a unit.
(C) Software development activities unlikely to qualify. Types of activities unlikely to qualify include, but are not limited to:
(i) maintaining existing software applications or products;
(ii) configuring purchased software applications;
(iii) reverse engineering of existing applications;
(iv) performing studies, or similar activities, to select vendor products;
(v) detecting flaws and bugs directed toward the verification and validation that the software was programmed as intended and works correctly;
(vi) modifying an existing software business component to make use of new or existing standards or devices, or to be compliant with another vendor's product or platform;
(vii) developing a business component that is substantially similar in technology, functionality, and features to the capabilities already in existence at other companies;
(viii) upgrading to newer versions of hardware or software or installing vendor-fix releases;
(ix) re-hosting or porting an application to a new hardware such as from mainframe to PC, or software platform, such as Windows to UNIX, or rewriting an existing application in a new language, such as rewriting a COBOL mainframe application in C++;
(x) writing hardware device drivers to support new hardware, such as disks, scanners, printers, or modems;
(xi) performing data quality, data cleansing, and data consistency activities, such as designing and implementing software to validate data fields, clean data fields, or make the data fields consistent across databases and applications;
(xii) bundling existing individual software products into product suites, such as combining existing word processor, spreadsheet, and slide presentation software applications into a single suite;
(xiii) expanding product lines by purchasing other products;
(xiv) developing interfaces between different software applications;
(xv) developing vendor product extensions;
(xvi) designing graphic user interfaces;
(xvii) developing functional enhancements to existing software applications/products;
(xviii) developing software as an embedded application, such as in cell phones, automobiles, and airplanes;
(xix) developing software utility programs, such as debuggers, backup systems, performance analyzers, and data recovery;
(xx) changing from a product based on one technology to a product based on a different or newer technology; and
(xxi) adapting and commercializing technology developed by a consortium or open software group.