I was recently asked to make a really irritating change to a report. This seemingly minor change makes the code significantly more complex, hurts performance, and will force me to add some really ugly code to what should be a very simple page.
Because I find working on this feature so distasteful, I have been procrastinating even looking at it for a couple of days. When I woke up this morning, I had an inspired idea for fixing this problem in the long term. I’m still going to have to write some ugly code now, but I’ve got a solution in mind that will enable me to get rid of that ugly code and a whole bunch of other really nasty code along with it.
What I realized is that one of my most reliable inspirations for good ideas is being backed into an inelegant solution to a problem. When I have a requirement to satisfy and the only way I can think of to fix it is hackish, I sometimes can’t even make myself start working the problem until a workable long term solution occurs to me. I don’t know if it’s an ideal creative process, but it works well for me.