Lies, Damned Lies, and Library Automation Software

What’s on my mind today? I’ll tell you: it’s the War against Evergreen.

What’s that Jason? Surely you’re kidding?

No, I’m not.

Another title could be Open Source vs. the Used Car Salesmen. We’ve seen this before with Linux vs. Windows; but I’ve never expected to experience such a thing first hand. It really upsets me. We’re passionate about our software, we’re a meritocracy with development, but we get distracted by people coming to us after having been fed with misinformation. We’ll pit technology vs technology any day (and win or lose, we adapt and ultimately win), but should we really have to deal with Jedi mind tricks?

The war started internally when Evergreen was just an idea. We had to fight for it. We won that battle; but then came the Sith. 🙂

One prominent incident happened about 2 years ago, while Evergreen was in heavy development, when a non-US library consortium contacted us and told us what a particular vendor was telling them:

  1. That we were having problems with development and were running behind schedule (*cough* we were ahead of schedule *cough*)
  2. That one of our biggest problems was that we would always be a step behind their company/product (stair climbing the Tower of Babel for kicks and giggles? some folks are playing catch-up to us and pretending otherwise!)
  3. That “open source development would lead us down a path to disaster, leading to a third-rate, third-world system” (riiiight…)

What was up with that? Evergreen wasn’t even in Alpha yet and a vendor was worried about us enough to spread Fear, Uncertainty, and Doubt, commonly known as FUD. Did they skip the part where they were supposed to ignore us? We confronted the vendor and they denied everything. 🙂

More recently, a vendor told a client that Evergreen can’t do holds. Um. What? That’s one of the main features in use by PINES… heck, it’s one of the main purposes of PINES: the sharing of materials amongst libraries. Evergreen, in fact, has a better holds system than the vendor in question: our hold targeting is randomized when selecting materials at certain geographic ranges (say, statewide), instead of simply selecting the last copy added to the database. What a novel idea!

Here’s some Evergreen FUD related to databases:

  • Evergreen really uses MySQL and not Postgres
  • Relational databases can’t handle MARC, and thus Evergreen does not support MARC
  • Evergreen can’t handle formats besides MARC
  • Evergreen can’t search the entire MARC record, only subsets of it

All false (and some even contradictory!). Evergreen uses Postgres in a replicated environment, can handle all sorts of bibliographic formats, can maintain a fulltext index on any of them in their entirety and in subsets. I’m not sure that all of these were started maliciously, but at least some of it originated from people who should know better *wags finger*.

Here’s another place brimming with FUD. One particularly good bit:

  • Evergreen isn’t really “open”, “grass roots”, or they.. uhhh.. don’t play nice

I suspect this is coming more from a Koha vs. Evergreen angle, because certainly none of the proprietary vendors are open by any open source definition. Evergreen, and I assume Koha, were open source from the very beginning, with the primary hope of becoming sustainable through a community of volunteers. I believe Koha has succeeded with this goal, and I believe Evergreen is succeeding with it (our community really started forming after Evergreen proved itself with PINES). However, no two open source projects are exactly alike, and there are wide variations in how gift cultures and meritocracies organize and manage themselves. The ground rules the original developers try to model are the same as the Postgres project. We humbly await your patch, and that includes patches to our culture and community, because we are what you make us.

Here’s more on a blog post:

  • used by 1 library system (a little disingenuous to compare 1 system to 500 libraries, when that 1 system is composed of 265 libraries)
  • designed for top-down control, ie. a single decision is made by the administrators for the entire system (that’s the situation we jumped ship from)

I guess it’s a matter of perspective. The proprietary vendors have thousands of installations, but are people really happy with them? As for top-down control, it’s more like control at whatever point in an organization hierarchy it makes sense to, and that’s regardless of whether we’re talking about statistical codes for patrons, statistical codes for items, surveys, shelving locations, call numbers, templates, or what have you. If we’re missing something, it’s easy to address, because the infrastructure is sound. If anything, you can say Evergreen was designed with a public library bias, yet we’re discovering that adding academic features is easy. If there’s something you want to see, let us know!

Here’s some more FUD from an email we happened to come across:

  • Evergreen is only useful for huge installations
  • It’s too complicated for all but the biggest libraries to deploy

I find this very amusing. We have “individuals” in our “non-open” community deploying test environments of Evergreen, and creating vmware images to share with others that make the process even easier. We have vendors willing to do it for you. And it’s only complicated where it needs to be! 😀

Remember, Evergreen was intended to be open source from the project’s very inception, so the intent was always that other libraries would use it. Wherever possible, we abstracted and made things flexible. One of our mantras is that software should not dictate policy, and since policy is prone to change, the software must be easily adaptable. We even hired developers from outside the library industry to give us a different perspective. We weren’t perfect; there’s domain knowledge that we lack (and that the community is addressing), but the foundation we built is solid. Hopefully I won’t feel the need to say more on this topic, and I admit to being a bit exasperated. Please forgive me if you made it this far. 🙂

I guess the best sanity check for possible misinformation is for people to come straight to the source–code and community. We’re here, we’re in #openils-evergreen on freenode IRC, and we’re on the OPEN-ILS-GENERAL and OPEN-ILS-DEV mailing lists (

Thanks for everything folks!

— Jason