anchor
Freshcode
  /  
Insights
  /  

Why Your LIMS Migration Fails: Lessons from an Engineering Partner

Why Your LIMS Migration Fails: Lessons from an Engineering Partner

Last updated:

January 30, 2026

3 min read

Industries

By

Vadym Kostiuk

Partnership Lead

Sofiia Yurkevska

Content Writer

Contents

See more

This is some text inside of a div block.

Your lab runs on software built five years ago. Maybe it was custom-built. Perhaps, it's a commercial product that's been heavily customized. Either way, you've reached the point where making changes is expensive, slow and risky.

So you start looking at migration options. Modern LIMS platforms promise integration, flexibility, and faster development. But here's what actually happens: you're either stuck in an 18-month implementation that keeps getting delayed, or you've gone live and discovered the new system doesn't actually solve your problems.

The migration fails not because lab informatics is uniquely difficult, but because it's treated as a product purchase instead of a software engineering problem.

TL;DR
  • LIMS migrations often fail because they're treated as product purchases rather than software development problems
  • Common issues: outdated technology, poor architecture, slow modifications, and complex integrations that off-the-shelf products can't solve
  • Case study: A pharma company modernized their legacy system over 24 months while keeping it live, improving performance and maintainability without full replacement
  • Custom development makes sense when your workflows don't fit standard products or when modernizing existing systems is less risky than complete migration
  • The key question: Do you have a software development problem or a procurement problem?
  • Why you might be looking at migration

    When companies talk about "LIMS migration," they're usually describing one of these situations:

    1
    Moving from one commercial product to another
    You're on Watson LIMS or an old LabVantage installation, and you want to switch to Benchling or STARLIMS. The promise is modern interfaces and better integration. The reality is 12-18 months of implementation, expensive customization, and discovering the new product doesn't fit your workflows either.
    2
    Escaping a legacy custom system
    Someone built a LIMS internally years ago. It works, sort of, but the original developers are gone. The codebase is fragile, and knowledge about it is scattered. Every change risks breaking something else. Making it do new things takes forever. You want to replace it with something maintainable.
    3
    Modernizing an outdated platform
    Your current system—commercial or custom—was built on technology that's now obsolete. The database can't scale. The architecture doesn't support the integrations you need. But it's deeply embedded in your operations, and you can't just turn it off.]: numbered list

    These all look like domain-specific problems. They're not. They're software development problems that happen to be in the lab informatics domain.

    The typical approach is to treat this as a procurement decision: evaluate products, pick one, implement it, go live. It doesn't always work for lab informatics because workflows aren't standardized, integrations are complex, and compliance requirements are strict. What makes these projects fail is that they are trying to solve a custom software problem with an off-the-shelf product approach.

    Case study: platform modernization

    A pharmaceutical company approached us with what appeared to be a typical migration issue. They had a web application for clinical trial data analysis, including biomarker research, statistical modeling, and dashboard generation. It was built five years earlier using R for statistical computing and Clojure for the web layer. The system worked, but barely. Here's what was actually wrong from a software perspective:

    The codebase had no automated testing. Every change meant manual QA, and things still broke in production. The database schema wasn't designed for their data volume and query patterns, so performance degraded as data grew. The architecture was monolithic; everything was coupled together, making it hard to modify one part without affecting others. Integration points were brittle; when external data sources changed formats, things broke and took weeks to fix.

    They also had organizational problems. The development team was spread across four countries without a real project management framework. Communication was ad hoc. Nobody had clear ownership of different parts of the system. When issues came up, it wasn't clear who should fix them or how long it would take.

    From a business perspective, the pain showed up as velocity. Data scientists spent most of their time preparing data instead of analyzing it. New features took months to deliver. When external partners sent data in new formats, integrating it was a multi-week project. The system couldn't handle real-time requirements as dashboards were manually updated weekly because the queries were too slow to run continuously.

    What they actually needed wasn't a new product. They needed their existing system modernized.

    The development approach to lab software in live use

    We didn't replace their system. The system stayed in production throughout the 24-month rebuild. Here's the phased approach:

    1
    Phase 1: Foundation
    Replace outdated technology stack with modern equivalentsBuild an API layer for component communicationImplement automated testing (unit, integration, end-to-end)Set up continuous integrationResult: Stable foundation where changes don't randomly break things
    2
    Phase 2: Integration framewor
    Build a modular adapter system for external data sourcesImplement adapters for 8 CRO partners (2 weeks per adapter)Add automated validation and format normalizationResult: New data sources can be added in weeks instead of months
    3
    Phase 3: Core capabilities
    Implement statistical analysis modules (survival analysis, ROC curves, clustering)Build interactive dashboards with automatic updatesAdd data visualization toolsResult: Users can work within the system instead of exporting to other tools
    4
    Phase 4: Production readiness
    Optimize database queries and add cachingImplement monitoring and alertingCreate deployment automationTrain the client team on maintenanceResult: System can handle scale and be maintained internally

    Throughout this, changes were deployed incrementally every two weeks. The old system ran in parallel until each new component was validated. When issues appeared, small change sizes made rollback straightforward.

    The technical work was standard software engineering—refactoring, API design, testing, database optimization and monitoring. It succeeded because the constraints were clear: keep it working while improving it. A product migration has different constraints: make everything fit the product's model while maintaining functionality.

    Five years later, the system is still in production, serving 2,500+ users. They've added dozens of new features, scaled to 10x their original data volume, and maintained 99.9% uptime. This happened not because we built something dramatically better than commercial products, but because we solved their actual software problems instead of trying to fit them into a product's constraints.

    When custom development makes sense

    Not every lab informatics problem needs custom development. If your workflows are standard for your industry and a commercial product fits well, buying it is faster and cheaper than building it.

    Custom development makes sense when you have specific requirements that products don't meet, when integration complexity is high, or when you need to move fast on new capabilities. It makes sense when the cost of working around a product's limitations exceeds the cost of building what you need.

    It particularly makes sense for modernization projects where you already have a working system that just needs to be brought up to current standards. This is less risky than migration (you're improving what exists rather than replacing it), and it's faster because you're not re-implementing functionality that already works.

    The key question is, "Do we have a software development problem or a procurement problem?" If your main challenge is that your system is built on outdated technology, poorly architected, lacks testing, or can't be modified efficiently, that's a software development problem. Buying a SaaS LIMS doesn't fix it because you'll end up with a different system that has the same kinds of issues once you start customizing it.

    I think things like macro usage in Clojure are definitely a matter of taste. You can definitely overdo it.
    Cam Saul
    Metabase

    What software development solves and what it does not

    We're a software partner and engineering team who work in lab informatics. We're not trying to replace domain expertise; the scientists and lab operations people know their workflows far better than we do. What we bring is the ability to build software that's maintainable, scalable and compliance-ready.

    That means building proper APIs so systems can integrate cleanly. Writing automated tests so changes don't break things. Designing database schemas that perform well at scale. Setting up development processes that let you ship changes quickly and safely. Building monitoring to see what's happening in production. Creating deployment automation to avoid downtime during updates.

    These are standard software engineering practices, but they're often missing in lab informatics systems because they were built by scientists who needed to solve an immediate problem, or by vendors who are optimizing for selling to many customers rather than serving one customer deeply.

    If your lab informatics challenge is fundamentally about software—outdated technology, poor architecture, slow development velocity, integration complexity—we can help. If it's about choosing between similar products or configuring a standard platform, we probably can't add much value.

    The MediPro case worked because they had a clear software problem: a legacy system that worked but couldn't be modified efficiently. We didn't need to be lab operations experts. We needed to be good at refactoring code, building APIs, writing tests, and shipping software incrementally. That's what we do.

    If your lab informatics system is built on outdated technology, difficult to modify, or can't integrate with the systems you need, let's talk about whether custom development makes sense for your situation.

    Build Your Team
    with Freshcode
    Author
    linkedin
    Vadym Kostiuk
    Partnership Lead

    Probably was born as a skilled problem-solver and outside-the-box thinker. Builds and nurtures strong relationships with clients and partners worldwide. 

    linkedin
    Sofiia Yurkevska
    Content Writer

    Infodumper, storyteller and linguist in love with programming - what a mixture for your guide to the technology landscape!

    Share your idea

    Uploading...
    fileuploaded.jpg
    Upload failed. Max size for files is 10 MB.
    Thank you! Your submission has been received!
    Oops! Something went wrong while submitting the form.
    What happens after
    you fill this form?
    We review your inquiry and respond within 24 hours
    A 30-minute discovery call is scheduled with you
    We address your requirements and manage the paperwork
    You receive a tailored budget and timeline estimation

    Talk to our expert

    Kareryna Hruzkova

    Kate Hruzkova

    Elixir Partnerships

    Our team scaling strategy means Elixir developers perform from day one, so you keep your product on track, on time.

    We review your inquiry and respond within 24 hours

    A 30-minute discovery call is scheduled with you

    We address your requirements and manage the paperwork

    You receive a tailored budget and timeline estimation

    elixir logo

    Talk to our expert

    Nick Fursenko

    Nick Fursenko

    Account Executive

    With our proven expertise in web technology and project management, we deliver the solution you need.

    We review your inquiry and respond within 24 hours

    A 30-minute discovery call is scheduled with you

    We address your requirements and manage the paperwork

    You receive a tailored budget and timeline estimation

    Looking for a Trusted Outsourcing Partner?