Ignorance plays a big role. If you don't perceive, e.g. a race condition happening, then it's much simpler to avoid complicated things like locking and synchronisation.
If you have the belief that your code will never be modified after you commit it, then it's much simpler to not write modifiable code.
If you believe there's no chance of failure, then it's simpler to not catch or think about exceptions.
The simplest thing is global variables, single-letter variable names, string-handling without consideration for escaping, etc.