Well? What’s it to be, punk!

English: Santa Claus with a little girl Espera...

English: Santa Claus with a little girl Esperanto: Patro Kristnasko kaj malgranda knabino Suomi: Joulupukki ja pieni tyttö (Photo credit: Wikipedia)

As is traditional at this time of year, we took our nieces to see Santa Claus. The eldest enjoyed it and the youngest is just about over the trauma now. The elf at the front gate confessed to us that more children hated Santa than liked him. Thank Goodness we didn’t go to a Winter Wonderland attraction that recently had to shut down. The attraction sounded great in the promotional material. Reindeer, sleigh rides with real huskies and Santa’s grotto. What could possibly go wrong?

It’s as if the organisers had a checklist. Working to a tight immovable deadline (i.e. Christmas), they just about managed to tick everything off. But because they were running out of time, they had to cut corners. They only had two Reindeer and they managed to look suspiciously like cows with stuck on antlers. The sleigh rides had some real huskies (well 2 to be precise). For some reason, the Santas weren’t available until late in the day. Even when they did turn up, they were thin not fat and their outfits were the cheap see-through plastic kind you get from pound land. The ice rink had no ice. The magic tunnel of ice was a few fairy lights dangled among the trees.

A funny thing happens when you are running out of time and still try to squeeze everything in. Because there isn’t enough time, corners get cut and quality slowly starts its inexorable slide downhill. In this example, the collateral damage was mainly financial, but there will be many children out there for whom the magic of Christmas has been tainted somewhat. But when the same thing happens with software, it can be catastrophic.

When a software project starts to overrun, you have a number of choices. You can slip the deadline (i.e. just accept that delivery will take longer than originally thought). You can slip the budget by putting more people on the project but there is a point where this just makes things worse (read the mythical man month by Fred Brooks). You can slip function (by accepting that you won’t deliver as much). For those who think they can deliver despite the overrun by questioning every estimate and applying pressure, then you end up in Winter Wonderland with only one reindeer and an anorexic Santa.

The default option if you try not to slip anything is quality. And poor quality in software means bugs, glitches & crashes. It also means unhappy clients and unlike Winter Wonderland, most software is around for a very long time.

So what’s it to be?


The mobile supercomputer

Automobile crossing rope bridge

Automobile crossing rope bridge (Photo credit: The Field Museum Library)

Maybe it’s my fading memory, but I seem to remember that winters were much colder during my school years. It could be that I spent a lot more time standing around in the snow waiting for buses, but the cold used to seep up through my shoes and into my bones. You didn’t need to look out of the window to see whether it was a cold and frosty morning. The starter motors of the reluctant cars made a characteristic whining noise in a gradually slowing rhythm as the last dying remnants of the battery was eaten away.

In the early 1980s, the ignition systems in cars were mechanical in nature. This meant they had the annoying habit of wearing out at the most inconvenient moments. Not only that, but there wasn’t much adjustment available. It didn’t matter whether it was 30 degrees and sunny or -20 degrees with inches of snow on the ground, the components in the ignition system worked (or rather didn’t) in exactly the same way.

The only tool available to the driver was a little knob called a choke which pulled out of the dashboard and controlled the strength of the fuel mixture. On a cold and frosty morning a richer mixture was required. As the engine heated up, the choke could be pushed gradually back in returning the mixture to normal.

Ford assembly line, 1913.

Ford assembly line, 1913. (Photo credit: Wikipedia)

Electronics were not the only reason cars were unreliable. The assembly lines on which they were produced had not advanced significantly since Henry Ford came up with the idea. Although many parts were pressed out of steel using a massive die, almost everything was assembled by hand which meant that fit and finish were inconsistent. Some cars were more reliable than others and there was a suspicion that quality of assembly went significantly downhill towards the end of the working week. If you were unlucky enough to have bought an unreliable car, people would refer to it as a “Friday afternoon car”. The metals used in car construction were nowhere near the quality of those used today. In addition, galvanisation had yet to take off and few car manufacturers used sufficient rust protection. Even if your pride and joy was in fine fettle, the dreaded tinworm could have nibbled its way through crucial parts of your car’s anatomy.

Construction techniques have advanced and cars have undoubtedly made massive leaps forward in terms of comfort, reliability, efficiency and safety but the basic form factor has remained the same for about a hundred years. The biggest leap forward has been in terms of the sophistication of the electronic control systems watching over the engine, brakes and suspension. It is not uncommon for a premium car to have 20 – 30 micro controllers and 100 million lines of code buried under the considerable bonnet (or hood if you’re American).

Just to put those numbers in perspective,  according to the Mythical Man Month (required reading for anyone in software) it is estimated that developers on average produce 10 lines of code per working day. I’m assuming that car manufacturers must find more productive programmers otherwise writing the software for a car would take approximately 50,000 man years. Of course not everything is written from scratch and the same code must get reused between different components and different cars. Still, it’s an incredible amount of software and not only that, the quality seems very high which is a comfort when you stamp your feet on the brake pedal in the rain.

I’m just glad I don’t have to listen to that infernal racket on a cold and frosty morning.