Protecting your Software IP through Intellectual Control
IP requires IC and SC, if IC goes low, then IP is almost lost. You may ask, Pablo, what are you talking about? I decided kick-off with the conclusion. So lets rollback and start from the beginning.
In copyright legislation around the world, source code is considered the Intellectual Property of the creator. Source code is protected in the same way as a “literary work”, which means it is “copyrightable” from the moment that the first line of code is created. [2]
When we start a project, we are full of ideas that (hopefully) get translated into source code that becomes a working system. In order to understand what our source code is doing and the business domain problem it is resolving, we use reasoning, and we have control using our Intellectual Control (IC).
In order to detect changes that may break the design contracts and to reduce defects on our product (IP), we create all sort of tests, and we create build pipelines to automate them. Testing gives us the Statistical Control (SC), meaning we know 100% of tests are green representing a good sample of the source code behavior.
Please, do not misunderstand my intentions for what I am going to say. Keep writing unit tests, automate as much as possible. As time goes by, team members tend to churn and the Intellectual Control we had at the beginning gets diluted and team start relying more and more on unit tests and the Stats provided at the end of each Continuous integration cycle.
At some point and given the Intellectual Control is not high due to the mentioned reasons, then the team relies on Statistical Control; sometimes creating a whack-a-mole kind of development.
Testing and Statistical Control provide faster cycles and better time to market. So the perfect combination is to have both: Intellectual Control (IC) and Statistical Control (SC). Hence, the following conclusion:
IP requires IC and SC, if IC goes down, then IP is almost lost.
It is a good idea to analyse and think for a moment. At the end of day, people are responsible for the success of the project and a lot of turnover can impact your most valuable asset, the Intellectual Property. [1]
References
[1] The idea came from the excellent presentation by George Fairbanks from Google.
[2] Is Source Code Intellectual Property? by Mark Clement