Rally racing is an amazing sport. 10 years ago I've got Rallisport Challenge, the PC game published by Microsoft. It was a brilliant game in its category.
Programmers are a bit similar. They are doing complex problems. Have to make several decisions and preferably the right, the optimal decision. You have your resources, capabilities and limitations - such as a rally car and its driver. But both likes to fight with it. We all tend to break out of the borders and perform as well as possible.
And here comes the thing. Imagine the rally driver in his Subaru Impreza driving though the traffic jam in the morning. Or taking his kids to school. Or driving on a highway obeying all rules. That's not rally race. That is everyday driving. Many can do that. See the analogy? Developers likes to write great code that performs well, safe and tidy. And smart enough so it represents your way of structural thinking. Now imagine you don't have time to any of that. You just have a short interval to write something that hardly but eligibly satisfies the requirements of a project or a client.
I guess lots of developers had that experience already. Imagine Picasso painting walls in a flat. In general developers and code freaks like me has a very specific mindset. Imagine you're at the forest hunting on deers. You spot the pride, aim and shoot - but you miss it. The deer starts running, you're chasing it. You don't take you eyes of the animal, not for a single second. You run as hard as you can. That's what deep problem solving makes you to do. However there are high level thinkers. They don't run, they think of shortcuts, other solutions. And they get things done.
So my question is really - what to do when your coding and other skills are not used enough? Is it possible to be smart and creative when you don't have to? How to challenge yourself when you don't need it?
I guess there is no better solution than accepting the fact that not each day is a competition. I've found many times, however, when I could communicate my concerns towards my colleagues and project leads and they agreed to change the way we do work. Sometimes - for me more than usual - it's just the child that screams in you. Who wants to make classes and patterns and clojures and tons of DI layers. Be reasonable and think where you could make your creative skills useful and effective. (I guess I've topped the BS level of the post, time to stop - I guess you see this problem now.)
Have you ever encountered this problem? Any experience to make it work for both devs and project owners?