To an extent, this is my attitude towards programming. At the very base, my motivation is genuine interest in the project and tinkering with it.
Even when I build useful apps, straying has done more good than harm. By doing this for no reason at than fun curiosity, I've broken builds... But more importantly learned how to fix and document those scenarios.