I recently read "The Making of Myths" which alludes to the worrying prevalence of unchallenged myths, stereotypes and social schemas that exist in and around the software industry.
I tried coming up with a few "myths" myself, although I prefer the term "potentially harmful preconceptions". These aren't assuredly harmful but they're all taken-for-granted to an extent that I think we should critically explore them.
With each, consider it as truth, then consider the polar opposite as true. This is a great exercise for uncovering questionable preconceptions.
- Good code is objectively good: The belief that our perceptions of what constitutes good or desirable forms of code are objectively founded.
- Code is entirely utilitarian: The belief that code's only value is its ability to solve a problem — i.e. how useful it is. It has no aesthetic value, for example.
- Productivity is uniform: The belief that assertions made about productivity are generalizable across individuals, projects and situations — that it is an easily reproducible trait.
- There exists an unbiased form of interviewing: The belief that there are ways of interviewing that avoid subjective biases.
- Productivity in a team is calculable: The belief that individual productivity can be observed and measured accurately, as if it exists in a vacuum.
- Expressing discontent is immature: The belief that expressing discontent is undesirable and immature; best channeled towards solving the problem oneself instead of discussing it with others.
- Inefficiency is bad: The belief that maximal continuous efficiency is inherently good, and that anything less is undesirable.
- Your ego should be separate from your work: The belief that one should not have pride in one's work; that one's work should be open to critique without affecting one's estimation of oneself.
- Mistakes are made by individuals: The belief that a mistake or failure has a sole perpetrator; the structures and preconditions that led to the failure needn't be examined because of this.
- Meritocracy is somehow egalitarian: The belief that everyone is capable of achieving the same merit, regardless of cultural or personal circumstances; the belief that hiring based on merit (i.e. skill) alone is the most egalitarian choice.
- Popularity equates with virtue: The belief that a person's popularity is a virtue and indicative of intrinsic value.
- Democratically decided practices are best: The belief that deciding something by equal vote, regardless of participants' skills and knowledge, is the best thing to do, in all situations.
- Success is mostly self-defined: The belief that a successful person is so off their own back, their own skills and intentional efforts; the belief that, overall, various external advantages are comparatively minimal in impact.
- Negativity is undesirable: The belief that negativity, pessimism and contrarianism are never a factor in growth and improvement — and that they should be eradicated.
I don't doubt that a couple of these may in-fact hold some water. I'm trying to question the things I think we take for granted. And this is important because such preconceptions may be insidious and can become the norm without us noticing.
Thanks for reading! Please share your thoughts with me on Twitter. Have a great day!
Well, the part with “Inefficiency is bad” got me thinking…I understand from this that being continuous efficient can lead to exhaustion and bad productivity, but we must admit that, inefficiency is bad, right?
@Lucas, economically, sure, it’s not good, but I sometimes wonder if we believe it has virtue outside of that. Apart from the reasons that you stated — that it can lead to exhaustion — I also think it can cause us to forgo some other important things, like: taking stock of what we’ve done, stopping to gain perspective, taking time to consider various options (etc.). We always seem to be rushing, and I don’t think that’s a good thing, for us individually or for humanity.
@James, what you said about always rushing is right, we do seem to be rushing and yes, this is not a good thing. Related to software industry, we usually rush at the end of the project, and it’s a sign that, although the product is not quite ready, we somehow force its release, and unfortunately, this happens quite often.