Digital Healthcare Innovation
Making Agile Development Work for Digital Health Technology
As healthcare continues to evolve, software plays a growing role in every level of the industry from medical device startups, to healthcare payers and providers, to the World Health Organization. Software has allowed us to track illnesses on individual and population scales, reduce paperwork for clinicians, and create transparency in care for patients, leading to better and more efﬁcient care. Today many healthcare organizations understand the beneﬁts of software and seek to build or outsource the development of their own software.
The simplicity of older software allowed for piece-by-piece development, however as the world’s technology landscape began to change, the older Waterfall methodology of software development failed to keep pace. It failed to offer the ﬂexibility needed in industries, such as healthcare, that had increasingly complicated workﬂows and data architectures along with rapidly evolving regulations. Waterfall methodology’s unidirectional process also meant most requirements had to be deﬁned before starting development, and it compounded the risk of errors in increasingly complex software towards the deployment phase—rather than spreading the risk evenly throughout the development process.
This gave way for Agile software development, the methodology used by most development shops today. Although Agile methodology has its own limitations, this position paper will demonstrate that when properly applied with industry focus and mature processes, Agile software development presents a great iterative process for delivering software for healthcare given the right team, industry domain expertise, and properly aligned incentives.
This article walks you through beneﬁts and pitfalls of using Agile development in the evolving, complex healthcare industry
What is Agile?
When the old Waterfall methodology of software development started to lose prevalence, a new method of software development began to emerge. Though it had been applied since the 1990s, Agile software development was formally created in 2001 as a methodology that emphasized working closely with clients and being highly adaptable. The Manifesto for Agile Software Development, which coined the term “Agile,” declared that software development should prioritize:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The methodology took the more rigid process of Waterfall software development (conception, initiation, analysis, design, construction, testing, implementation, and maintenance) and replaced it with Agile’s sprints. Each Agile sprint involves the completion and testing of one component of the ﬁnal software.
The Agile software development process better accommodates changing requirements and feedback during the development process without the need to start over or slow down development. Whereas Waterfall required everything to be deﬁned in the beginning, each Agile sprint presents an opportunity to incorporate development process or product feedback and to release a working component rather than waiting for completion of the full software. Releasing in sprints exposes bugs in each component early on, spreading the risk of bugs throughout development and preventing errors that result from the compounding of multiple bugs. Agile’s emphasis on people also leads to better communication with the client, ensuring end user requirements are met. Since 2001, the methodology quickly became the norm for software development and can be found in companies including Google, Facebook, and Salesforce.
In healthcare, the use of Agile software development tends to be especially prevalent because the beneﬁts listed above mediate the high level of complexity and risks in the industry. Agile deals with the complexity from changing regulations and requirements by emphasizing client involvement; amplifying the client’s voice ensures the development team knows how the software will be used in the client’s systems and what pieces are needed. Agile sprints also address interoperability, an issue currently rampant in healthcare, by building in working modules which can be individually incorporated into different client systems based on their needs. Lastly, because software in the healthcare industry deals with conﬁdential information and the lives of patients, bugs in the software are especially detrimental. Spreading out the risk of bugs increases their visibility and avoids the compounding of errors which can prevent drastic events and helps software meet the standards of the healthcare industry. The ﬁgure below shows the gradual decline in risk in Agile projects versus the steep increase in risk during the important latter stages of a Waterfall project.
INTERESTED IN BECOMING A SYMPHONY LABS INNOVATION PARTNER?
The Limitations of Agile
Although Agile is better suited for the healthcare industry than older software development models, the complexity and risks of the industry expose weaknesses in this methodology as well.
Without a proper understanding of healthcare, Agile software development presents mostly short term ﬂexibility. For example, the data architecture of healthcare software needs to anticipate future uses and maintain data security in the face of changing guidelines and regulations. For a development shop that doesn’t understand healthcare and follows the Agile mantra of rapid delivery, data architecture may seem secondary and designed to suit current requirements rather than a changing environment. Further, Agile does not emphasize documentation which can be limiting when switching development shops or focusing on interoperability. The need to modify existing software, without the proper documentation, often results in rewriting large portions of code, spending additional resources, and posing extra downside risks.
Agile’s emphasis on client involvement can also lead to increased strain on both the developers and the clients, particularly when the developers are not familiar with healthcare technology uses and regulations. The ﬂexibility that stems from a lack of set-in-stone requirements requires that communication be precise. It is quite easy for a client that assumes developers have a basic understanding of the healthcare industry to overlook important details in the product development process. The result can be software that reﬂects the Agile trap of prioritizing development over planning and does not reﬂect the workﬂows or standards of healthcare.
Despite potential shortcomings, Agile software development can be used for healthcare. Mature organizations, recognized by their discipline and experience, can overcome the above limitations of Agile by complementing their focus on Agile software development with other key ingredients.
The Right Approach for Healthcare
While working with dozens of health systems over the course of two decades, Symphony found an approach to software development that utilizes Agile while overcoming the limitations. By combining an industry focus, matured processes, and unique payment models, Symphony shows that Agile can be used to build software that meets the high standards its clients in the healthcare industry are held to.
Industry Focus and Experience
Development shops focusing on a single industry have domain knowledge which improves predictability, processes, and contribution for the client. Predictability starts with past experience; having done similar projects yields more accurate estimates about the time and effort required for each sprint in future projects. Domain knowledge further boosts predictability, for example, through knowledge of third party tools that can be integrated into a developing software. An industry focused development shop also yields a smoother process; familiarity with industry jargon and regulations means client and end user requirements are better communicated and focus can remain on the design rather than ﬁlling gaps in domain knowledge. Lastly, industry focus means bigger contributions from the development shop for both the client’s product and the client’s business. Experience from past projects and domain-speciﬁc knowledge enable a development shop to contribute to their client’s product beyond the code. By using knowledge of common issues and industry workﬂows and by accessing end users from past projects for feedback, the developers can contribute to product design. Often end users contacted for feedback by the development shop are potential clients as well.
Mature processes, made up of necessary documentation and specialized teams, lead to decreased strain and risks for the client. Although documentation is less emphasized in Agile, a matured process still requires documentation albeit only for components of the ﬁnal product and only the necessary amount. Documentation used as such decreases rewriting and turnover risks for a client while maintaining the speed of Agile. As requirements solidify or client feedback is incorporated between sprints, the likelihood of having to rewrite large chunks of code is reduced since crucial parts of the software are identiﬁed. The client is also better served during turnover of the software as having documentation removes the guesswork of editing existing software for future developers, whether in-house or from a different development shop. Knowledge of what to document comes from having a specialized team, a team that has worked with Agile methodology in healthcare and can help you anticipate the changes that might be necessary for the client’s software. Since Agile methodology is intensive on the people resources of both the development shop and the client, an experienced team also ensures less time is spent sorting through logistics and decoding jargon and more time is spent focused on developing the software.
Symphony’s own process, used across the entire healthcare software development cycle, has earned a CMMI Level 4 rating and is great example of a mature Agile process. Through proper documentation coordinated by an experienced team, Symphony successfully built entire products including a fully-scalable population health management solution for HighFiveRx and a next-generation telemedicine platform for Intellivist. The process has also been used for individual parts of the development cycle including updating both the aforementioned products with new features, creating a mobile platform for the latter, and in the Extended Development Center model used by Inﬂuence Health. In this model, Symphony provides Inﬂuence health with a dedicated team, trained in our process, to assist with software customization for different clients, meeting HL7 data loading standards, and maintaining data quality.
Proper Risk Alignment
A number of payment models ensure proper risk alignment between the development ﬁrm and the product stakeholders. A ﬁxed-bid, milestone-based payment model allows the client to deﬁne value, which is especially important for a predictable full-cycle development process. By allowing the client to deﬁne milestones, the process becomes more predictable, as the client knows what they are getting for each dollar they spend. Also, importantly, the vendor sees its own risk clearly from the start, and assumes said risk alongside its client.
An Extended Development Center (EDC) model offers a dedicated team, with each resource available at a ﬁxed monthly seat cost. This dedicated team can handle anything from a single development function like testing to the creation of a new feature or module—or even the entire product throughout its life cycle. In this model, the EDC team works as an extension of the client team. Meanwhile the EDC vendor manages all of the sourcing and onboarding of resources, as well as the rent, systems and network support, and other costs associated with supporting the team. Due to the competitive ﬁxed price for each engineer, tester, or UI designer on the EDC team, the vendor becomes acutely aware of the risk it’s sharing with its client.
The beneﬁts of Agile software development must be leveraged in healthcare due to the high complexity and risks inherent to the industry; further, the limitations of Agile must also be addressed in order to properly mitigate project risks. Keys to successfully integrating Agile include applying deep industry domain knowledge, mature development processes that do not neglect documentation, and payment models that align incentives according to a true partnership model. Choosing a healthcare-focused development partner creates a more predictable development process and extends the contribution of the development shop beyond coding and into intelligent product design—from proper data architecture to clinically appropriate, user-driven, front-end design. Also, proper documentation from an experienced organization and capable team of developers both harnesses the ﬂexibility of Agile and mitigates the inherent risk of maintaining products well into the future. Lastly, accountable payment models provide the incentives necessary to bring client and vendor into a true partnership arrangement. While it is often said that vendors should be seen as an extension of the client team, reality only lives up to this promise if the vendor is held accountable through some form of risk-sharing model. The overlapping circles in the ﬁgure below represent the intersection of these key traits which are, in Symphony’s view, the best ways to harness Agile while also minding some of its pitfalls. Where only two circles intersect, a health system or software vendor opens itself up to undue risk in either value of the ﬁnished product, timeliness of delivery, or both.