Headphones versus Silence

For those of us on the “under” side of the planet, it’s that time of year again – coming into winter. Like shorter daylight hours and cooler temperatures, there’s one other certainty you face: Winter colds. The only real downside to using public transport for the daily commute is that sick people use public transport too. Sooner or later, you’re stuck on a train with a cougher.

I’m not going to be critical of people who choose to go to work whilst “under the weather”. I don’t know, maybe it’s a cultural thing that some people just don’t think sickness should slow them down, or things are just too busy to risk getting behind with work. But once one person coughs on public transport it seems like a slow and steady wave through the carriage bringing sickness and sullen faces to all who travel this way. (Of course there are other ways of catching colds, it’s just my long winded “poetic” introduction of how I came to have a cold myself)

Having done my part in spreading gloom and misery by coughing over any remaining healthy souls utilising QR’s chariots of steel on Wednesday, I took the option of working from home on Thursday and Friday. I am part of a development team that is based in Melbourne. I work externally from the rest of the team, in Brisbane. As such I am always “remote” whether working in the office, or at home. For the rest of the team, I am just as contactable whether I am at home, or in the office – only the phone number changes. I prefer the office environment – the conversation tends to be more interactive than that with a rolypoly cat. But that “interactive conversation” is a double edged sword. Working in an office provides far more possibility for distraction.

Distraction is the enemy of concentration, and concentration is a key requirement for good coding.

Over the years there have been many times statements such as this have been made. From there, discussions tend to head in the direction of making working environments for developers as “distraction free” as possible. No one denies that minimising distractions increases productivity. If you are Joel Spolsky, you go the extreme route of “Private offices with doors that close“. To put it bluntly, most IT professionals I know, would consider this a waste of money. A cheaper option, is to allow for the listening of music through headphones. It’s the approach the company I work for uses. If you are looking for headphones to use at work, “Sound isolation” becomes an important factor. Many audiophiles would possibly point you toward “open headphones” as ones with the best sound reproduction. I won’t argue with that, but for the sake of your fellow inhabitants, don’t choose open headphones. You are there to work, not enjoy the highest quality listening experience. And whilst your taste in music is undoubtedly the best in the world, no-one else shares it… With this in mind, I chose Sennheiser HD215 headphones – and I am happy with my choice!

For what it is worth though… I can never quite get over how much more productive I am when I work from home – in silence – without my beloved Sennheisers. Long term, the solitude would drive me mad – some social interaction with co-workers alleviates the relentless pressure of continual work. Maybe it’s the fear I have that people will be doing the funny quote thing with their fingers as they say “Andrew is working from home today” that spurs me on to make sure I have something to show for my efforts. However, I can only conclude that even wearing headphones and listening to music is still a distraction.

Programmers on a team need contact to ensure that they are moving in the right direction. Keeping a programming team moving in the right direction is like herding cats, so long term isolation is not an effective way of gaining productivity. Which brings us back to Joel’s bionic office… If the expense of a distraction free work environment is measured against the increased productivity that such an environment brings, then maybe it isn’t as expensive as some may think.

The Problem with the Internet (Part 3)

This post is aimed specifically at something everyone hates: Registration Screens. 

Registration screens are a dirty and unnecessary blight on the Internet.  When was the last time you got to a form full on fields with red asterisks insisting on completing data and thought “Oh good, someone else gets all my contact details”.  You could argue that this is a necessary tool to allow for a first point of contact with a potential customer.  I would argue that, like an over-bearing shop assistant you are “moving too fast” on a potential customer and that this will likely scare them off. 

Think about how you feel next time you are asked for contact details prior to downloading trial software.  Do you even know enough about the producer of the software to trust their “We respect your privacy” statement?  Even if you can trust in their intent  to respect your privacy, do you trust in their ability  to provide a secure enough environment for your personal information?  It’s better that they (the web-site owners) trusts in the value that their software provides.  To provide a “catch free” sample of their wares instills me with the confidence that their software is worth my attention.  Trust me: I will buy it, if it does what I want for a fair price

