We loved this user but dreaded her calls
We loved this user but dreaded her calls
This was a lot of years back, so memory is a bit fuzzy; I've written what I could remember and surmised the rest.
Many years ago, I was working for a small company that supported nonprofits. We had software that helped them track their donors, thank them for donations, and figure out which future campaigns were likely to appeal to them.
It was a fun job. Telephone tech support, but every day I was helping open libraries, keeping missionaries supplied, curing cancer. Callers were generally less technical than business callers would be, but they were almost all earnest and polite. This is the only tech support job I've worked where I was never once sworn at.
One of our customers was an interesting case. She ran a museum with a HUGE mailing like- I think it was just north of six million donors, which was three or four orders of magnitude larger than our average user. She was also genius-level brilliant. She could make our software do things that the programmers swore could not be done. I'll call her Mariko here.
Then she got brain cancer.
A long time went by. She beat the cancer with chemo and surgery, but cancer at that level does not go quietly. She lived, and recovered, but she had lost her brilliant edge, and she had symptoms like somebody with a moderate TBI- emotional, sometimes erratic, easily confused.
She would call up asking us to help her do something that she was sure she'd done before. Sometimes she had. If she'd done it with us, we could pull the logs and help her through it. But sometimes she had just powered through on her own, and it would take us a few hours on the phone to recreate it. And sometimes, she hadn't done it before, because it was not possible with the software.
Our usual calls were ten to twenty minutes long, and low-key. Mariko's calls, when she came back, were never under an hour. During the call, she would often be frustrated enough to cry. Sometimes we would too. She tried so bloody hard!
It was heartbreaking to see how she struggled, but it was also uplifting. This woman had come back from a situation that I would dread, and through sheer hard work, was doing the job that she'd done thirty IQ points ago.
She called me one day asking me to help her figure out why our software wasn't searching through all the names; if I recall correctly it only searched donors with last names starting with A through J.
I tried her exact query on our test database (which had sixty users, not six million) and it worked fine. Proxied in to her computer, and saw that the problem did indeed exist. No error message, it just returned users from the first part of the alphabet.
I obviously couldn't experiment on her live database. Older call records showed that having her burn the data to a heap of CDs and send it to us took about three weeks. The boneheaded tech who had written that ticket hadn't thought to keep the data. So I was stuck with no way to test the software in the actual conditions under which it was being used. A classic 'it works in MY office' moment.
I told Mariko that I was working on a solution, and let her go. It's been a relatively short call for her, forty minutes, but of course the issue was not yet solved.
I'd just taken a Visual Basic class (version 6.0, if that gives you some idea of how long ago this was). So I put together a little script that I called populator. It took random names from a list that I wrote of first names, last names, street names, etc. It generated a list of as many people as you wanted, in a CSV that our software could import. It wasn't perfect, since nobody on the list had any donations, but it was good enough to start.
I entered six million in the quantity field, hit 'go,' and left for the night.
The next morning, my list was there. It took most of the day to import, but when it did, I could recreate her error. I documented it and grabbed a programmer.
He watched the error happen and traced the logic. As you've probably suspected, the problem was that they hadn't planned on such a massive donor list; they'd used an integer for one of the registers. Not sure why it didn't error, but when it reached that number, it decided that the search was done.
He changed it to a long, and recompiled it. My test worked.
So I got to call Mariko and tell her that we had fixed it, and the new release would go out next week, after testing. She was delighted.
When the new release went out, I had to proxy in and install it for her (which we likely wouldn't have done for another user). Once it was installed, I started her database installing and told her that it would probably take overnight to import.
Last call, on the next morning, we ran her query and she got the whole list she needed.
She sent us home made peanut brittle the next week. Seriously nice lady.## TLDR Summary: