"They also serve who only stand and wait," said the poet. "Not so," said the hotel-keepers, who were actually accountants who had bought successful hospitality businesses. And they did away with staff until the few who remained were in a state of constant movement, and the customers were doing all the standing and waiting. And the accountants looked and saw that it was good.
Now, people who are standing and waiting could be doing something productive, such as building loyalty, selling additional services or anticipating trouble. But those activities went out of the window when the staff went out of the door. So the accountants looked again, and they saw that it was not so good. And they said, "We need better marketing!" Because obviously the problem couldn't be the accountants' fault. They paid no attention to the other poet, who had talked about knowing "the price of everything and the value of nothing".
So wherever you go in the world you will find hotels that are heavily advertised, usually emphasising their low prices. These are the ones I avoid.
And I'm not alone. After all, the principal reason why I don't like standing and waiting is that I'm not very good at it. I'll gladly pay someone to do it for me. You'd think there would be someone to notice.
The Point
Musings and amusings of an IT entrepreneur
Wednesday, 27 August 2014
Wednesday, 9 July 2014
Germany annihilated!
Virtually...
Cast your mind back to the turn of the millennium: not Domes or Rivers Of Fire, but Dotcoms. This was when networks were beginning
to be intelligent, but phones were not yet smart, in fact they were super-dumb:
if you had a mobile, you could send a text message to someone on the same
network. That was all. But you probably didn’t have a mobile,
because they were expensive to buy and even more expensive to run, and
batteries were big and heavy and surprisingly short-lived, like pandas.
The Doorbell Tester was working for a cowboy outfit whose primary business was building high-speed phone networks in Europe and across the Atlantic. Between testing fixes for the Millennium Bug, he
was asked to help out with an application that would let landline
customers dial a single national number to connect them to a local branch. (The example the analysts always used was “1-800-PIZZAS”,
which tells you (a) that the cowboys were American and (b) what market they
thought they were in. In fact, as they
found out a year or so later, they were in the pouring-dollars-down-holes-in-the-ground market; and when they went bust, they blamed the banks, for lending
them the money to do it. This is absolutely true.)
The “intelligent” part of the application was the way in
which it determined the customer’s location, its first act being to look at his
area code. Of course, everyone knows about
American area codes: 212 is New York City, 615 is Tennessee, 555 is nowhere but
is always used by film and TV when a phone number has to be shown. Every country, the developers assumed, has a
similar list, finite and comparatively stable, and usually shown at the front of the local phone book. It
became the DT’s task, because nobody else had done it, to find those lists and load them into the application
database.
It was easier said than done. There was an Internet, but no Wikipedia;
information that might conceivably have any financial value was often available
only on a need-to-know basis. National telephone
operators certainly didn’t publish area code lists electronically. For the UK code list, the DT considered the
options of OCR-reading or typing every entry from the hard-copy directory, but
eventually borrowed the CD version (expensive, issued quarterly) of said directory
from the Switchboard. For France, he
found a bureaucrat’s dream of a website that explained the Departement
structure in more detail than anyone could want, and included the list he required. And for
Germany he found a University site that had two web pages with all the area
codes: one in alphabetic and the other in numerical order, which saved him the
task of sorting them. Gold-dust.
All went well until User Acceptance Testing, when one of the
DT’s colleagues went on a week's joyride round the scruffy ends of several European
cities to demonstrate the wonders of being able to order a pizza without having
to remember a six- or seven-digit number. (You would have difficulty not remembering the national ten- or eleven-digit number, the theory went, because it would be heavily advertised. And it would have to be heavily advertised
because the concept of substituting numbers for letters, so common in North America,
had never taken off elsewhere. The ideal
customer would be one who, on being kidnapped, transported to a different city,
overcoming his captors and hiding in an unoccupied garage, decides to order a
pizza before yelling for help. This
happens all the time in America.)
She called him from Hamburg.
“Why can’t we find Dortmund?”
Drat. It had been the
DT’s fear all along that information of uncertain provenance on the web might be
unreliable. He
checked the database for the Dortmund code she gave him, and found that, no, it
wasn’t there. Oh well, he thought, this
is what UAT is for. He added Dortmund
and its code to the database by hand.
Were any other codes missing, or (holding his breath) wrong? No, she said, not yet, and they’d done quite
a few. Well, he said, keep looking, and
let’s hope there are no more.
Five minutes later, the phone rang again. “Dusseldorf.”
Double drat: a pattern.
The DT’s heart sank as he opened the alphabetic list of codes from the
German university, and bottomed out as he saw that it went from Cuxhaven to Ebeleben
without passing Do(rtmund) and without collecting (nearly) two hundred other Ds. There
was nothing for it but get his colleague to smile sweetly, explain that the test database had
been inadvertently loaded with the wrong file, and edge around to inquiring
where her German hosts would find the most complete information if they had
to.
She came back to the office laden with biscuits, chocolate,
promotional fluffy pen-tops and a CD containing what the Germans
assured her was the up-to-date list of area codes. The DT compared their list with the
University’s and confirmed that it was almost 100% accurate, except for the
complete absence of anywhere beginning with D.
To this day he puzzles occasionally on why a university, or anyone,
would keep a list of anything that
omitted just one initial letter. What
use would it be?
I tell him it’s a homage to James Thurber.
Friday, 23 May 2014
Is Anyone Home?
Let me tell you about my friend the Doorbell Tester. That’s not his job, it’s just what we call
him. Here’s why.
He used to work in a test lab, for a big company that made
electronica (they don’t exist any longer, by the way. Part of this story might have some bearing on
why). One of his jobs was to run
standard test plans on a set of self-diagnosing circuit boards: if some component on the board failed, the board should send a signal to say that something was
wrong. About thirty types of board were
used in a range of network devices, and the tests had to be run every time a
change was made to the high-level software that ran the network – which
happened more often than you might expect, with high-profile projects and press
launches. Ultimately, the whole network
depended on these boards. The boards
themselves never changed, and neither did the low-level software that ran them.
After a couple of cycles of testing, my friend came to think
that the plans were over-engineered. It
was all very well to test that, if component A was disabled, the board would say so; and that if components A and B were disabled at the same time, the board would notice both, and
send alarms about both, and not go into any of the several failure scenarios the
test author could imagine - such as do nothing, stop after first signal, send
same signal repeatedly, or the catch-all Other Unexpected Results. The problem was that the
author had tried to cover all possible conditions. One typical test was intended to verify that
if component A was disabled, the
board would not also send an alarm about component B: which may be a valid test, or not, depending on how the low-level
software is written that runs the board.
If it’s not a valid test, running it is an overhead, which might be
acceptable for a board having only two components A and B. But there were about thirty boards, each with
between twenty and a hundred components, and the test author expected every
combination of failures to be tested: A
and B, A and C, A and B and C, A and X, A and B and…
The concept of a “job for life” was not yet dead. This was a job for Methuselah and his children, and their children's children.
So my friend tried to find out exactly how the low-level board
software worked: but being the company it was, nobody could (or would) tell
him. However, he did learn
the very interesting fact that the five or six boards he was testing had been
around for a long time. Indeed, as far as anyone knew, they
were obsolete. The only examples still
in use anywhere were the ones in his test lab.
Yes, yes, you say, but what about doorbells? While he was still getting to grips with
understanding the test plans, my friend and I went to a party; and when someone
asked him what he did, he made the mistake of trying to explain his job and his
current problem. He soon realised that
even the abbreviated outline I’ve just given was too complex for a noisy
alcoholic environment, and resorted to analogy.
“It’s like testing a doorbell: does it ring if the batteries are
OK? Does it not ring if they are not OK? Does it ring if there’s nobody in? Does it ring if there’s nobody in and a
window’s open? And so on.” Although I’m not sure that whoever had asked
was still there to hear “and so on”.
A glass or two later, in a different room, someone asked me
the same question. In that situation I
never tell the truth: a woolly “import and export” is usually enough to discourage
further enquiry. On this occasion my companion
of the moment didn’t bother with the usual glazed nod, but delivered a knockout
punchline: “Well, there’s a bloke over there who tests doorbells for a living!”
So we don’t let him forget it. He works for me now: about once a year, some
wag (such as me) leaves a sticky note on his screen: “While you were out –
nobody called.” And screwed to his desk
is a doorbell, in which there are no batteries.
It will ring, one day. Depend on
it.
First post
It's not easy to find out, when starting a blog, whether a post can be deleted to save later embarrassment. Years ago, for some purpose now forgotten, I had to create a directory (or "folder", young people) on my then-employer's network to hold imported files. In a sweat-inducing feat of imagination, I chose to call the folder IMPORT. I created it, told people where to send their files to, and went home.
Next day I started to get calls and messages of concern: the export script was failing, the files were not being transmitted, the imported files could not be processed. As usual, it took some time to figure out from all the misinformation what was really wrong, which was that the directory IMPORT didn't exist where it should. Then it took more time to find out why. Had it been deleted? Had the system been restored to an earlier state, perhaps by being backed up in the wrong direction? (That had happened before.) Had I created it on the wrong node? No, I'd simply created it with the wrong name: INPORT.
It should be simple to rename a directory, I thought, especially one that I myself had created, and was empty. I couldn't do it. I had the privilege to create, sure, and to populate (and de-populate), but not to delete, nor even to rename. I went quite a way up the Operations Support hierarchy looking for someone who could give me that privilege, even temporarily, or just do the job for me. I met only puzzlement, and was offered heavily bureaucratic solutions - "You could raise a Small Project". Apparently I was the first person ever to request such a thing.
The pragmatic solution, of course, was to confess my mistake and divert the blame. I modified and reissued my file-transfer instructions, with a profuse apology for not noticing in my previous message that the proper name of the destination directory, INPORT, had been "corrected" by a new spell-checker. When anyone queried why the directory was called INPORT, I blamed "technical reasons": IMPORT was a Reserved Word in some dialect of our code, so could not be used. As the system worked perfectly well in every other way, I got away with it.
So, to sum up: anything that looks wrong with this or later posts is actually right, and any perceived fault is not in it or in your stars but in yourself, or failing that, for technical reasons. Unless I agree, in which case, I have discovered, I can delete it.
Don't let people tell you there's no such thing as progress.
Next day I started to get calls and messages of concern: the export script was failing, the files were not being transmitted, the imported files could not be processed. As usual, it took some time to figure out from all the misinformation what was really wrong, which was that the directory IMPORT didn't exist where it should. Then it took more time to find out why. Had it been deleted? Had the system been restored to an earlier state, perhaps by being backed up in the wrong direction? (That had happened before.) Had I created it on the wrong node? No, I'd simply created it with the wrong name: INPORT.
It should be simple to rename a directory, I thought, especially one that I myself had created, and was empty. I couldn't do it. I had the privilege to create, sure, and to populate (and de-populate), but not to delete, nor even to rename. I went quite a way up the Operations Support hierarchy looking for someone who could give me that privilege, even temporarily, or just do the job for me. I met only puzzlement, and was offered heavily bureaucratic solutions - "You could raise a Small Project". Apparently I was the first person ever to request such a thing.
The pragmatic solution, of course, was to confess my mistake and divert the blame. I modified and reissued my file-transfer instructions, with a profuse apology for not noticing in my previous message that the proper name of the destination directory, INPORT, had been "corrected" by a new spell-checker. When anyone queried why the directory was called INPORT, I blamed "technical reasons": IMPORT was a Reserved Word in some dialect of our code, so could not be used. As the system worked perfectly well in every other way, I got away with it.
So, to sum up: anything that looks wrong with this or later posts is actually right, and any perceived fault is not in it or in your stars but in yourself, or failing that, for technical reasons. Unless I agree, in which case, I have discovered, I can delete it.
Don't let people tell you there's no such thing as progress.
Subscribe to:
Posts (Atom)