I’ve been a professional software engineer for close to ten years. Based on my experience, I recently attempted to enumerate the ten worst engineering “traps” most developers seem (for whatever reason) prone to fall into. Here’s the list I came up with. It should be noted that wherever two of these come into conflict, the item close to the top of the list wins.The Ten Worst Engineering Pitfalls
1. The solution is more problematic than the problem it was created to solve.
2. Basing the design on your own motives rather than on users’ needs.
3. Neglecting to handle all possible failure cases gracefully.
4. Failing to protect users’ privacy.
5. Expecting that users will (or should have to) read anything.
6. Expecting that users will (or should have to) possess technical knowledge or jargon.
7. Expecting that users will (or should have to) configure something before using it.
8. Challenging or attempting to guess the user’s intent.
9. Not knowing when to re-architect (either doing it pointlessly, or avoiding it when needed).
10. Failing to make the implementation as maintainable and understandable as possible.