Design patterns
This is very powerful concept in software architecture.
Lets first see its origin. It came from field of architecture. A person observed traditional living environments and created a list of architectural patterns. For example how should a living room be designed - 5 patterns. How should the kitchen be designed 7 patterns, etc.
A design pattern can be understood as a effective and well known solution to well known problem.
Rather than rediscovering the solution every time, regularly checking the list of design patterns to see if your problems fits in any of the design patterns seems to be a good strategy.