2013-11-25

Sometimes in job interviews I've been asked to describe a project I
worked on that failed. This is the one I always think of first.

In 1995 I quit my regular job as senior web engineer for Time-Warner
and became a consultant developing interactive content for the
World-Wide Web, which was still a pretty new thing at the time.
Time-Warner taught me many things. One was that many large companies
are not single organizations; they are much more like a bunch of
related medium-sized companies that all share a building and a steam
plant. (Another was that I didn't like being part of a large
company.)

One of my early clients was Prudential, which is a large life
insurance, real estate, and financial services conglomerate based in
Newark, New Jersey—another fine example of a large company that
actually turned out to be a bunch of medium-sized companies sharing a
single building. I did a number of projects for them, one of which
was to produce an online directory of Prudential-affiliated real
estate brokers. I'm sure everyone is familiar with this sort of thing
by now. The idea was that you would visit a form on their web site,
put in your zip code or town name, and it would extract the nearby
brokers from a database and present them to you on a web page, ordered
by distance.

The project really sucked, partly because Prudential was disorganized
and bureaucratic, and partly because I didn't know what I was doing.
I quoted a flat fee for the job, assuming that it would be
straightforward and that I had a good idea of what was required. But
I hadn't counted on bureaucratic pettifoggery and the need for every
layer of the management hierarchy to stir the soup a little. They
tweaked and re-tweaked every little thing. The data set they
delivered was very dirty, much of it garbled or incomplete, and they
kept having to fix their exporting process, which they did
incompletely, several times. They also changed their minds at least
once about which affiliated real estate agencies should be in the
results, and had to re-send a new data set with the new correct subset
of affiliates, and then the new data would be garbled or incomplete. So
I received replacement data six or seven times. This would not have
been a problem, except that each time they presented me with a file in
a somewhat different format, probably exported from some loser's
constantly-evolving Excel spreadsheet. So I had to write seven or
eight different versions of the program that validated and loaded the
data. These days I would handle this easily; after the first or
second iteration I would explain the situation: I had based my
estimate on certain expectations of how much work would be required; I
had not expected to clean up dirty data in eight different formats;
they had the choice of delivering clean data in the same format as
before, renegotiating the fee, or finding someone else to do the
project. But in 1995 I was too green to do this, and I did the extra
work for free.

Similarly, they tweaked the output format of the program repeatedly
over weeks: first the affiliates should be listed in distance order, but
no, they should be listed alphabetically if they are in the same town
and then after that the ones from other towns, grouped by town; no,
the Prudential Preferred affiliates must be listed first regardless of
distance, which necessitated a redelivery of the data which up until
then hadn't distinguished between ordinary and Preferred affiliates; no
wait, that doesn't make sense, it puts a far-off Preferred affiliate
ahead of a nearby regular affiliate... again, this is something that
many clients do, but I wasn't expecting it and it took a lot of time I
hadn't budgeted for. Also these people had, I now know, an unusually
bad case of it.

Anyway, we finally got it just right, and it had been approved by
multiple layers of management and given a gold star by the Compliance
Department, and my clients took it to the Prudential
Real Estate people for a demonstration.

You may recall that Prudential is actually a bunch of medium-sized
companies that share a building in Newark. The people I was working
with were part of one of these medium-sized companies. The real estate
business people were in a different company. The report I got about
the demo was that the real estate people loved it, it was just what
they wanted.

“But,” they said, “how do we collect the referral
fees?”

Prudential Real Estate is a franchise operation. Prudential does not
actually broker any real estate. Instead, a local franchisee pays a
fee for the use of the name and logo and other services. One of the
other services is that Prudential runs a national toll-free number;
you can call this up and they will refer you to a nearby affiliate who
will help you buy or sell real estate. And for each such referral,
the affiliate pays Prudential a referral fee.

We had put together a real estate affiliate locator application which
let you locate a nearby Prudential-affiliated franchisee and contact
them directly, bypassing the referral and eliminating Prudential's
opportunity to collect a referral fee.

So I was told to make one final change to the affiliate locator. It
now worked like this: The user would enter their town or zip code; the
application would consult the database and find the contact
information for the nearby affiliates, it would order them in the
special order dictated by the Compliance Department, and then it would
display a web page with the addresses and phone numbers of the
affiliates carefully suppressed. Instead, the name of each affiliate
would be followed by the Prudential national toll-free number AND
NOTHING ELSE. Even the names were suspect. For a while Prudential
considered replacing each affiliate's name with a canned string,
something like "Prudential Real Estate Affiliate", because what if the
web user decided to look up the affiliate in the Yellow Pages and call
them directly? It was eventually decided that the presence of the
toll-free number directly underneath rendered this risk acceptably
small, so the names stayed. But everything else was gone.

Prudential didn't need an affiliate locator application. They needed
a static HTML page that told people to call the number. All the work
I had put into importing the data, into formatting the output, into
displaying the realtors in precisely the right order, had been a
complete waste of time.

[ Addendum 20131018: This
article is available in Chinese. ]

Show more