Skip to content

Instantly share code, notes, and snippets.

@paulghaddad
Last active August 29, 2015 14:08
Show Gist options
  • Save paulghaddad/4826b0b799f0a69c2e97 to your computer and use it in GitHub Desktop.
Save paulghaddad/4826b0b799f0a69c2e97 to your computer and use it in GitHub Desktop.
Level Up 3: Knows why we "Don't trust the developer"
1. Developers are a tricksey bunch. Name some reasons why you shouldn't just trust the person who wrote the code.
- All developers are human and make errors.
- Their interpretation of the requirements is only one possibility; there are many others that could even be better.
- Developers are inherently optimistic, and believe their solution is correct, when in fact they may have
overlooked ambiguities in requirements, or simply not recognized these ambiguities.
- Humans have cognitive biases that cause poor decisions. These include:
-- Confirmation bias: the tendency to search for information that confirms our beliefs instead of information
that points out we are wrong.
-- Framing bias: people can come to different conclusions on the same information depending on how the information
is presented.
-- Loss aversion (sunk cost effect): people continue work in a certain way, even if it's not the best route, because
they have invested time in it.
2. Name some mental pitfalls that you should watch out for when testing code.
- Assuming the product is working and doesn't have bugs.
- Making assumptions, but not testing the validity of those assumptions.
- Not being detail-oriented.
- Not testing edge case, rare cases or cases that involve malicious users.
- Not writing a test plan before testing
3. So then, why shouldn't we be satisfied with testing our own code?
- We often overlook things in our work because we have certain perspectives, opinions and biases. These deficiencies
can result in mistakes, especially when working under pressure. An independent outsider often sees problems and
mistakes unseen by the original developer. Moreover, an outsider brings a different mental framework, vantage point
and set of skills that can help correct the problem.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment