All articles

Custom software for pharma and life sciences

In regulated life sciences, the audit trail is not a feature — it is the point. What changes when your software has to be validated, and how to build for it deliberately.

In most industries software is judged by whether it works. In life sciences it is judged by whether you can prove it works — and prove it still works, on the day an inspector asks, for the exact version that was running when the batch was made. That single shift changes almost everything about how the software is designed, built, and shipped. Before we go further, one honest disclaimer: this is about software engineering for a regulated environment, not medical, legal, or regulatory advice. Your quality and regulatory people own the rules; our job is to build systems that let them do that job well.

The regulation is the requirement, not an afterthought

In a normal project, compliance is a constraint you check near the end. In pharma it is the shape of the whole thing. A GxP mindset — the family of good-practice expectations around manufacturing, distribution, and laboratory work — means the system has to assume, from the first line, that it will be inspected. That is not bureaucracy for its own sake; the underlying question is always the same and always reasonable: can you show that the product made for a patient was made correctly, by a controlled process, on validated systems, with nothing altered quietly along the way?

Teams that treat this as paperwork to bolt on later end up rebuilding. The features that matter most — who did what, when, and why; what the system state was at each step; what changed and who approved it — are architectural. You either designed for them or you are retrofitting them into a system that fought you the whole way.

It helps to name the two audiences the software serves at once. Day to day it serves the analyst, the operator, and the QA reviewer who need to do their work without fighting the system. But it also serves a future inspector who was not in the room and will judge the record, not the intention. Good regulated software keeps both satisfied, and the tension between them — usable now, defensible later — is the design problem that never quite goes away.

Validation changes what shipping means

Outside regulated work, you ship when the tests pass. Under computer system validation, shipping means you have documented evidence that the system does what it is specified to do and nothing it should not — that the specification, the build, and the tests trace to each other, and that the environment it runs in is controlled. A change is not just a pull request; it is a change with an impact assessment, a re-test, and a record.

This sounds heavy, and done badly it is. Done well, most of it is automated. The same rigor that makes good engineering — clear requirements, automated tests, reproducible environments, an audit-able pipeline — is most of what validation asks for, expressed in a language auditors trust. The trap is the team that treats validation as a separate, manual, document-writing phase divorced from the code. We treat the evidence as an output of the way we build, not a second project running alongside it.

One practical consequence is that speed and rigor stop being opposites. A team that automates its evidence can validate a change in days rather than weeks, because the requirement-to-test traceability is generated rather than assembled by hand the night before a release. The firms that struggle are the ones still treating every change as a fresh manual campaign; the ones that do well have made validation a property of the pipeline, so shipping safely and shipping often become the same motion.

Data integrity is the whole game

If there is one idea that sits at the centre of regulated software, it is data integrity — captured in the ALCOA principles at a high level: data should be attributable, legible, contemporaneous, original, and accurate, and in the extended version, complete, consistent, enduring, and available. Read plainly, that is a demand that your records tell the truth, say who created them and when, cannot be silently edited, and will still be readable and intact years from now.

In practice this means audit trails that record every meaningful change with the who, when, and old-and-new value, and that cannot themselves be tampered with. It means electronic signatures that actually bind a person to an action. It means being deliberate about the difference between correcting a record and hiding a mistake — regulated systems must let you correct, but never let you erase the fact that a correction happened. A system that lets a value be quietly overwritten has not saved you effort; it has created a finding waiting to be discovered.

Traceability and serialization from batch to unit

Life sciences shares with automotive an unforgiving traceability demand, and then raises the stakes. You need full genealogy of a batch — materials, equipment, environmental conditions, the people involved — and increasingly you need it down to the individual saleable unit, because serialization requirements exist to keep falsified medicines out of the supply chain. A serialized pack has to be identified, tracked, and verifiable across the chain, which is a data and integration problem long before it is a labelling one.

The reason to care about getting this right in software, rather than in a pile of spreadsheets and PDFs, is that a real trace has to be queryable under pressure. When a quality event happens, the question is not whether the data exists somewhere; it is whether you can assemble the complete, defensible picture quickly, without a week of manual reconciliation that itself introduces the risk of error.

Serialization also has a way of exposing the weakest link in an operation, because a number that is generated in one system, printed on a line, verified at packing, and reported to a national hub has to survive every one of those handoffs unchanged. A single point where the identifier is re-keyed or reconciled by hand is where errors and delays concentrate. This is why serialization is best treated as an end-to-end data flow designed once, not a printer feature added at the packaging step and patched together with the surrounding systems afterward.

The lab and the plant have to connect

Most life-sciences operations run specialist systems already — a LIMS for the laboratory, instruments that produce their own data, manufacturing execution on the plant side, an ERP for the business. The value custom software usually adds is not replacing these; it is making them agree. A result in the LIMS, a batch record in manufacturing, and a release decision in quality should all reference the same reality, and the integration between them is where errors and delays actually live.

Integrating regulated systems is its own discipline, because the connections carry GxP data and therefore inherit the same expectations: validated interfaces, controlled data flows, and evidence that a number did not change meaning as it crossed a boundary. This is unglamorous work, and it is exactly the work that determines whether your quality team spends its time on judgement or on chasing discrepancies between systems that should already agree.

There is a human cost to getting this wrong that rarely shows up in a project plan. Every discrepancy between two systems that should agree becomes an investigation, and investigations consume exactly the scientific and quality people you least want doing clerical reconciliation. When integration is done well, that time goes back to the work that genuinely needs judgement; when it is done badly, your most expensive people spend their weeks proving that two numbers which ought to be identical really are.

Where the software runs still matters

Cloud is normal in life sciences now, but the questions are sharper. Where does the data physically live, and does that satisfy the jurisdictions you operate in? Is the environment qualified, and can you demonstrate control over it? For some workloads an on-premise or validated private environment is still the right answer, not out of nostalgia but because the control story is simpler to make and defend. There is no single correct deployment model; there is the one whose data-protection and control posture you can actually stand behind in an inspection.

Data protection compounds this. Health-adjacent and personal data carry the heaviest obligations under EU law, and a system that treats them casually is a liability regardless of how well it functions. Getting collection, retention, access, and residency right is part of the engineering, not a legal footnote added afterward. A system built with that in mind can answer a data-protection question with a design decision rather than an apology, which is exactly the position you want to be in when the question arrives.

Start with an assessment, not a platform

The failure mode we see most often is a team that either over-engineers — validating everything to the same heroic standard until nothing ships — or under-engineers, moving fast until the first audit turns into a crisis. Neither is necessary. Risk-based thinking, applied honestly, tells you where the rigor has to be maximal and where it can be proportionate, and that judgement is most of the value.

So we start by understanding your regulatory context, your existing systems, and where your real data-integrity exposure sits — and then we scope what to build, what to integrate, and how to generate the evidence as a by-product of building. A short, fixed-fee assessment turns that into a plan your quality and regulatory colleagues can review before a single euro of build budget is committed. In a domain where a wrong turn is expensive to unwind, that first careful step is the cheapest insurance you will buy.

Building for a validated environment?

A short, fixed-fee assessment reviews your regulatory context, your existing systems, and your data-integrity exposure, then scopes what to build and how to make the evidence fall out of the build.

Book a compliance-aware scoping call