Academic Library Software Problems: The 7 That Cost Real Money, and How to Avoid Them
The most expensive failure in academic library software is the one nobody reports. Your discovery layer says full text available, the link resolver sends the researcher to a paywall because the knowledge base carries coverage dates that no longer match what you licensed, and the researcher routes around it rather than filing a ticket. A library spending more than roughly $2M a year on collections is therefore paying, every month, for content that is genuinely licensed and genuinely unreachable, with no queue anywhere that counts the failures. Every other problem on this page is expensive. This one is expensive and invisible, which is why it survives budget review after budget review.
Why do library software projects drift into rebuilding the platform?
The brief starts sensibly. Fix link resolution. Then somebody observes that the resolver depends on holdings, holdings depend on acquisitions, acquisitions depend on the fund structure, and by week six the proposal contains a circulation module. This is the most common way library development money is wasted, and it happens because everything inside a library services platform genuinely is connected.
The specific trap here is that the platform vendors have spent well over a decade on cataloguing, circulation and acquisitions. Ex Libris Alma, FOLIO, Koha and OCLC WorldShare all handle those functions to a standard no first release will approach. A project that begins as entitlement reconciliation and ends as a replacement catalogue ships late, ships thin, and is compared daily by your own staff against a product built by a team of dozens.
The fix is a written boundary agreed before the first sprint. The platform stays the system of record for bibliographic data, patrons, loans and orders. The custom work reads from it and writes back through its interfaces, and anything that requires replacing a platform function is out of scope and stays out, even when it looks like a small addition. In our delivery experience the library projects that hold three or four precise objectives finish and get used. The ones that accumulate a fifth and a sixth get cancelled at the point where the money has been spent and nothing is in production.
What goes wrong when you migrate decades of MARC records?
Your bibliographic data is not generic. It carries local practice going back decades. A 590 note that means something specific to your institution. Item types that encode circulation policy rather than describe an object. Location codes referring to a building demolished years ago. Serials holdings statements written in the style one cataloguer used for eleven years. None of this is documented, because it was never intended to leave the system it was created in.
The failure mode in a library migration is almost never a crash. It is the quiet loss of a category. A material type maps to nothing and disappears. A note field used for donor acknowledgement lands in a display field and starts showing on the public catalogue. Boundwith relationships break and the second title stops being findable. Nobody notices for months, because the counts look approximately right and the records people search for most were the ones tested.
The fix is unglamorous. Profile the legacy data first and report honestly on what will not map, before anyone agrees a cutover date. Write the transformation rules as tested code rather than as a vendor spreadsheet, so a rule change re-runs in minutes instead of triggering another extract. Reconcile after load by comparing counts and samples per material type, per location and per record status, not in aggregate. And keep a queryable copy of the legacy data for about two years, because someone will ask a question the new system cannot answer and the alternative is a restore from tape.
Why do knowledge base feeds and proxy integrations break after launch?
The integrations that matter in a library are the ones nobody watches. KBART title lists from each content provider. COUNTER 5 usage harvested over SUSHI. EZproxy stanzas or an OpenAthens configuration standing between your users and every platform you licence. A link resolver reading a vendor maintained knowledge base. These are standards, and providers implement standards with real variation, which is the whole problem.
Things break in specific and predictable ways. A provider renames a column in a KBART file and your ingest silently drops a field. A SUSHI endpoint moves and the harvest stops, and because usage reporting is a quarterly activity nobody notices until renewal season. A publisher redesigns their platform and the proxy stanza that used to work now fails on a subdomain. None of these produce an error message anyone in the library sees. They produce users who cannot get to content and do not complain.
The fix is to treat every feed as untrusted input and to alert on absence rather than only on failure. Validate each file on arrival against expected row counts and column names, and raise a ticket when a provider file does not arrive at all, which is the more common failure. Then add synthetic link checks: overnight, resolve a sample of links you know should work across your major providers, and open a queue entry for each one that lands somewhere other than full text. That queue is the closest thing this sector has to a smoke alarm, and almost no library has one.
What happens when licence terms are not in the system?
Can this journal be supplied through interlibrary loan. Can this ebook go on course reserve. Does walk in access cover the public. Do you hold post cancellation rights on this backfile and for which years. Is text and data mining permitted. Every one of those questions has an answer in a signed agreement, and in most libraries the answer is produced by a licensing librarian from memory or by opening a PDF and reading it.
Two failures follow. The first is refusal of something you are entitled to do, which is a service loss nobody measures because the requester simply goes elsewhere. The second is the reverse, and it is worse: supplying something the licence prohibits, which is a breach your institution carries. There is a third, specific to consortia. A shared print agreement commits your library to retain named titles for a defined period, and a deselection project run against shelf space rather than against retention obligations will withdraw volumes your group promised to keep.
The fix is making terms operational rather than reference. Both Alma and FOLIO can hold structured terms, and the reason those fields sit empty is that entering them is slow and the benefit is invisible until an interlibrary loan request arrives at four in the afternoon. So wire the decision into the workflow. The loan system asks the licence at request time and returns an answer with the governing clause attached. The reserves workflow does the same. Deselection proposals are checked against retention commitments automatically. Once a system is producing decisions rather than storing notes, the data gets maintained, because staff feel the cost of it being wrong.
Should you build custom or configure what you already own?
Configure, for a great many libraries, and we will say that plainly. A single campus library under roughly $500,000 in collections spend should run Koha or OCLC WorldShare as they come and put the difference into content and staff. The gap between what you have configured and what you could configure is usually larger than the gap between the product and a custom build. Alma has an electronic resource management module capable of holding licence terms, and most libraries that complain terms are unqueryable have simply never populated it. FOLIO has apps you may not have enabled.
Configuration also wins when the requirement is really a policy decision wearing a technical costume. If two departments disagree about fund structure, no software resolves that.
Build around the platform when two or more of these hold. Your link resolution failures are known to be significant and nobody owns the reconciliation between entitlements and the knowledge base. Your consortium has rules that no vendor configuration expresses and the only person who knows them is the group's operations manager. Fiscal year end reconciliation against your institutional finance system takes weeks of a senior person's time. Or you are on FOLIO and have identified a specific workflow where a module is cheaper than the workaround you are living with. FOLIO is the one case in this sector where building rather than working around is genuinely sensible, because the architecture was designed for it.
How do hidden costs get into the quote?
The costs that surprise libraries are not engineering costs. They are discovery and coordination costs, and they are structural to this sector.
The first is the number of content providers whose files you must ingest. A quote written against three providers and delivered against fourteen is not the same project, because each provider brings its own interpretation of KBART, its own SUSHI quirks and its own idea of a title identifier. Count them before you sign.
The second is consortium size. Every member institution brings its own policies, its own opinions and its own meeting schedule. A rule that takes an afternoon to write takes six weeks to agree across twelve libraries, and that time is real project cost even when no code is being written.
The third is the authentication estate. EZproxy configuration is a workstream. An OpenAthens or SAML migration is a bigger one, and it usually belongs to central IT rather than to the library, which means it moves at their pace.
The fourth, and the one that most often blows the schedule, is the condition of your legacy data. A quote that assumes clean records and encounters forty years of local practice will be renegotiated. Insist that data profiling happens first and is priced as its own small piece of work, so both sides are estimating against evidence rather than hope.
What separates a build that works from one that fails here?
Four things, consistently. The first is a named owner inside the library who can make decisions, usually the head of electronic resources or collection services. Library projects governed by a committee produce requirements that are the sum of every attendee's wish list and satisfy nobody.
The second is one measurable outcome agreed at the start. Reduce unresolved link failures on a named sample. Cut fiscal year end reconciliation from three weeks to three days. Produce a weekly entitlement exception list somebody actually works. Projects with a number attached get finished because progress is visible. Projects justified by improved workflow drift.
The third is staff time budgeted honestly. Somebody in the library has to answer questions, review sample data and test. If that person is also running renewals, the project will stall in exactly the weeks it most needs attention. Name them, and protect their calendar.
The fourth is ownership settled in writing before kickoff: the repository, the cloud accounts, the right to hire another firm, and for FOLIO work an agreement on what goes back to the community. At Digital Heroes the client owns the code from the first commit. Libraries keep institutional memory far longer than they keep vendor relationships, and your local logic should outlive both.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- The Standish Group 1995 CHAOS Report found only 16.2% of software projects fully succeeded; success varied sharply by size, with large-company projects succeeding about 9% of the time versus far higher rates for small projects - best treated as an industry survey, not an audited dataset. Source: Standish Group (1995) →
- Standish's 2015 CHAOS research found roughly a third of software projects (about 36% by the Modern definition) fully succeed on time, on budget, and on scope, with top success drivers including executive support, user involvement, and clear requirements/business objectives. Source: Standish Group (CHAOS Report) (2015) →
- 88% of customers say good customer service makes them more likely to purchase from a brand again in the future, quantifying the direct revenue link between support quality and retention. Source: HubSpot (2024) →
- Only about 30% of digital transformations succeed at meeting their objectives, but getting six critical success factors in place (leadership commitment, talent, agile culture, progress monitoring, clear strategy, and a modernized platform) raises the odds of success from 30% to 80%. Source: Boston Consulting Group (BCG) (2020) →
Arjun sets the technical direction for Digital Heroes, choosing the stacks and architectures the delivery teams build on across custom software, ERP and commerce work. His posts explain why one approach gets picked over another, which is usually the part buyers never see.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
How do we prove link resolution is failing if nobody reports it?
Stop waiting for reports and instrument it. Run an overnight job that resolves a sample of links you believe should work across your major providers and records where each one landed, then open a queue entry for anything that did not reach full text. Pair that with outcome capture at the resolver itself, since a user who clicks through and returns within seconds is a strong signal of failure. Silent failure is the defining characteristic of this problem, so detection has to be built rather than requested.
Our knowledge base coverage is wrong. Whose fault is that?
Usually nobody's, which is why it persists. Knowledge base packages are maintained centrally by a vendor and are generally good, but they describe a package rather than your institution's entitlements. Title transfers between publishers mid year, packages swap titles at renewal, and perpetual access rights from a cancelled subscription are invisible to the package definition. The fix is reconciliation: ingest the KBART title lists you actually receive plus your perpetual access records, compare them against the knowledge base, and work the exception list weekly.
What is the single biggest risk in a migration to Alma or FOLIO?
Losing a category of records quietly. Migrations rarely fail loudly; they fail by mapping a material type to nothing, or by moving a locally significant note into a public display field, or by breaking boundwith relationships so a second title stops appearing. Aggregate record counts will look fine. Reconcile per material type, per location and per record status instead, and profile the legacy data before any cutover date is agreed so both sides know what will not map.
Can we just configure Alma instead of building anything?
Frequently, yes, and it is worth exhausting first. The electronic resource management module can hold structured licence terms, and most libraries who describe their terms as unqueryable have simply never populated those fields. Configuration also wins when the real disagreement is about policy rather than software. Building becomes reasonable when the requirement is genuinely outside what any vendor would build, such as your consortium's specific reciprocal borrowing and shared print rules.
How do we stop deselection from breaching shared print commitments?
Hold the retention commitments as data and check every deselection proposal against them automatically before anything is withdrawn. Most groups keep their commitments in a signed agreement and a spreadsheet, which means the check depends on someone remembering to run it during a project driven by shelf space pressure. Once retention obligations sit alongside holdings, the check happens whether anyone remembers or not, and a proposal returns a list of titles you are not free to withdraw.
Why do our COUNTER and SUSHI usage harvests keep stopping?
Because endpoints move, credentials rotate, and providers implement the standard with variation, and because usage is a quarterly activity so a stopped harvest is discovered months later at renewal. Alert on absence rather than only on error: if a provider's report has not arrived by the expected date, that should raise a ticket. Validate what does arrive against expected row counts and column names, because a provider renaming a field silently drops data without any failure being logged.
How much library staff time does a custom project really need?
More than the quote implies, and it is the most common cause of a stalled library build. Somebody has to answer domain questions, review sample data, test transformations and make decisions about local practice that only they understand. In our delivery experience that is a meaningful share of one person's week for the duration, and if the named person is also running renewals or a migration the project loses momentum exactly when it needs attention. Name the person and protect their calendar before kickoff.
Is FOLIO genuinely easier to extend than a closed platform?
Yes, and it is the one case in this sector where building modules rather than working around a product makes sense, because the architecture was designed for extension. The trade is operational responsibility: hosting, upgrades and community engagement become yours rather than a vendor's. Treat that as an ongoing commitment rather than a one time build cost, and agree upfront what your custom work contributes back, since that question is easier to settle before code exists than after.
Can I start with one ERP module instead of the full system?
Is SAP overkill for a mid-sized company?
Is a custom ERP cheaper than NetSuite over five years?
Can a freelancer build an ERP, or do I need an agency?
How much should a small business budget for its first custom app or website?
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
How many developers does it take to build an ERP?
How many SaaS seats do we need before building custom becomes cheaper?
Who can build a custom ERP software system?
Digital Heroes builds custom ERP software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.
Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.
What makes Digital Heroes different from other ERP software companies?
Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.
Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.
How can I check Digital Heroes is legitimate before getting in touch?
Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.
Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.