Moving from cowboy coding to agile development

Wednesday, April 02, 2008

Concentrating on the Errors

Yesterday I again attended the monthly Agile Dinner here in Helsinki. I almost skipped the event due to other engagements but finally decided to go. I'm happy that I did, and want to thank everyone else who was there.

We again discussed a wide variety of topics, ranging from how tidy our rooms are to the familiar Mac-Linux-Windows battle. I found the discussion about the psychological side of decision making etc. to be particularly interesting.

Choosing to do things the way one has seen them done before successfully can definitely became a subliminal decision. This kind of "muscle memory" can be a great advantage and save one from stopping to think for choices when there is actually only one way to do things correctly (or at least efficiently). Then again, I believe this fights the "thinking outside of the box" attitude in a sense. Of course learning such a way should only happen when that way of doing this has proven to be good. Still, I think never questioning "the one and only way to do things" prevents improvement of methods (or processes, if you will) from ever happening.

Another - yet somewhat related issue - is having a strong opinion on or getting used to the way things should be or look like. Take code formatting, for example. Using opening braces based on the C convention (brace on its own line) in Java code can sometimes disturb me so much that I simply have to fix it before I can start really reading the code and finding out what it does. This applies to whitespace also, even more so. Not to mention importing classes one never uses etc. (I could go on for quite a bit here...) Luckily I can fix these "anomalies" in code using reformatting commands in my IDE in half a second. Still, it raises the question whether one should be such a fundamentalist when it comes to code formatting if it actually prevents one from seeing "beneath the surface" and concentrating on the what the code does.

These are of course not programming related issues only. Like I said yesterday, I know people (and might be one) who can be absolutely unable to concentrate on the semantics of some text if there are many punctuation or grammar errors. So, the errors can be the only thing one sees. I think it's clear that numerous errors will make the text unreadable for almost everyone except the person who wrote it, but the number or severity of (e.g. spelling) errors people can tolerate varies tremendously.

I wonder whether it's after all a good thing to be a purist in these issues.