Monday, May 23, 2011

Testing and the Art of Auto Repair

I do a good bit of basic work on my car, from oil changes all the way to intake manifold cleaning and suspension work.  It's an 8 year old Volkswagen diesel, and an online community helps keep me informed and encouraged about how to work on it.
I'm often struck by the similarities with software testing.  And yes, a lot of software diagnosis is involved with modern cars also.

In my most recent example,  I had recently cleaned out my intake manifold, a several hour job on a Saturday morning (a major software release with significant changes to the source code).  Performance was greatly improved, but there was still a nagging sensation that it wasn't performing as it should (customers seem happy with the new functionality, but occasional non-reproducible bug reports and logs filter in).

After parking the car for a couple of days, I went to start it on Monday morning to go to work, and it wouldn't stay running.  It would idle for 10-15 seconds before quitting, and refused to rev over 1000 rpm (a crippling system failure just as the customers need to use the system).

I had seen very similar symptoms a few months before, and a new fuel filter fixed the problem.  So my wife and I pushed the car out of the way, and I took another car to work (reverted to the earlier release to provide needed functionality during the day).    After I got home, I installed the new fuel filter with high hopes of success, but in spite of priming and many starting attempts the car still would not remain running (previous fix doesn't work for the current problem).

I called the mechanic to give him a heads up, and called the tow truck to take it to the expert (call subject matter experts and architects).  But when the tow truck arrived two hours later to pick up the car, after some initial hesitation it started up an ran fine (this never happens with software - just kidding!).  I'm left to assume that some air in the fuel line managed to finally purge itself after being able to sit for a while (external influences on the software/server or varying system loads affecting an installation routine finally settled down).

A test drive shows that the car is back to its old self with even more power than before, now that it has plenty of both air and fuel.  But without ever conclusively proving the source of the problem, I'll still be crossing my fingers when I start it in the morning.
And that, too, is often just like software.

No comments:

Post a Comment