Recently I came across an interesting philosophy and would like to share it:
A lot of times we (as developers) work on delivering features, however behind every feature is underlying problem to be solved. Why not take time and think it out?
Anyways enjoy the video, I hope it will prove to be useful.
Book reference: How to solve it