SR&ED and Software Development

SR&ED and Software Development

To increase the accessibility of the program, the CRA offers information seminars and webinars regarding the SR&ED tax credit program. The scenarios and the analysis that follows is derived from the slides prepared for such a webinar designed for SR&ED claimants. This March 22, 2017 webinar, focuses on the eligibility of work in relation to software development, which can sometimes be a grey area in relation to SR&ED.1 One of the main tenants of the SR&ED tax incentive is the ability to demonstrate transformation or improvement of a technology or process. Sometimes this can be difficult to quantify in the field of software development.  

Unfortunately, the information provided on the CRA website is the notes from the PowerPoint presentation, which are difficult to read. We have reorganized the three scenarios developed by the CRA and present them as follows:  

  • Scenario 1 Introduction, Description of Work, Analysis,  
  • Scenario 2 Introduction, Description of Work, Analysis 
  • Scenario 3 Introduction, Description of Work, Analysis

Wherever possible the language remains that of the CRA, except in instances where it has been modified for improved clarity. The full, unedited text from the CRA’s slide deck can be found in Appendix 1. In these three scenarios, the software system itself is the new or improved product, process or device. 

**** 

Introduction 

Ubiquitous presence of software in modern goods and services is indisputable. Software development seems to play a part in the creation of new or improved products and services in almost every sector. Naturally, a great percentage of the claims for scientific research and experimental development (SR&ED) have software development in them. This webinar is an effort to illustrate the concepts of SR&ED when applied to work involving software development. 

First, we will provide a brief recap on SR&ED, eligibility policy, and technology definition.  We will then apply it to work containing software development, and illustrate it through examples. In other words, we will: 

  • examine the eligibility of work that incorporates software development, for SR&ED, through practical examples, 
  • provide a common understanding of SR&ED in the context of software development. 

This presentation will focus on the technical aspects associated with the eligibility of work. 

Legislative & Policy Concepts (Slides 4-6)  

For work to qualify for tax incentives, the work must meet the legislative definition of scientific research and experimental development. Therefore, whenever we are referring to “eligibility of work” or “eligible work”, we are referring to the work that meets the legislative definition of SR&ED. SR&ED is defined in subsection 248(1) of the Income Tax Act. 

The first part of the definition essentially tells us how SR&ED work is conducted, that is, the work must be a systematic investigation or search carried out by means of experiment or analysis in a field of science or technology. 

The second part of the definition identifies why the work is conducted, that is, the work must be undertaken either:   

  • for the advancement of scientific knowledge (identified as (a) basic or (b) applied research depending on whether a specific application is in mind or not) or 
  • for (the purpose of) achieving technological advancement (identified as (c) experimental development). 

The two-step methodology is used to determine if and to what extent work meets the definition of SR&ED: 

  • Step 1 – Determine if there is SR&ED, and 
  • Step 2 – Determine the extent of eligible work (only if there is SR&ED). 

The focus of this webinar is the eligibility of work containing software development and we will limit the scope to Step 1. 

To determine if there is SR&ED, we use the five-questions method as outlined in the eligibility policy. 

