This project anti-pattern is mainly due to bad development process where the code is developed without testing and documentation, then proceed to deliver the code as it is.
Symptoms and Consequences
Spend a lot of time to understand the codes.
Create unintended use cases.
Create unintended vulnerability.
Causes
Overconfidence
Resources constraint (time limit)
Demand (intended)
Refactor Recipes
Revise the origin intention (was it intended and why)
Factor in time and have the project documented and tested.