Code Complexity
Code complexity has categories
Technical:
The domain of knowledge or in this case business or scientific rules and baselines that are needed to satisfy the conditions of the problem.
- Example 1: Tax laws being codified into software
- Example 2: Gravity calculation and or light calculations when performing astronomical simulation and modeling.
Intrinsic
- Example 1: Timeouts
- Example 2: Hardware failures
Extraneous
- Example 1: Cognitive load, how hard is is to find things and or trace the flow and process of the system as a whole. How are things ordered
- Example 2: Toil: What is the relative working conditions of the codebase and tools used to interact with it. Each environment is a stand alone virtual machine that takes half an hour to start for local development or is it a single executable that is run immediately after successful build?
- Example 3: Deployment placing this in separate section as it is so often fraught with introduced complexity
Deployment
- How automated and smooth is it to deploy your code to production?
- What approvals are necessary to deploy code environmental or political?
- Are developers empowered to deploy at will and when necessary?
- How many steps are necessary to rollback failed or problematic deployments?
- What is the confidence level of code that is deployed?