Sometime over the weekend the fucktards who maintain our debit card database implemented a change to the search engine. As recently as last Thursday, if you input, for instance, SMITH for the last name and ROBERT for the first name, it would bring up every card with the name “Robert Smith” on it, including those with middle initials. You could do partial name searches, so that SMITH and ROB would bring up Robert Smith, Robert A Smith, Roberta Smith, Roberto Smith, etc. Worked beautifully.
Now some brain farting knuckle programmer who obviously doesn’t use the system has changed the search paramaters. SMITH ROBERT now brings up only those cards that have exactly “Robert Smith” as the name. No more "Robert A Smith"s with it. Partial name searches no longer work unless you use a wild card character *.
What king of moron thinks that reducing the utility of a search engine is a good programming decision? This is even stupider than the last “upgrade,” where they took away the ability to overtype ZIP codes and phone numbers.
I hate to tell yo this, because you sound like you actually want to do your job, but…
The people who maintain these big corporate databases - and their bosses - DO NOT WANT you changing anything or having access to anything. I know, this doesn’t make sense. You can’t do your job properly without it. But it seems to be true so far. Smaller companies have a higher trust level, but for some reason the big companies always and everywhere keep trying to stamp out any possible options for you. They want to force you to do things one way and one way only, and the fact that customers and problems do not come in that one flavor doesn’t seem to affect them.
Anecdote:
I was working for a Certain Southern Phone Company. There were huge issues with us not having nearly the data we needed, or having long, obnoxious manual methods of determining things when simple, automatic ones were available, and having grotesquely poor and outdated trouble-shooting procedures. In fact, at one point we had acess to those systems and methods and could use our judgement on procedures, but the Big Bosses somewhere decided that we weren’t allowed to look at it. This meant huge delays as we could no longer see the results of tests ourselves, but had to call into other groups to get them. Of course, they were also backed up and didn’t have enough staff, which meant the customer was on hold for us to be on hold with someone else. And actually following procedure instead of cheating meant we took over an hour to resolve almost any call, even the simplest, and it wouldn’t be resolved - just passed up to the next hghest level.
If I interpret your description properly, although your search parameter entry is now different, you have MORE control and MORE choices than before. Is there anything you can’t find now that you could before?
Before, if you wanted only the ROBERT SMITHs without ROBERTONIA SMITHs, you couldn’t separate them, but now you can. And if you want to use wild cards, they are now available. Is that a fair interpretation?
If so, you should rejoice that they improved the system. It was deficient to begin with.
I don’t know. Hard to tell whether I can’t find something if I can’t find it, ya know?
No, before if I typed in SMITH ROBERT, it would give me Robert Smith and Robertonia Smith, but it would also give me Robert A Smith, Robert D Smith, etc. Now it only gives me Robert Smith. If the target has an initial it won’t come up unless I use a wild card, so I have no choice but to use wild cards. And if I type SMITH ROB* I’m still going to get Robertonia along with Robert. I don’t care whether I get Robertonia or not, her entry will be after Robert’s anyway. But any redesign in which a result that matches the two entered search parameters is excluded because it includes a middle initial is not an improvement.
You seem to be assumign that the searcher knows all the pertinent information. This is rrely the case, and it’s often easier to grab relevant info out of the system and confirm rather than try to find out everything beforehand. No, it’s not instant disaster, but it’s another cut in the Death By A Thousand Cuts, which is often performed inadvertently by clueless programmers with no actual understanding of the end-user’s needs.
(Keep in mind this is the pit, so I’ll try to make this extra snarky; if it were another forum, really, I’d be more reserved…)
So, as a programmer, I open this thread with a full expectation that as I read, I’ll be nodding my head in agreement, wistfully and shame-facedly. I’ve designed my share of horrid interfaces and APIs – toe-curling horridness of the kind that even I, the designer/implementer, when revisiting the code a month later, could not figure out what I had done or why. Rather, I could only slap my forehead and mumble dejectedly, WTF was I thinking? It’s gonna be a long night…
I expected to be regaled with errant GOTOs, illogical strings of Boolean connectors, O(n!) algorithms, or, at the very least, a Submit button that would inexplicably become inactive when all required input was supplied (“OK, OK…I submit! Just WORK, please!”). Being a firm believer in making programmers actually use the systems they implement, I hoped to pick up some ethos on a poor design, so that I might avoid it myself. Barring that, perhaps I’d at least be able to shake my head empathetically, silently doling out blame in some permutation to the noob programmer, PHB, and/or marketing department.
But no. Instead, I find that some programmer did his/her job, tightening up the data entry and search form. Let me get this straight – you now have to type wildcards? You’ve gained precision without any actual loss of functionality? Que horror!
Don’t get me wrong – I understand that people do not, as a general rule, “think” like computers. As an AI guy, how could I not? And user interfaces should make it a point to be…um…usable, bridging that very divide. But, evidently, that point is utterly lost on you. And not only is usability hard, but exactly because of that, it entails substantial costs in time, effort, and money. Furthermore, complexity is the enemy of secure, valid, well-written code. Data validation is a tremendous issue – see this XKCD comic for an amusing take on it.
I think there’s likely more to this than you realize; I’d guess that your issue was an after-effect of some other modifications. And, contrary to the tenor of the above, I truly am sympathetic; it doesn’t seem like a simple query of the sort you describe would be ripe for a security exploit. (Perhaps, though, showing too much information is a problem? A potential violation of customer privacy, for instance?) But I can’t say without substantial knowledge of the system’s inner workings.
I don’t believe that I have gained precision and I believe I’ve lost functionality. If I type in a customer’s first and last name as search parameters I expect to be able to access a list of every customer with that first or last name. I don’t expect to have to spend extra time trying to figure out whether a too-tight security parameter is keeping me from finding the right customer the first time. Previously, if it brought up a list of every Robert Smith, I could eliminate the possibilities in a second by asking for a middle initial and other security information. Now I have to dick around. And I don’t think any system that requires rather than allows the use of wildcards is well designed.
The real culprits, in my experience, are the fucking brain damaged Auditors who come through and try to tell them who should have access.
I was at a grain company in the mid 80’s where they determined that I should not have any access to the files for the $10 million tax credit process I was charged with running. OK, so how the fuck do I run it if I can’t access it? How do I test anything? What resulted was that I got back door permission to make copies of all of those tapes, which sat on my unsecured desk for a month and had to hand carry them up to the computer room every time I wanted to run something.
Yup, no access to the production files, period. But I can have complete copies of them sitting on my desk for a month and create $10 million in checks from them.
:eek:
At another company, I ran a mission critical application. No issues with me having direct access to all production files, because I was in a position of direct responsibility. Then the auditors come through and recommend that all my access be removed, which would have prevented me from doing my job. I sat down with my Manager and my Director about it. My recommendation was “Tell the Auditors to go fuck themselves”. My Director was smart enough to carry forward my recommendation, in slightly (only slightly) more diplomatic tones and my access was retained. In the end, our upper management was less than happy with the overly strict recommendations the auditors were making, and were insisting were Industry Standard, because it would have brought our work to a screeching halt.
Dig Stim, your post illustrates a huge pet peeve of mine concerning programmers. You write:
You claim to understand that people use computers in different ways. This is a different thing from actually understanding it.
Otto may do hundreds of searches a day, many without being given accurate or useful information. Yes, he can theoretically do what he did before, but only with extra work and annoyance. This is rather like saying that you can do your job programming just as well with a pet parrot shitting all over your keyboard squawking about errors you may have made. In this case, you are ignoring that speed is often more useful to humans than pin-point precision. Humans can easily select almost without thinking the correct information from a list. Getting the right information exactly on the first try is much harder.
Your own post reveals the problem. You’re thinking about bad programming work, but not ignorance of end-user needs. No, I am not bitter at all about poor interface work or idiot programmers.
Is it not possible to use wildcards to regain the same functionality? Like if you typed Rob* Smith you’d come up with Robert then? This is the way I’d expect it to work generally.
So you want to find anyone named Robert Smith. What’s hard about typing:
rob*t smith
? This way you only get people who are gonna be named Robert, instead of having the Robertinas, Robertonias, etc.
And if you were looking for good ol’ Robertonia, this would be a far easier system, because instead of just searching for ROBERT and having to sift through all the Roberts, Robertinas, Robertonias, you can now search for:
ROBERTIA (or, if not in the mood to type so much, ROBIA)
How the frick did you lose functionality?
Yes, the way I see it you’ve gained functionality. The previous system added implied wildcards to the beginning and end of each name, while the new one requires you to do it yourself. That way you can search for Rob*ta Smith and still turn up Roberta and Robsomethingelseta. So basically you can search for a name and specify more than one piece of it that needs to be fixed. I think the previous system probably returned unneeded extra results while was also too constrictive in not allowing more than one string separated by wildcards.
So basically you’re complaining about having to type in a * despite the extra functionality gained? That is unless a query of “Rob ta” would turn up the above names. I doubt that though, as it’s confusing.
First, let me reiterate that I was going for teh snark, so my post was somewhat coarse and over-inflated.
More to the point you raise, however, is that understanding the issue of how computers work vs. how humans use them is only the precursor to implementing a solution. And that understanding, IME, is unfortunately usually only appreciated on one side of the user/programmer equation. Let me give you an anecdote as an illustration:
I was a grad student not too long ago, working with an “intelligent” robot that interacted in real time with people. Mobility, vision processing, natural language, emotive responses…the whole shebang. (As I said, I’m an AI guy.) My advisor, very much into cognitive studies, had a philosophy professor in the lab one evening to see a demo, with the hope of collaborating at some point in the future.
After seeing the robot do it’s thing (with a couple of glitches), conversation turns to ontologies and classification hierarchies. At some point, the prof says to my advisor, “Well, that’s easy. Just have the robot do X when it sees a face that looks angry.” At which point, my advisor and I stole a glance at one another, each shaking our heads in his utter ignorance of the enormity of the problem.
Now, in no way, shape, or form am I equating Otto’s narrowed search results to full-on AI problems. But the underlying issue is similar – end users too often have no fucking clue just how difficult or time consuming it is to make a system work, much less be pleasant to use. But somehow, end-users expect computers to magically work like humans (“Stupid computer…of course ‘Bob’ is short for ‘Robert’! How could it not know that?!” Hmmm. Perhaps because that’s not the way symbol processing computers works?).
Add in the time and money constraints, pressure from the (often ignorant) higher-ups, and requirements/specifications that are unknown and unseen by the end-user, and it becomes obvious which party is most likely not to understand the issue (or, at least, the full scope of the issue). Hint: it’s not the one implementing the system.
As I said, I’m actually pretty [sy|e]mpathetic to Otto’s plight. Too often, the Nick Burns of the IT world not only do shitty design, but they also refuse to see any problem where one exists. And that’s inexcusable. But, given the totality of end-user needs and system implementation, it’s prima facie false to say that they are more ingnorant than an end-user. They’ve obviously at least thought about the interface (having implemented it); there’s no way the average end-user can know anything about the implementation.
On a more helpful note for Otto, if there’s any way to submit a feature request, I’d suggest doing so…perhaps mentioning to a manager, “Y’know, it would make my job a lot quicker and easier if this search functionality was put back.” Although I’d leave out the “fucktard” and “brain farting knuckle programmer” bits for best results.
But, as Merkwurdigliebe has pointed out so well, you have gained precision and, in fact, have also gained functionality – specifically, prevention of overly broad results. A search that returns too many items can be just as aggravating as one that returns too few (even if it is likely to occur less often…the principle of optimizing for the common case should be taken into account). At the cost of typing a single character, an entire class of bad results has been removed from the process.
Humans can learn easily and are creatures of habit; yet more differences from computers. I suspect that if the system had always used wildcards, you’d have similar complaints concerning the “new” implementation of not needing them anymore. Granted, it no longer works the way it used to. That may, in and of itself, be justification for further modification that allows the type of system behavior you’re used to. But “fucking stupid”? Not at all.
I feel for the OP. I totally get his gripe. I also see, though, that there is an increase in functionality coupled with a change in procedure.
I wonder if there was a complaint about too many results being returned for searches, which lead someone to program in a need for wildcards as opposed to the sort of ‘automatic’ wildcard at the end of each word that had been the way before.
Not that it doesn’t suck to have to change your methodology, but I can see this as a possible excellent way to deal with a specific issue without removing your ability to do anything.
So now it’s an exact match and before, a wild card was implied.
But before, you couldn’t get an exact match at all, and now you can. The only penalty for this increased functionality is you must use a wild card when you want wild card searches.
Sounds like an improvement to me. Give yourself a little time to get used to it and you might like it better.
I use a property database program daily that doesn’t have any way of specifying an exact match (an implied wildcard at the end of the search string is the default and only option). It’s very frustrating when I get hundreds of similar items even though I know exactly how to spell it. I wish I had your options.