Thursday 28 February 2013

Rally racers and developers


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.


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. 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?

Peter

3 comments:

  1. I think getting to understand the The Parable of the Talents - written down in the Gospel of Matthew, chapter 25, lines 14-30 - could help one in getting some firm grounds regarding some of the above questions.

    This is what Jesus teaches about using talents (yes, I believe that "talents" in this parable represent also the talent that you discuss in your post).

    In your native language:
    http://netbiblia.hu/karoli/mt/25.html#14

    ReplyDelete
    Replies
    1. Let me just quickly --amend

      :s/In your native language/In our native language

      ...actually :)

      (I just thougt it looked awkward the way I put it there)

      (And yeah, now I even know that there are 'verses' in the Bible instead of 'lines') ... anyways, :)

      Delete
  2. Hi Levente,
    Personally I'm not sure if it's talent that claims the 'highway'. But it's an interesting concept what you're saying.

    ReplyDelete

Note: only a member of this blog may post a comment.