The card sorting activity you organized with stakeholders across the emergency and IT departments was a hit. You were able to define a clear list of functional and non-functional requirements for a dashboard to better care for COVID-19 patients who are experiencing homelessness. Your hospital IT team is used to working according to “agile” principles and has begun talking about the best “software stack” to use, but you’re not familiar with what those entail.
In today’s post, we’ll review the third phase of designing and developing a dashboard to solve a real-world clinical and QI challenge. If you are new to the series, you can read our first two posts on problem identification and designing your dashboard. This post covers project planning, development cycles, as well as front and back-end development. As with other posts in our series, this post draws on Unity Health Toronto’s Data Science and Advanced Analytics (DSAA) team’s work developing a dashboard to care for COVID-19 patients experiencing homelessness as a running example.
Software Development Cycles
Traditionally, software engineering followed a “waterfall approach” that mirrored the linear, manufacturing process of an assembly line. A key limitation of the waterfall approach was that end users would not test the software until all functional and non-functional requirements in the specifications document were implemented—which ran the risk of no longer aligning with user needs and ultimately would be incredibly time and resource intensive to change. (1) In 2001, an alternative model of developing software known as the Agile Manifesto was proposed. (2) “Agile development” focuses on breaking a larger project down into manageable chunks (i.e., sprints), creating functional prototypes to deliver on functional or non-functional requirements, and iteratively improving these prototypes based on user feedback. Sprints are short, typically 2-4 weeks depending on scope. A key aspect of agile development is working to quickly develop a “minimum viable product” (MVP) that includes only the most important features and functionality required by end users in order to gather feedback to guide future sprints. (3)
Agile development is similar to plan-do-study-act (PDSA) cycles in clinical quality improvement (QI) as they are both iterative and incremental approaches to problem-solving. Both agile and PDSA cycles prioritize collaboration, flexibility, and responsiveness to change to achieve better outcomes. Since the overall goal of a dashboard should be to positively change workflows, it’s possible to embed agile development practices within PDSA cycles. (4)
Project Management Tools
The start of the design and development process is also an opportune time to set up your project management strategy to guide efforts within and across sprints. Effective project management can help deliver a dashboard that is on time, on budget, and meets stakeholder needs. There are many industry-grade, free tools to keep development projects organized (e.g., Asana, Github). Many of these tools also integrate with design tools, such as Figma, that allow designers to create wireframes or prototypes without any code.
A kickoff meeting can be an effective way to launch a dashboard project by convening key stakeholders and partners (e.g., developers, designers, and project managers). A successful kickoff meeting achieves several objectives: conveying the formal project launch to your stakeholders, identifying roles and assigning responsibilities, setting expectations for success, coordinating timelines, and assigning next steps—all within a series of planned sprints.
Building a Dashboard - choose your own adventure!
A technology stack is a collection of programs and tools that are used to create a fully-functioning software application. These programs and tools “stack” or layer together and developers can choose what they want to use in the different layers to attain their required functionality. There are two main stacks: the server-side stack and the client-side stack. The server-side stack is used to build the “back end” of a software application while the client-side stack is used to build the “front end”.
The front end of a software application refers to the part of an application that the user directly interacts with, often via a web browser on a computer or mobile device. The front end is interactive as it presents the application's content and handles user input. The front end of a dashboard should adhere to the design principles previously discussed in our second blog post to provide an intuitive and enjoyable user experience. Design sites such as dribbble provide extensive templates and inspiration for building effective front ends.
The back end of a software application is analogous to the underwater portion of an iceberg that is hidden from view but supports what is visible (i.e., the front end). The back end handles tasks such as user authentication and authorization, interfacing with a database (e.g., creating, reading, updating, and deleting key performance indicators), and processing user inputs from the front end. A well-designed back end enables a robust and scalable dashboard since it determines how efficiently it can handle user requests, process data, and deliver responses. The back end of a dashboard can be designed to interface with an organization’s data warehouse, automatically pulling data to update a dashboard on a pre-determined schedule.
Picking your stack
“You don't need a crazy, fancy dashboard that integrates with your EMR and pulls every hour and does all this incredible stuff! It could be a QR code to a simple Google Form… the only thing I will say is that every time we ask [clinicians] to enter data, it is time that is taken away from seeing patients and that's not good for patients, it's not good for patient flow, and it's terrible for the care workers…
(Dr. Carolyn Snider, Chief of Emergency Medicine, St. Michael’s Hospital, Unity Health Toronto)
There are many, many ways to build an effective dashboard. A simple, low-to-no code approach involves using Google Workspace or Microsoft Office. For example, data can be collected via Google or Microsoft Forms, stored in Sheets or Excel, and displayed in a dashboard using Looker Studio or Power BI. While easiest to set up, these options may have more limited customization options and automation capabilities. On the other end of the spectrum, there are many options for building web-based applications using stacks such as MERN. Intermediate options involve extensions of programming languages often used in scientific research, such as Dash for Python and Shiny for R. The choice of stack depends on the level of bespoke features needed, what tools can most easily integrate with your hospital or clinic’s existing IT infrastructure, and available resources (including developer support).
Now familiar with agile development, you work with the IT team and your project management intern to outline your first few sprints to design and develop an MVP of your dashboard over the next month. Key stakeholders in the ED are very excited to see initial wireframes and are glad that their feedback will be taken into account throughout the design and development process.
That’s it for the third post in our series about building your dashboard. We hope this gave you a good overview of project management, agile development cycles, as well as front and back-end development. Let us know what you think on Twitter at @Hi_Qui_Ps. If there is anything specific you would like to learn about, e-mail us at firstname.lastname@example.org. Stay tuned for our next post, the final post in our series, about effectively maintaining your dashboard!
Senior Editor: Lucas Chartier
Sacolick I. A brief history of the agile methodology [Internet]. InfoWorld. 2022 [cited 2023 Mar 1]. Available from: https://www.infoworld.com/article/3655646/a-brief-history-of-the-agile-methodology.html#:~:text=Agile%20was%20formally%20launched%20in,Working%20software%20over%20comprehensive%20documentation
Beck K, Beedle M, van Bennekum A, Cockburn A, Cunningham W, Fowler M, et al. Agile Manifesto [Internet]. Agile Alliance. 2019 [cited 2023 Mar 1]. Available from: https://www.agilealliance.org/wp-content/uploads/2019/09/agile-manifesto-download-2019.pdf
Platenberg S, Goldberg R. Create a minimum viable product (MVP) [Internet]. IBM Garage Methodology. [cited 2023 Mar 1]. Available from: https://www.ibm.com/garage/method/practices/think/practice_minimum_viable_product/
Jamieson T, Mamdani MM, Etchells E. Linking Quality Improvement and Health Information Technology through the QI-HIT Figure 8. Applied Clinical Informatics. 2019;10(3).
Milecia. Difference Between Development, Stage, And Production. DEV. 2019 [updated 2019 Aug 26; cited 2023 Mar 1]. Available from: https://dev.to/flippedcoding/difference-between-development-stage-and-production-d0p