Skip to content

Instantly share code, notes, and snippets.

@msallin
Last active October 3, 2021 08:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save msallin/7eea28eb5ac313b65522156698d5812d to your computer and use it in GitHub Desktop.
Save msallin/7eea28eb5ac313b65522156698d5812d to your computer and use it in GitHub Desktop.
fallacies-of-software-engineering

Fallacies of Software Engineering

This document is a collection of fallacies I encountered during my years as software professional.
Most of them are known from the literature in some way or the other.
The problem with them is that they might be correct according to intuition. However, lead to a lot of unnecessary spent money.
Interestingly, I see the mistakes repeated over and over again. Because of missing knowledge, due to well known cognitive fallacies or also because of opportunistic behavior and politics.

Software Development

  1. Shortcuts Exist They don't

  2. One-Fits-All For architecture and/or practices (like QA, integration, )

  3. Do it later Divergence of responsibility

Requirements Engineering

  1. Focus System- instead of Business Requirements

  2. Upfront illusion

Software Engineering Management

  1. Always positive netto produtivity
    Adding Developers always helps to improve and never lowers productivity.
    Problems: 1. producitivty is lowered 2. good ppl get frustrated 3. team changes to the bad

  2. No Opportunity Costs
    Adding a bad dev to a team and forget that you miss the opportunity to add a good one.

  3. Quality does not matter
    Also includes "quenstiong engineering practices" because they are easy to identify (like test writing and code reviews)

  4. Wrong Metrics
    The act on wrong metrics which generate missleading incentives.

  5. You cannot manage what you cannot measure
    Take this for granted and therefore act according to the "Wrong Metrics" fallacy.

  6. Hire for Projects

  7. Customer Focus
    A good thing. However, see definition of waste and non-necessary-value add activities and necessary-value add activities.
    Often in combination with "Too Expensitve Improvment"

  8. Too Expensitve Improvment Fallacy because one just extrapolates the gained time without considering that it's an expontential growth of time gain and that it could be an enabled for other improvments.

  9. CVs do not matter

  10. Experience matters

Methodology

  1. Semantic Missmatch
    Everyone is free to define terms as he wants. However, taking a term which represents a concept, redefining and applying it will not lead to the same outcomes. This often happens with hype terms like "agile" and "DevOps". Ther original meaning is dismissed or the meaning is redefined for a company. The fallacy is to expect that the new concept will lead to the same outcome as the original concept, just because one uses the same terms.

  2. Cargo Cult
    This is similar to "Semantic Missmatch". The fallacy here is that cherry picking e.g. easy to implement practices or a part of a mindset will lead to the intended outpt

  3. Appeal to Methodology
    A famous exapmle is "This is not Scrum, we are not doing Scrum, this is a bad thing.".

Project Management

  1. Progress is money spent

  2. Focus on project

Misc

  1. Speed stability trade-off

  2. Avoid Pain When it hurts, do it more often.

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment