To me its part of the taxonomy of becoming a more experienced developer:<p>- First you can implement solutions (jr level)
- Then you can design solutions (mid level, sometimes senior - most of time is spent here)
- Then you can find problems that need solutions (senior, management)