Here are common forms of documentation (that you are hopefully already using) that can be used to support your software SR&ED claims:
Technical records- maintain records on technical challenges faced during development. Include detail on: experiments conducted, prototypes created, iterations, testing and analysis of test results. Include specific metrics as appropriate (i.e. performance was greater than 5 seconds, when the limit was 1 second; memory usage was X with only 10 concurrent users). This could be done weekly or bi-weekly.
Version control for all technical documents - use in architecture documents, design documents, as well as source code to track the evolution of the system. Include notes on technical issues when checking files into the version control system.
Software prototypes - save prototypes (possibly in the version control system) and include notes on the analysis of the prototype.
Test documents - save test cases, results and analysis. Include dates and who performed the testing.
Developer Notebooks - keep all handwritten developer notebooks. Have them include dates on the notes.
Meeting minutes - include date, attendees, duration of meeting, point form descriptions of technical issues discussed.
Whiteboard photos - take pictures of software designs created on whiteboards and save with project documentation.
Emails - track email exchanges with labels when relevant challenges were discussed.
In other industries, you can also includes product prototypes and associated materials, and engineer notebooks.
It is much more time consuming to piece project documentation together after the fact and some teams may even miss their deadlines altogether because they just didn't have the time to go digging for information.
Here are a few ways to help you stay on top of your contemporaneous documentation:
These are not only used to track your tasks but can also capture time and challenges. You've probably already heard about BaseCamp, JIRA, and Asana (And there's always Excel). Here are a few more tools that we've heard great things about:
If your team is having a hard time documenting on a daily or weekly basis, schedule it in. Pick one day a week and make a conscious effort to track your time and project developments. You can also use this time to update project challenges and notes in your project management system or….
We're assuming that you meet with your team at least once a week. If so, add a discussion item around challenges and delegate one person to take notes. (Be sure to date them!) You can even use a simple form like the example below:
Project: | Project X |
Date: | May 8, 2014 |
Time Start: | 10:00 am |
Time End: | 10:25 am |
Attendees: | Bill, Bob, John |
Challenges: Please briefly describe the challenges (technological obstacles) faced during the week and briefly summarize what work was done to resolve the challenges. | Testing reported poor performance with over 100 concurrent users. Message passing between component X and component Y took 500ms; the limit is 100ms. To improve performance, developed new message passing mechanism to eliminate need to serialize/deserialize messages. Performance improved to 300ms. Work is ongoing to improve. |
Organizing documentation is the last thing you want to think of when you start a project. Especially if/when you aren't sure it's SR&ED eligible. However, it can save a lot of time.
Being up-to-date with your R&D documentation allows you to quickly take advantage of the 6 month current filing deadline (if you're a CCPC, you'll have your claim returned within 68 days, on average!) Start documenting early so you don't miss an opportune deadline to put money back in your bank account.