Do you document your failures for R&D?

Updated by Tiago Araújo [SSW] 23 days ago. See history

123

Australian R&D laws require you to show the separate attempts you make when developing a feature that counts towards R&D.

For this reason, you should make sure to commit in between every attempt you make even if it does not have the desired affect to record the history of experimentation.

Example scenario

A developer is improving load times while migrating an MVC app to Angular. They create a new feature branch and begin development on their local machine.

Once they are done the developer commits all the changes they made and push it the remote repository. Using this method, the developer loses the history of experimentation and it will be difficult to prove for R&D.

Image

❌ Figure: Bad example - Only the final solution is committed. Experimentation history not recorded

For the same scenario the developer makes sure to commit every separate attempt to reduce load times for their web application. This way, everybody knows what kinds of experimentation was done to solve this problem.

Image

✅ Figure: Good example - Each attempt has a new commit and is not lost when retrieving history

Save failed experiments using abandoned pull requests

Assume you are creating a cool new feature. First you will create a new branch, create some commits, check it works, and submit a pull request. However, if you are not happy with the feature then don’t just delete the branch as normal. Instead, create a pull request anyway and set the status to Abandoned. Now, you can continue to delete your branch as normal.

This makes sure that we have a historical log of work completed, and still keeps a clean repository.

Image

✅ Figure: Good example - Setup pull request for feature branch so that we have a history of the commits

Image

✅ Figure: Good example - PR is abandoned with a deleted branch

acknowledgements
related rules