We have a Patterns Panacea effect when we forget the first rule of XP methodology: simplicity and we want to use a pattern in any case.
We need to relax our mind and choose the easiest way, it will be the better way.
If in the future we need to change it in order to remove some duplicates or some overload we will refactor it.
The Under-Engineering is far more common than Over-Engineering.
When we produce poorly designed software we under-engineer.
The big problem of under-engineering is maintaining the software we have producted.
Under-engineering may occur for several reasons:
- We don't have time or have not enough time to refactor
- We aren't knowledgeable about good software design
- We're expected to quickly add new features to existing system
- We're made to work on too many projects at once.