See more
Understanding declarative patterns
How to approach a problem in a systematic way to maximize your chances of success?