Monday, January 07, 2013

Mammas, Don't Let Your Babies Grow Up To Be Bad Programmers

Our library system - which is excellent in practically every other way - recently bought and implemented a new catalog.  It is terrible.

The programmer-monkeys who wrote it were... possibly librarians?  Or optimists.

I'm not an especially good programmer but I do have an excellent grasp of how to make people do what you want in a computer system, which is the same in any system:

1) Make the desired behaviour the default, or the easiest thing to do, or preferably both.
2) Forbid the not-desired behaviour and make it as impossible as you can.

Our library system has no enforcement on records imported from the old catalog.  There are books without authors.  There are author names unlinked to author records, which means when you click the author name you don't always get all of the author's books.  There are multiple unlinked author records for the same author. ("Required field" in combination with record search and cleanup.) "Book" is not a unique record type, so if you limit your results to 'books' you also get e-books, books on tape, websites, and comics.  (Everything should be a unique record type, and nothing should have a nonexistent value by default, GAAAAH.)  At one point it was charging everyone double fines. (I don't even know.  A loop without a proper termination, or a batch that ran itself twice every night, or something.)  If you cancel your own hold it sends you an email message telling you that your hold is cancelled.  ("Is canceller-record equal to hold-owner-record?  If yes, do not email.")  The hold-notification crawler runs every hour or so, and therefore sends you six messages a day.  (Annoying, but fairly minor.)

I have no idea who coded it originally, but it seems like bad librarians who taught themselves code, or something.  It's terrible from a librarian perspective and even worse from a code perspective.  I would expect decent programmers to make loops that will only run once - and I'd expect librarians to put authors on all the books.


  1. Anonymous2:06 PM

    I can ASSURE you, this sort of crap is nothing to do with us Librarians. It's designed by 'Data Architects', and dumped on us from on high. ASK ME HOW I KNOW. Oh, how I feel your pain, and be assured, your pain is as NOTHING to the pain of the cataloguers stuck trying to mend the mess again ASK ME HOW I KNOW *unprofessional bitching face*

    1. So basically people who failed out of programmer school (data architects, hah!) are being directed by people who failed out of library school (admins)? Yep, that sounds about right. Seriously, two words: PROGRAMMATIC ENFORCEMENT. Then *nobody* can create certain kinds of screwed up records...

      I expect your pain of trying to mend the mess is, indeed, terrible. They have a totally insufficient number of people working on it here (library system serves probably close to a million), which I know because I kept trying to turn in bug reports.


Comments are moderated, so it may take a day or two to show up. Anonymous comments will be deleted.