There seems to be a lot of attention on the Daily WTF spent on data-validation forms that won’t accept valid data.  Generally, someone has attempted to make them more unaccepting of invalid input and somehow has overstepped the mark.  This, whilst annoying, is merely short-sightedness on the person who designed or implemented the data validation routines.  Stop right there! Take a step back and look at the problem again: The fact that there is an extensive effort spent on data validation is short-sightedness in the first place.  So, okay, you don’t want to waste space in a database for people who’s names are “aaa” with and e-mail address of “a@b.com”.  But why are people providing you with this sort of input in the first place?  Here’s a suggestion: Maybe, you are yet to earn people’s personal information.  Let me put that another way: If you want someone’s contact details, it is going to cost you something.   So, here is a tip to save yourself the problem of needing to weed out invalid/meaningless data:

Don’t ask for the data in the first place! 

As I said, you don’t want to waste space in the database with invalid input.  But data validation becomes easier if people want to provide you with valid information.  Giving customers a good product or service and you will be buying enough good-will for them to give you their contact information.  I’m not idealistic enough to assume that everyone who likes your product will pay for it.  Life is just not fair in that regard.  But, the people who want your software but don’t want to pay for it, won’t pay for it no matter what you do.  Complex up-front registration screens only serve to limit your product reach.  Don’t do it!

Woe is me!

I admit that just recently, my enthusiasm to blog has waned some-what. It takes a certain amount of discipline to take the time to blog. I suspect that most readers of this blog only really get something out of half of the blog. My chosen subject matter, motorcycling and computing are for the most part, quite disparate subjects. I write about them, because these two subjects I feel I’m reasonably well enough versed in to have a semi-informed opinion. (I’m also smart enough to be painfully aware of how much I don’t know about either subject!) But, I digress…

One of my self-imposed disciplines with blogging, is to take turns with the subject matter. That makes me due for a motorcycling post. Here in-lies the problem. My motorcycle is “off the road.” Hence, I find it difficult to find something worth writing about.

Honda motorcycles have a good reputation for being first rate machinery. This doesn’t stop them being renowned for two mechanical problems.

  1. The Regulator / Rectifier breaks.
  2. The Cam chain tensioners break.

The regulator/rectifier’s job (to quote from Justin Couch’s excellent article) :

“…is to provide a constant DC voltage and current to the bike’s electrical system. From this all the electricals run.”

Honda’s regulator/rectifiers regularly over-heat*. It’s not a new problem with Hondas and like Justin, I am left wondering why they have never done anything about it…

My bike however, is suffering from cam-chain tensioner problems. In a four stroke internal combustion engine, the cam chain (or belt) turns the cams which open and close the inlet and exhaust valves of each cylinder. The piston moves up and down inside the cylinder too, so it is essential that the timing of the valve remains synchronised with the piston movement. Where this doesn’t happen expensive fast moving parts of the engine can bash into other expensive fast moving parts of the engine and that’s when things get both extremely ugly and extremely expensive to fix. When the engine is under load (i.e. accelerating) then there is sufficient tension in the cam chain for the valves and pistons to remain synchronised. But, when decellerating, there is a natural tendancy for this tension to be lost. No prizes for guessing what the cam-chain tensioner does…

So, having had a Honda Blackbird break a cam-chain tensioner, I have become very wary of strange ticking noises the engine may develop. This time, the “failure” has not been so absolute as it was with the Blackbird. The bike is still running – I just don’t want to push my luck! Fortunately, replacing the dodgy part will be covered under warranty, but it doesn’t make the self-enforced side-lining of the bike any easier to take!

But, on the plus side, at least I can now go back to writing a computer software blog article!

(* Be thankful they’re “Honda”, not “Ronda”! There was way too much alliteration as it was!)