In computer programming, effort goes into creating reusable building blocks of code that can be implemented in multiple transferable processes. Much like the exponential growth of knowledge, the components can be included as foundations in larger and larger frameworks.