How custom software is hurting your hospital
Hospitals face increasing problems with custom-developed software, from small data management apps to large data warehouses. This article explores the root causes, symptoms, and practical solutions for managing technical debt in Healthcare IT.
November 19, 2018
X min read
How custom software is hurting your hospital
Through the work that we do, we get to talk to a lot of hospitals about their IT and Decision Support initiatives, and their successes and failures. We've seen a pattern where hospitals are facing increasing problems with custom-developed software (internally created or by consultants) whether they are small data management applications or large data warehouses.
NOTE: Any custom application code, script, database, report, Excel macro, or analytical view that needs to be developed and maintained by the hospital is considered "software" within the context of this article.
Symptoms of the problem
- The majority of work being assigned to technical resources surrounds patching or fixing existing software rather than creating new value. As a result, new initiatives are not being adequately addressed.
- There are increasing complaints from technical staff that they don't understand the software that was developed by someone else and wind up wasting a lot of time trying to get up to speed. They often say the software was "poorly written".
- End-users lose faith in the reliability and data quality of the software and complain about increasing lead times to implement new features or fix bugs.
- The hospital starts looking for "magic bullet" software to purchase, or "training" to solve their problems.
- There is constant blame assignment, large unordered lists of parallel tasks assigned to people, staff turnover and/or low job satisfaction by the technical staff.
Once a tipping point is reached, it can have devastating consequences for a hospital and its ability to use its internal technical resources to help improve hospital operations. The result is an unwieldy heap of siloed software assets with no clear ownership or practical long term consolidation and management strategy.
Why the problem exists
- There are many facets of hospital operations and significant operational differences between countries (even provinces). Standardized software that addresses regional issues doesn't always exist for the hospitals to purchase. EHR systems often ignore specific country/regional idiosyncrasies that need to be addressed.
- In general, Healthcare IT is relatively immature, with inadequate attention to interoperability, reusable software/data assets, and proper data infrastructure.
- Some hospitals have a policy of letting vendors do all the development work while others have a policy of doing everything internally because they focus on the cost of vendors but not necessarily their value. Both approaches have significant drawbacks and a mix is almost always better.
- There is a massive shortage of qualified developers in Canada that understand the intricacies of healthcare data, which is a significant hiring problem for both vendors and hospitals.
- Stakeholders and managers may understand the business value of the software, but don't understand the necessity and experience required to create maintainable software. They get into deep "technical debt."

Once a hospital gets into technical debt, the only solution is to take a step back and undergo the costly process of rework (refactoring).
Things you can do to help
Manage risk
Small projects that build incremental value towards a larger, integrated infrastructure have many advantages. Make it clear to vendors if they don't meet their short term commitments, they'll be replaced for the next phase. It forces a team to come up with a structured plan with a stepwise approach, discrete deliverables, and modular components.
Manage the process
Make sure that a qualified project manager oversees development and uses a proper task management process to keep a finger on the pulse of the project. Find a development methodology (e.g., scrum, agile) that works best for your culture.
Delineate internal vs. outsourced work
Have a clear delineation between what is done internally versus what is always outsourced, and budget for it. Some tasks should be done internally, as vendor support wouldn't be practical. Some skills are not worth developing internally.
Re-evaluate the value of technical training
This is often an attempt to find that silver bullet to solve technical debt problems. For technical training to be effective it requires regular and ongoing application of learned concepts, which is often overlooked.
Assign individual ownership for software assets
Keep track of assets and maintenance plans in a central location. Outsource ownership and maintenance to vendors, where possible. This frees up your internal resources to do more important work.
Make maintainability a priority
Hospitals generally care about the usefulness of the software and gloss over everything else. If total-cost-of-ownership analysis, documentation, deployment guides, regression testing plans, and ongoing support plans are not part of every initiative, you're in trouble.
Consider breaking people into dedicated teams
Internal innovators often don't know a thing about proper software development but they understand the problem space and make things happen. We don't want to bog them down with the minutiae of making things production-ready, which should be the responsibility of another team.
A hospital is not a professional software development shop and likely doesn't have the internal experience to properly create custom software tools. However, creating software is a necessity for the foreseeable future and cannot be entirely avoided.
These are incredibly difficult problems to solve and good leadership, great processes, proper risk management, and an ability to critically self-evaluate are the only real immediate solutions.


