Thursday, July 26, 2018

Rally racers and developers

Rally racers and developers



Rally racing is an amazing sport. 10 years ago Ive got Rallisport Challenge, the PC game published by Microsoft. It was a brilliant game in its category.


What I liked really much is how hard it was to navigate the car. You had to think really in advance of each turn. Calculating the material of the ground, your tires, speed and angles. They had ice tracks and mountain tracks well - which was extremely hard to navigate through. Rally games in general contains more complexity than simple car simulators, such as Need For Speed. But if you think of real life then you really can imagine how hard it is to drive a car like that keeping up a high speed all the time.

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. Thats 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 dont 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 youre at the forest hunting on deers. You spot the pride, aim and shoot - but you miss it. The deer starts running, youre chasing it. You dont take you eyes of the animal, not for a single second. You run as hard as you can. Thats what deep problem solving makes you to do. However there are high level thinkers. They dont 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 dont have to? How to challenge yourself when you dont need it?

I guess there is no better solution than accepting the fact that not each day is a competition. Ive 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 - its 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 Ive 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?

Peter

visit link download