The company I work for is called
CoCreate.
The name was chosen because the company's mission is all about collaboratively
creating things. That's all nice and dandy, but I guess the team who
picked the name didn't include a programmer, and so they overlooked
something pretty obvious which causes mild confusion every now and then.
Most programmers, when confronted with our company name, think of COM.
After all, one of the most important functions in all of the COM libraries
prominently displays our company name:
CoCreateInstance.
Now, if a programmer thinks about COM (and hence software)
when she hears about us, that's probably fine, because, after all,
we're in the business to make and sell software.
However, customers are not necessarily that technology-savvy,
nor should they have to be.
A while ago, a customer complained that our software was sloppy because
it wouldn't uninstall itself properly and leave behind traces in the system.
Our installer/uninstaller tests didn't seem to confirm that.
So we asked the customer why he thought we were messing with his
system. "Well", he said, "even after I uninstall your stuff,
I still get those CoCreate error messages."
The customer sent a screenshot - it showed a message box,
displayed by an application which shall remain unnamed, saying
that "CoCreateInstance failed" and mumbling some COM error
codes!
It took us a while to explain to the customer that no, we
did not install this CoCreateInstance thing on the system,
and that it is a system function, and if we actually tried to
uninstall it along with our application as he requested (kind of),
he wouldn't be terribly happy with his system any longer, and
that the other app was actually trying to report to the customer that
it had found a problem with its COM registration, and that this should
be looked after, not our uninstaller. Phew.
Now if only we had the time-warping powers of the publishers
of "The Hitchhiker's Guide To The Galaxy", we'd send our
company marketing materials back into time before Microsoft invented
COM, and then sue the living daylights out of them. Well, if we were
evil, that is
My memory took a little longer to swap back in, but while writing
the above, it dawned on me that this incident wasn't the only one of
its kind: Somebody had upgraded to a new PC and installed all applications
except CoCreate's. Then, while syncing to his Palm Pilot, he got
an "OLE CoCreateInstance Failed" error message, and started to
search high and low on his shiny new PC for traces of CoCreate
applications or components.
Puzzled, he posted to a newsgroup, and I replied with tongue-in-cheek:
Let me explain: When we kicked off CoCreate as a company,
we sat together and thought about awareness strategies for the new
company. So we called our buddies from Microsoft and asked them to
name some API functions after us, and in exchange we would port our
software to Windows NT. Neat scheme, and as you discovered on your
system, the cooperation between the two companies worked just fine.
[... skipping explanation of the technical issue and hints on
how to fix registry issue on the system ...]
The next step for CoCreate towards world domination will be to
talk to some of our buddies in, say, Portugal, and offer them to
develop a Portugese version of our application if they name
their country after us.
Would I get away with a response like this if I was a support engineer?
Maybe not. One more thing to like about being a software developer
(Everybody in the newsgroup had a good chuckle back then.)