Last active
August 29, 2015 14:08
-
-
Save paulghaddad/4826b0b799f0a69c2e97 to your computer and use it in GitHub Desktop.
Level Up 3: Knows why we "Don't trust the developer"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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