The method to establish if there is SR&ED involves answering five questions. 

  1. Was there a scientific or a technological uncertainty? 
  2. Did the effort involve formulating hypotheses specifically aimed at reducing or eliminating that uncertainty? 
  3. Was the overall approach adopted consistent with a systematic investigation or search, including formulating and testing the hypotheses by experiment or analysis? 
  4. Was the overall approach for the purpose of achieving a scientific or a technological advancement? 
  5. Was a record of the hypotheses tested and the results kept as the work progressed? 

          Remember: It is determined that there is SR&ED if the answer to all five questions is “yes”.  

          Definitions

          Systematic Investigation or Search (Slide 46) 

          If the work generates or confirms what is within the technological knowledge base, even though the work was undertaken systematically, it will not be considered as SIS for reducing or eliminating technological uncertainty. 

          Work resulting in the generation of new knowledge that explains the reasons of failure of possible solutions to achieve a technological objective is considered a technological advancement provided it is not available in the existing technological knowledge base. 

          Technological Advancement (Slides 47-48) 

          Now we will examine the concept of technological advancement relating to Question 4. As we already know, experimental development is undertaken for the purpose of achieving technological advancement for the purpose of creating new or improved product, process, device, or material. 

          Scientific or technological advancement is the generation of information or discovery of knowledge that advances the understanding of scientific relations or technology. 

          Key milestones in the pursuit of technological advancement are: 

          • identifying that there is a limitation in the current state of technology, 
          • undertaking work to address the limitation, and 
          • work leading to an understanding of the principles, techniques, and concepts beyond the existing technological knowledge base

          Technological advancement is the new knowledge that is applicable beyond the current project. 

          Technological advancements in software development projects can involve: 

          • New or improved techniques and methods in computing to store, search, process, and manage vast collection of data (big data). Typically undertaken in universities and large research labs. 
          • Advancements necessary in support of software technology stack or tools. 
          • Advancements necessary for new or improved infrastructures like internet driven cloud and distributed computing. 
          • Advancements necessary to support scaling, reliability, and availability of software-based systems. 
          • Advancements in other technology areas like vision and medical imaging, video transmission, telecommunication (voice), automation, controls, etc.

          Experimental Development (Slide 10) 

          Experimental development is undertaken for the purpose of achieving technological advancement. So, what is technology? Technology is not a physical entity. Technology is the practical application of scientific knowledge and principles. It is the knowledge of how scientifically determined facts and principles are embodied in the material, device, product, or process. 

          As technology evolves, the practical applications of scientific knowledge and principles as well as the technological knowledge associated with the products, processes, or devices become the scientifically determined facts and principles for further development. 

          Scenario 1: The software itself is the new or improved product, process, or device.  

          Three examples:

          • Voice codec software like G 729 codec is a software product containing a particular implementation of a compression algorithm for voice data. 
          • Web information system and document management tools are software products that allow document management, storage, and publishing on the web. 
          • Protein structure prediction software for predicting the three-dimensional structure model of protein molecules from amino acid sequences is a software product.

          Project objective and the development work (Slide 37-38) 

          A company is building an online application that will allow users to query a very large database of information on products and pricing. The application utilizes user location to display products sorted based on proximity. The system requirements were set by search completion time and the ability to perform live updates to the database in a timely manner. 

          An initial system was built with a modern Relational Database Management System (RDBMS). The search performance did not meet the requirement of search time and the live updates were taking too long. The time consumed by the individual processes of the work-flow was measured starting from user-input to displaying the final result. This identified computations that were taking too long. 

          Identical repetitive computations were replaced with look-up tables and cached database tables to reduce search time. The cache memory was not sufficient as there were too many large tables. The large tables were necessary to avoid complex queries with dependence on multiple tables. Changes were made but they did not result in consistent performance improvement. The overall search time performance did not improve to the desired level. 

          An alternate solution was built using a search platform with advanced text search capabilities. The search performance time turned out to be well within requirements, but the database updates did not meet the requirements. This was investigated and changes were made to the configuration of the search platform that improved update metrics. 

          What conclusions can we draw from the work done by the company? (Slide 39) 

          By choosing a search platform meant for text searches instead of using a relational database for text searches, the search performance criteria was met. Also, the search platform needed to be configured appropriately to meet the database update requirement of the application. Both the use of the text-based search platform for text searches and the configuration of the platform for optimized performance of their application comes from within the technological knowledge base. 

          Analysis (Slide 49) 

          In this scenario, the company set out to build an online application that queries a very large database of information on products and pricing. Initially, they built it using a relational database and it did not meet their requirements. They then built the application using a text-based search platform. Let us say that the following is stated as the technological advancement:  

          Built an online application that displays search information of available products and pricing based on proximity to the user as well as performing tasks within time requirements.” 

          Do you think this statement represents a technological advancement? The answer is, no. Why? 

          It describes the functionality and capability of an application and does not convey the technological advancement required to build the capability or functionality.  

          Scenario 2: The new or improved product, process, or device is a combination of hardware and software

          Two examples:  

          • Electric drive controllers can be a hardware product with embedded software incorporating both power electronics and microprocessors to exercise dynamic control over speed, torque, and efficiency. 
          • Bank cheque reading systems based on convolutional Neural Network software can consist of mechanical and electrical hardware to automatically scan and process cheques.

          Project objective and the development work (Slides 40-41) 

          An app developer for a popular mobile phone operating system was asked to develop a unique secure file transfer application that uses Wi-Fi to send and receive many pre-scheduled files to and from a central server. The user of the app is not constrained to stay connected to a Wi-Fi for the completion of the file transfers. An application was created with the capability to queue and schedule file transfers based on a standard secure file transfer protocol. Whenever the phone had Wi-Fi connectivity, the scheduler within the app would initiate and continue pre-scheduled data transfers.  

          The application encountered transfer failures whenever the user moved out of a Wi-Fi range, requiring re-transfer or use of expensive wireless data. Testing of the issue revealed that the failures were more common when the file size was over a certain limit. The files were divided into smaller chunks, transmitted one chunk at a time, keeping track of the chunks transmitted. This solved the initial issue but created other issues like the device consuming too much resource and time in preparing the files thereby impacting scheduling. To overcome this, the developers decided to transmit fixed size data and keep track of the pointer to the end location of the last transmission to eliminate preparation time. 

          What conclusions can we draw from the work done by the company?  (Slide 42) 

          The app development required transmitting small size data, keeping track of the files through pointers, and having a process to schedule/manage files, and data within a file. The knowledge to accomplish this was within the technological knowledge base. Even though the app may be unique, there was no limitation of technology that prevented the development of it. 

          The work, though conducted systematically, was not towards reducing or eliminating a technological uncertainty. Therefore, it is not considered a Systematic Investigation or Search for the purpose of resolving a technological uncertainty. 

          Analysis (Slide 50) 

          This is the example where an app developer for a popular mobile phone operating system was asked to develop a unique secure file transfer application that uses Wi-Fi to send and receive many pre-scheduled files to and from a central server. 

          Let us say that the creation of this secure file transfer application with its unique functionality is stated as the technological advancement for the project. 

          Do you think this statement represents a technological advancement? The answer is, no. Why? 

          Here, novelty, feature or functionality of the mobile phone app was achieved using information and techniques available within the technological knowledge base. It did not require a technological advancement. 

          Scenario 3: Where software development is necessary for a project but the developed software is not a part of the product, process, or device. 

          Two Examples:  

          • The development of code in Hardware Description Language (HDL) for Application Specific Integrated Circuit (ASIC) using tools such as Verilog/VHDL simulators and HDL Synthesis tools.
          • Software development necessary solely for testing or conducting experiments using packet sniffing tools with scripting capability. 

          Project objective and the development work (Slide 43-44)  

          This example for scenario 3 is a continuation of the previous example under “limitation of technology” and describes the work that was undertaken towards advancing the understanding of how XYZ Cloud uses information in the Directory Service object for single sign-on identify management. 

          A setup consisting of XYZ Cloud’s Access Control Service using the Cloud’s Directory Service instance as the ID provider for a relying application was created. A packet sniffing tool was setup to capture and analyze the user browser network traffic and log during login attempts4. The Cloud’s Directory Service was populated with user objects from a local Directory Service using the proprietary synchronization tool as in approach. 

          The visibility of claims within the WS-Federation was confirmed during login attempts. The next effort was to understand the relationships between claim attributes and Directory Service user objects.  The observations and analysis of the claim attributes of the captured information within security tokens, allowed the mapping and expression of the correlation between the Directory Service user object attributes and the object attributes used within the Cloud’s identity management entities. 

          The next activities were towards validating the relationships, determining whether Security Token Service provided by the Federation Service can be substituted, and finding out what may be necessary to mimic any Federation Service specific behaviour. 

          To accomplish this, an open source security token server was setup. A trust association between the server and XYZ Cloud identity management was established. The signing algorithm and signing certificates were aligned between the two. These steps were necessary to configure the use of the security token server as the identity provider for the Cloud Service. Based on the developed relationships, the server source code was modified to create new claim types structured using Directory Service user object attributes. 

          By undertaking several tests, it was possible to understand where and how the Directory Service object attributes were used in the claims for the Cloud Service. The results enabled the construction of a single sign-on for XYZ Cloud Service without Federation Service where it was possible to use attributes and unique-ids that did not belong to the Directory Service. This also led to the development of user stores without the Directory Service. 

          What conclusions can we draw from the work done by the company? (Slide 45)  

          From the work described, we can conclude that the Information on the work undertaken is at sufficient level of detail that both a claimant and a reviewer from the Canada Revenue Agency (CRA) can agree on the statements of facts, see the characteristics of the work undertaken, and identify new knowledge. With reasonable effort, the reviewer (and the claimant) can determine and agree if this is over and above the technological knowledge base. 

          Analysis (Slide 51)  

          In this project, understanding where and how the Directory Service user object attributes are used in the claims, how they are mapped to the security tokens, their relationships to the Cloud identity management user object attributes and ruling out the need to mimic any Federation Service specific behavior was presented as the technological advancement. 

          Do you think this statement represents a technological advancement?The answer here is, yes. Why? 

          Because this knowledge allowed the building of single sign-on capability without ‘the need to use the XYZ software company’s Federation Service’ in the XYZ Cloud and the creation of user store not based on XYZ Directory Service for single sign-on. 

          It is important to note that achievement of single sign-on capability on its own is not the technological advancement. 

          Supporting Documentation (Slides 52-55) 

          It is important to address question 5 of step 1 in the eligibility policy regarding the record of hypotheses tested and the results kept as the work progressed. for several reasons. The records confirm that the work described during a review was performed.It is a record of hypotheses, tests, and results that shows the progress of work. It reveals the analysis of results from each step and how it is applied to the next step.It also shows if indicators and measures identified to determine if the goals of the work are being met, are recorded.Tracking and retaining these records bring out the results of the work. 

          The work described regarding the development of a single sign-on method is made of hypotheses, tests, and results as it progressed.  This is used as an example to provide instances of naturally produced results of testing and organized recording as work progressed: 

          Confirmation of the visibility of Directory Service user attributes inside the claims within WS-Federation credentials was done using a packet sniffing and analysis tool and therefore the following results would have been naturally or easily produced: 

          • Screen-capture or log of the responses identifying the tokens with claims, and 
          • The recognizable attributes of the Directory Service user objects with or without encoding. 

          The next step to map the attributes to the claim identifiers should produce: 

          • Names and format of expression of all the claim identifiers and their associated user objects in the claims

          The trust association between the generic Security Token Server and XYZ Cloud was set-up and made functional. A screen capture of the response of the appropriate commands used to establish this association will provide the details of what was accomplished. 

          Finally, code changes were introduced and modified in the generic Security Token Server to enable claim construction. Several tests were conducted and adjustments were made based on the results of the tests to enable successful claims and security tokens. This work should have: 

          • initial modification to the source code to create claims and the results of using it, 
          • changes made based on the results of previous tests and their outcome, and 
          • the final code

          Summary (Slides 56-59) 

          We have completed the illustration of SR&ED associated with software development. 

          The following is a summary of the various points covered: 

          • Software development has become intrinsic to new or improved products/services in many sectors. 
          • There is prolific and unprecedented development of complex applications using software. 
          • This is driving the need for technological advancement. Technological advancement may be either in software technology or other fields. Within software technology, advancements happen at various levels. 
          • Technology is knowledge and not a physical thing. 
          • The five-question methodology applies to software development as in any other field 
          • Identifying the technological knowledge base properly is important. 
          • Limitation of technology needs to be articulated by correlating it with the technological knowledge base. 
          • Not all systematic work is a systematic investigation or search as required in SR&ED. 
          • By showing why a possible solution will not succeed or will not meet the desired objectives, advancement is still possible. 
          • Record of hypotheses tested and results generated is important for demonstrating that a systematic investigation or search took place. 

          This brings us to the conclusion. Through examples, we have illustrated some of the key concepts associated with the Step 1 of the Eligibility of Work for SR&ED Investment Tax Credits Policy for claims containing software development. 

          **** 

          Appendix 1 

          As indicated above, this appendix contains the full, unedited text from the March 22, 2018 webinar on SR&ED eligibility for software development projects.

          Eligibility of work in SR&ED projects containing software development. Source

          Transcript 

          Slide 1: 

          The ubiquitous presence of software in modern goods and services is indisputable. Software development seems to play a part in the creation of new or improved products and services in almost every sector. Naturally, a great percentage of the claims for scientific research and experimental development (SR&ED) have software development in them. This webinar is an effort to illustrate the concepts of SR&ED when applied to work involving software development. 

          Slide 2: 

          First, we will provide a brief recap on SR&ED, eligibility policy, and technology definition.  We will then apply it to work containing software development, and illustrate it through examples. In other words, we will: 

          • examine the eligibility of work that incorporate software development, for SR&ED, through practical examples, 
          • provide a common understanding of SR&ED in the context of software development. 

          Considering the time constraints, we hope that everybody understands that it will not be possible for us to focus on each and every aspect of this. Also, this presentation will focus on the technical aspects associated with the eligibility of work. 

          Slide 3: 

          In this webinar, we will go over the important aspects of the definition of SR&ED and the methodology used in determining the eligibility of work. 

          Broadly examine where we encounter software development in SR&ED claims. 

          Illustrate the concept of technology as it applies to software. 

          Look at some areas of advancement to illustrate that the potential for advancement exists in many areas. 

          Examine key SR&ED concepts in the 5 Question methodology through software development examples. 

          Slide 4:  

          For work to qualify for tax incentives, the work must meet the legislative definition of scientific research and experimental development. Therefore, whenever we are referring to “eligibility of work” or “eligible work”, we are referring to the work that meets the legislative definition of SR&ED. SR&ED is defined in subsection 248(1) of the Income Tax Act. 

          The first part of the definition essentially tells us how SR&ED work is conducted, that is, the work must be a systematic investigation or search carried out by means of experiment or analysis in a field of science or technology. 

          The second part of the definition identifies why the work is conducted, that is, the work must be undertaken either:   

          • for the advancement of scientific knowledge (identified as (a)basic or (b)applied research depending on whether a specific application is in mind or not) or, 
          • for (the purpose of) achieving technological advancement (identified as (c) experimental development). 

          Slide 5: 

          The two-step methodology is used to determine if and to what extent work meets the definition of SR&ED: 

          Step 1 – Determine if there is SR&ED, and 

          Step 2 – Determine the extent of eligible work (only if there is SR&ED). 

          The focus of this webinar is the eligibility of work containing software development and we will limit the scope to Step 1. 

          To determine if there is SR&ED, we use the five-questions method as outlined in the eligibility policy. 

          Slide 6: 

          The method to establish if there is SR&ED involves answering five questions. 

          1. Was there a scientific or technological uncertainty? 
          1. Did the effort involve formulating hypotheses specifically aimed at reducing or eliminating that uncertainty? 
          1. Was the overall approach adopted consistent with a systematic investigation or search, including formulating and testing the hypotheses by experiment or analysis? 
          1. Was the overall approach for the purpose of achieving a scientific or technological advancement? 
          1. Was a record of the hypotheses tested and the results kept as the work progressed? 

          Remember: It is determined that there is SR&ED if the answer to all five questions is “yes”. 

          Slide 7: 

          Let us now look at three scenarios where we encounter software development projects. 

          Here are three examples for the first scenario where the software itself is the new or improved product, process, or device. 

          Voice codec software like G 729 codec is a software product containing a particular implementation of a compression algorithm for voice data. 

          Web information systems and document management tools are software products that allow document management, storage, and publishing on the web. 

          Protein structure prediction software for predicting the three-dimensional structure model of protein molecules from amino acid sequences is a software product. 

          Slide 8: 

          The second scenario is where a new or improved product, process, or device is a combination of hardware and software. Let’s look at two examples. 

          Electric drive controllers can be a hardware product with embedded software incorporating both power electronics and microprocessors to exercise dynamic control over speed, torque, and efficiency. 

          Bank cheque reading systems based on convolutional Neural Network software can consist of mechanical and electrical hardware to automatically scan and process cheques. 

          Slide 9: 

          The third scenario is where software development is necessary for a project but the developed software is not a part of the product, process, or device. We will look at 2 such examples. 

          Example 1: The development of code in Hardware Description Language (HDL) for Application-Specific Integrated Circuit (ASIC) using tools such as Verilog/VHDL simulators and HDL Synthesis tools. 

          Example 2: Software development necessary solely for testing or conducting experiments using packet sniffing tools with scripting capability. 

          Slide 10: 

          As mentioned in an earlier slide, Experimental Development is undertaken for the purpose of achieving technological advancement. 

          So, what is technology? 

          Technology is not a physical entity. 

          Technology is the practical application of scientific knowledge and principles. 

          It is the knowledge of how scientifically determined facts and principles are embodied in the material, device, product, or process. 

          As technology evolves, the practical applications of scientific knowledge and principles as well as the technical knowledge associated with the products, processes, or devices become the scientifically determined facts and principles for further development. 

          Slide 37: 

          Now we will look at the details of the example for scenario 1. 

          A company is building an online application that will allow users to query a very large database of information on products and pricing. The application utilizes user location to display products sorted based on proximity. The system requirements were set by search completion time and the ability to perform live updates to the database in a timely manner. 

          The following work was undertaken: 

          An initial system was built with a modern Relational Database Management System (RDBMS). The search performance did not meet the requirement of search time and the live updates were taking too long. The time consumed by the individual processes of the work-flow was measured starting from user-input to displaying the final result. This identified computations that were taking too long. 

          Slide 38: 

          Identical repetitive computations were replaced with look-up tables and cached database tables to reduce search time. The cache memory was not sufficient as there were too many large tables. The large tables were necessary to avoid complex queries with dependence on multiple tables. Changes were made and it did not provide consistent performance improvement. The overall search time performance did not improve to the desired level. 

          An alternate solution was built using a search platform with advanced text search capabilities. The search performance time turned out to be well within requirements but the database updates did not meet the requirements. This was investigated and changes were made to the configuration of the search platform that improved update metrics. 

          Now, what conclusions can we draw from the work done by the company? 

          Slide 39: 

          By choosing a search platform meant for text searches instead of using a relational database for text searches, the search performance criteria were met. Also, the search platform needed to be configured appropriately to meet the database update requirement of the application. Both the use oftext-based search platform for text searches and configuration of the platform for optimized performance of their application are from within the technological knowledge base. 

          Slide 40: 

          Now we will look at the example for scenario 2 presented earlier. 

          Here is a summary of the project objective and the development work. 

          An app developer for a popular mobile phone operating system was asked to develop a unique secure file transfer application that uses Wi-Fi to send and receive many pre-scheduled files to and from a central server. 

          The user of the app is not constrained to stay connected to Wi-Fi for the completion of the file transfers. 

          An application was created with the capability to queue and schedule file transfers based on a standard secure file transfer protocol. 

          Whenever the phone had Wi-Fi connectivity, the scheduler within the app would initiate and continue pre-scheduled data transfers. 

          The application encountered transfer failures whenever the user moved out of a Wi-Fi range, requiring re-transfer or use of expensive wireless data. 

          Slide 41: 

          The testing of the issue revealed that the failures were more common when the file size was over a certain limit. 

          The files were divided into smaller chunks, transmitted one chunk at a time, keeping track of the chunks transmitted. 

          This solved the initial issue but created other issues like the device consuming too much resource and time in preparing the files thereby impacting scheduling. 

          To overcome this, the developers decided to transmit fixed-size data and keep track of the pointer to  the end location of the last transmission to eliminate preparation time. 

          Now, what conclusions can we draw from the work undertaken in this example? 

          Slide 42: 

          The app development required transmitting small size data, keeping track of the files through pointers, and having a process to schedule/manage files, and data within a file. The knowledge to accomplish this was within the technological knowledge base. Even though the app may be unique, there was no limitation of technology that prevented the development of it. 

          The work, though conducted systematically, was not towards reducing or eliminating a technological uncertainty. Therefore it is not considered a Systematic Investigation or Search for the purpose of resolving a technological uncertainty. 

          Slide 43: 

          This example for scenario 3 is a continuation of the previous example under “Limitation of technology” and describes the work that was undertaken towards advancing the understanding of how XYZ Cloud uses information in the Directory Service object for single sign-on identify management. 

          Let us look at the work undertaken. 

          A setup consisting of XYZ Cloud’s Access Control Service using the Cloud’s Directory Service instance as the ID provider for a relying application was created. A packet sniffing tool was set up to capture and analyze the user browser network traffic and log during login attempts4. The Cloud’s Directory Service was populated with user objects from a local Directory Service using the proprietary synchronization tool as in approach. 

          The visibility of claims within the WS-Federation was confirmed during login attempts. The next effort was to understand the relationships between claim attributes and Directory Service user objects.  The observations and analysis of the claim attributes of the captured information within security tokens allowed the mapping and expression of the correlation between the Directory Service user object attributes and the object attributes used within the Cloud’s identity management entities. 

          Slide 44: 

          The next activities were towards validating the relationships, determining whether the Security Token Service provided by the Federation Service can be substituted, and finding out what may be necessary to mimic any Federation Service specific behaviour. 

          To accomplish this, an open-source security token server was setup. A trust association between the server and XYZ Cloud identity management was established. The signing algorithm and signing certificates were aligned between the two. These steps were necessary to configure the use of the security token server as the identity provider for the Cloud Service. Based on the developed relationships, the server source code was modified to create new claim types structured using Directory Service user object attributes. 

          By undertaking several tests, it was possible to understand where and how the Directory Service object attributes were used in the claims for the Cloud Service. The results enabled the construction of a single sign-on for XYZ Cloud Service without Federation Service where it was possible to use attributes and unique-ids that did not belong to the Directory Service. This also led to the development of user stores without the Directory Service. 

          Again, what conclusions can we draw from the work undertaken in this example? 

          Slide 45: 

          From the work described, we can conclude that the Information on the work undertaken is at sufficient level of detail that both a claimant and a reviewer from the Canada Revenue Agency (CRA) can agree on the statements of facts, see the characteristics of the work undertaken, and identify new knowledge. With reasonable effort, the reviewer (and the claimant) can determine and agree if this is over and above the technological knowledge base. 

          Slide 46: 

          Here are some additional points on systematic investigation or search. 

          If the work generates or confirms what is within the technological knowledge base, even though the work was undertaken systematically, it will not be considered as SIS for reducing or eliminating technological uncertainty. 

          Work resulting in the generation of new knowledge that explains the reasons for the failure of possible solutions to achieve a technological objective is considered a technological advancement provided it is not available in the existing technological knowledge base. 

          Slide 47: 

          Now we will examine the concept of technological advancement relating to Question 4. This is covered through slides 47 to 51. As we already know, Experimental Development is undertaken for the purpose of achieving technological advancement for the purpose of creating a new or improved product, process, device, or material. 

          Scientific or technological advancement is the generation of information or discovery of knowledge that advances the understanding of scientific relations or technology. 

          Key milestones in the pursuit of technological advancement are: 

          • identifying that there is a limitation in the current state of technology, 
          • undertaking work to address the limitation, and 
          • work leading to an understanding of the principles, techniques, and concepts beyond the existing technological knowledge base 

          Technological advancement is the new knowledge that is applicable beyond the current project. 

          Slide 48: 

          Technological advancements in software development projects can involve: 

          • New or improved techniques and methods in computing to store, search, process, and manage a vast collection of data (big data). Typically undertaken in Universities and large research labs,
          • Advancements necessary in support of software technology stack or tools, 
          • Advancements necessary for new or improved infrastructures like internet-driven Cloud and distributed computing,
          • Advancements necessary to support scaling, reliability, and availability of software based systems, and
          • Advancements in other technology areas like vision and medical imaging, video transmission, telecommunication (voice), automation, controls, etc. 

          Slide 49: 

          We will re-look at the three earlier examples discussed under the Systematic Investigation or Search to illustrate what is and what is not technological advancement. If you recall the example from scenario 1 where the company set out to build  an online application that queries a very large database of information on products and pricing. Initially they built it using a relational database and it did not meet their requirements. They then built the application using a text-based search platform. Let us say that the following is stated as the technological advancement. 

          Built an online application that displays search information of available products and pricing based on proximity to the user as well as performing tasks within time requirements. 

          Do you think this statement represents a technological advancement? 

          The answer is, no. Why? 

          Because it describes functionality and capability of an application and does not convey the technological advancement required to build the capability or functionality. 

          Slide 50: 

          Let us now look at the example from scenario 2. This is the example where an app developer for a popular mobile phone operating system was asked to develop an unique secure file transfer application that uses Wi-Fi to send and receive many pre-scheduled files to and from a central server. 

          Let us say that the creation of this secure file transfer application with its unique functionality is stated as the technological advancement for the project. 

          Do you think this statement represents a technological advancement? 

          The answer is, no. Why? 

          Here, novelty, feature or functionality of the mobile phone app was achieved using information and techniques available within the technological knowledge base. It did not require a technological advancement. 

          Slide 51: 

          Lastly, let us now look at the example from scenario 3 where work was undertaken towards achieving a single sign-on capability for their application hosted in XYZ Cloud. 

          In this project, understanding where and how the Directory Service user object attributes are used in the claims, how they are mapped to the security tokens, their relationships to the Cloud identity management user object attributes and ruling out the need to mimic any Federation Service specific behaviour was presented as the technological advancement. 

          Do you think this statement represents a technological advancement? 

          The answer here is, yes. Why? 

          Because this knowledge allowed the building of ‘single sign-on capability without ‘the need to use the XYZ software company’s Federation Service’ in the XYZ Cloud and the creation of user store not based on XYZ Directory Service for single sign-on. 

          It is important to note that achievement of single sign-on capability on its own is not the technological advancement. 

          Slide 52: 

          After having looked at technological advancement, we will address question 5 of step1 in the eligibility policy that concerns record of hypotheses tested and the results kept as the work progressed. This is covered through slides 52 to 55. 

          Why is this important? 

          This is important for several reasons. 

          The records confirm that the work described during a review was performed. 

          It is a record of hypotheses, tests, and results that shows the progress of work. 

          It reveals the analysis of results from each step and how it is applied to the next step. 

          It also shows if indicators and measures identified to determine if the goals of the work are being met, are recorded. 

          Tracking and retaining these records bring out the results of the work. 

          Slide 53: 

          Using the work undertaken described in a previous example we will illustrate the record of the hypotheses tested and the results kept. 

          The work described in the previous example on the development of a single sign-on method is made of hypotheses, tests, and results as it progressed. 

          This is used as an example to provide instances of naturally produced results of testing and organized recording as work progressed: 

          Confirmation of the visibility of Directory Service user attributes inside the claims within WS-Federation credentials was done using a packet sniffing and analysis tool and therefore the following results would have been naturally or easily produced: 

          • Screen-capture or log of the responses identifying the tokens with claims, and 
          • The recognizable attributes of the Directory Service user objects with or without encoding. 

          Slide 54: 

          The next step to map the attributes to the claim identifiers should produce: 

          • Names and format of expression of all the claim identifiers and their associated user objects in the claims 

          The trust association between the generic Security Token Server and XYZ Cloud was set-up and made functional. A screen capture of the response of the appropriate commands used to establish this association will provide the details of what was accomplished. 

          Slide 55: 

          Finally, code changes were introduced and modified in the generic Security Token Server to enable claim construction. Several tests were conducted and adjustments were made based on the results of the tests to enable successful claims and security tokens. This work should have: 

          • initial modification to the source code to create claims and the results of using it, 
          • changes made based on the results of previous tests and their outcome, and 
          • the final code

          Slide 56: 

          We have completed the illustration of SR&ED associated with software development. 

          Let us summarize the various points covered in this webinar. 

          Software development has become intrinsic to new or improved products/services in many sectors. 

          There is a prolific and unprecedented development of complex applications using software. 

          This is driving the need for technological advancement. Technological advancement may be either in software technology or other fields. Within software technology, advancements happen at various levels. 

          Slide 57: 

          Technology is knowledge and not a physical thing. 

          The five-question methodology applies to software development as in any other field 

          Identifying the technological knowledge base properly is important. 

          Limitation of technology needs to be articulated by correlating it with the technological knowledge base. 

          Slide 58: 

          Not all systematic work is a systematic investigation or search, as required in SR&ED. 

          By showing why a possible solution will not succeed or will not meet the desired objectives, advancement is still possible. 

          Record of hypotheses tested and results generated is important for demonstrating that a systematic investigation or search took place. 

          Slide 59: 

          This brings us to the conclusion of this webinar. Through examples, we have illustrated some of the key concepts associated with Step 1 of the Eligibility of Work for SR&ED Investment Tax Credits Policy for claims containing software development. 

          error: This content is Copyright The InGenuity Group Solutions Inc. Please contact the site administrator if you wish to use this content.
          %d bloggers like this: