31.5 Exerises
Factual
- For each of the following, state whether they prevent, exacerbate, or have no effect on information leakage.
- using unnecessary print statements to show the state of the program while it’s running
- employing temporal decomposition when architecting your code
- creating deep modules
- using helper methods and classes
- In Woolley’s study, which factors correlated with the quality of a team’s output?
Problem 1
The key to remember is that information leakage is not related to the state of the program. Instead, it’s when multiple pieces of code reflect a single design decision/module, introducing unnecessary complexity and dependencies.
- Using unnecessary print statements to show the state of the program while it’s running: no effect on information leakage.
- Employing temporal decomposition when architecting your code: exacerbates information leakage.
- Creating deep modules: prevents information leakage.
- Using helper methods and classes: prevents information leakage.
Problem 2
The two most important factors were turn-taking during conversations and the average ability of the group members to recognize emotional state from a person’s eyes.
Metacognitive
- Give some examples of unnecessary obscurity that contributes to complexity.
- Give some examples of unnnecessary dependencies that contribute to complexity.
Problem 1
There are many kinds of obscurity that can contribute to complexity. These include putting too much code into one function or module, having a large amount of variables that need to be maniuplated, and not breaking up your code or having helper functions.
Problem 2
One example is copy-pasting code across different modules. This means that to change this block of code, you have to change every location that this code appears in.