Building software in the cloud for the healthcare industry has many challenges. Between the complexity of patient data, stringent security requirements, and the expectations of modern software, the abilities needed are often siloed across different departments of a company.
This looks fine on an org chart, but if you want to move fast and build quality software, you need to break down those silos and build cross-functional teams. While this is considered conventional wisdom in many industries, it’s especially important when building healthcare projects using the Azure API for FHIR.
Why? Blurry Boundaries.
In the pre-cloud days, you could have an infrastructure team build a server, secure the network space around it, and let developers install their software onto it. Each silo could work mostly independently.
Fast forward to the modern cloud era, and it’s less well-defined where the infrastructure ends, and the software begins. Some things, like network boundaries, are obviously in the infrastructure realm, but with managed services and infrastructure as code, the server boundaries are less clear.
One example I’ve seen is roles and permissions. Roles and permissions in Azure have different scopes. Different Azure services also have different role structures and authorization schemes. In addition to being a lot to manage, it’s not entirely clear which departments should oversee these configuration items.
Another example is application configuration. In modern cloud-based applications, application configuration is often defined at the environment level, not with external configuration files. This means that the app configuration is part of the infrastructure deployment.
The boundaries between Dev and Ops aren’t the only blurred lines. Similar blurry boundaries exist between data management and domain knowledge. Healthcare is a complex industry, and no single person is generally going to understand all of it. Especially someone who must also maintain a pile of technical knowledge as well.
Feedback Loops
On FHIR projects, you need to be able to collaborate with folks across specialties. If those folks are on separate teams in different silos, you’re going to spend an inordinate amount of time waiting for responses.
For example, let’s say you’re an app developer and you need to change an app setting, which is stored in a Terraform code repository. Terraform is “infrastructure” and if you need to enter a ticket to request a downstream team to make that change for you, it’s going to be a slow turn around. This especially hurts when you’re trying to troubleshoot something quickly. You might need to iterate through several tries to get something fully tuned and if each iteration takes hours to complete, you’re going to have a rough day. Meanwhile, if the people who can make this change are on the same team as you (or you know how to change the settings yourself), you can make an iteration every 15 minutes.
Now consider the dozens of other configuration settings in a complex cloud application and you can see why you want people in the same team.
Common Goals
Separate teams usually mean separate goals. This is a classic problem in the DevOps space, and it’s multiplied when adding the additional roles needed to succeed as a FHIR team. If we get everyone pushing towards the same goal, progress is faster and there’s less conflict.
What Roles Are Needed?
A solid cross-functional team needs to be able to fulfill four roles, infrastructure, development, data analytics, and domain knowledge. A single person can cover multiple roles but aren’t likely to find a person who can do all of them. For example, someone could be good at data and the business domain, or you could have a developer that’s good at automation.
Infrastructure & Automation
FHIR solutions require many moving parts and occur in regulated environments. You need a strong infrastructure skillset to build the necessary network infrastructure, roles and permissions, and configure all of the different Azure services.
Application Development
Application developers spend their time doing data engineering tasks, like building functions to process data, and building the applications on top of the FHIR API.
Data & Analytics
There’s a ton of value to extract out of FHIR data and you need people who can maximize the value of that healthcare data. Azure Synapse is a common component in FHIR systems, and it unlocks a whole world of strong analytics tooling.
Domain Knowledge
Technical skills are necessary, but you also need healthcare domain expertise, so you can tie what you’re building to positive clinical outcomes.
Build a Great FHIR Team
Cross-functional teams are essential to success with the Azure API for FHIR Projects. Between infrastructure, development, analytics, and healthcare domain experts, everyone has a part to play in building excellent systems. We need to get everyone working from the same backlog and build strong lines of communication to succeed.