The Dawn of Agile Development
How has your software testing operating model changed during the last five years?
Founded in 2011, Cleveland Clinic’s Clinical Solutions Center (CSC), comprised of clinicians, software developers and analysts, works closely with clinical caregivers to develop state-of-the-art technology solutions across the enterprise to enhance patient safety and workflow efficiencies. Our strategy is to provide caregivers with innovative solutions that bring the most value and align with the strategic initiatives of the organization. Our goal is to ensure that these technology-supported applications are not simply solutions we push to clinicians, but rather solutions developed by clinicians to meet their specific needs, and enhance the quality of patient care they deliver each day.
In last five years, we have adopted some agile software development methodologies that allow us to deliver solutions to our customers in rapid iterations with frequent testing and assessments. As opposed to the sequential, non-iterative waterfall developments and big bang go-lives that were done in the past, agile development allows for constant feedback from our customer. Typically, the Minimal Viable Product (MVP) is provided in the first release to meet initial customer requirements. As collaboration between teams continue, the MVP develops into a more comprehensive solution, based on constant feedback from our customer.
After each new release, customers test the software according to specific frameworks. We then continue to adjust our solution until they tell us it best meets their clinical objectives and requisites. Customers no longer have to wait until the end of a component of work or project to begin testing.
Software testing technology and the innovation around it is a major aspect of the evolution of our practices
Developers and quality analysts (QAs) are on the same team in the CSC. This high velocity development model commonly results in faster deployments, more effective solutions and greater customer satisfaction throughout the entire development process. It’s also a more reliable way to deploy software, detect early defects and rollback as needed.
What set of skills do you think is required for the technology leaders to be successful in the new approach to software testing?
Some examples of the Clinical Solutions Center’s technology solutions which have been developed according to the new high velocity/agile approach to software development and testing include:
• Iris Mobile, which enables clinical caregivers the ability to view important patient data contained within the electronic medical record securely on their mobile device, transforming Cleveland Clinic mobile devices from advanced communication devices to essential clinical tools.
• eHospital, a remote patient monitoring operation center located at a remote facility within Cleveland Clinic’s Main Campus that allows clinical caregivers to keep a close eye on the sickest ICU patients and respond to them faster, to reduce length of stay and prevent codes from happening.
“Quality assurance for clinical software solution testing has been a great asset to the eHospital project. By adding an additional layer of QA testing, we are able to put a more robust product in front of our customers. The agile testing has also helped us identify issues in the production version of the platform that will ultimately enhance the user experience. Recently, I have been included in the communication with key vendors for troubleshooting purposes. This provides a single point of contact for the vendor and the project team for non-critical business day issues, and takes the pressure off of the core clinical project team so they can continue to focus on their area of specialty.” - Dipika Patel, Quality Assurance Analyst, eHospital team
Our experiences in developing valuable clinical solutions using this approach has giving us insights into what we believe other IT leaders can do to find similar success in this new landscape:
• Create defined testing standards and policy based on the complexity of release
• Help all teams understand this is a continuous improvement process
• Define strong protocols around release and change management so work is virtually seamless for the customer
• Develop specific roles dedicated to testing (the developer should never be the final tester)
• Partner with the customer/caregiver on clear requirements and long term concepts, developing road maps for review by all key stakeholders
• Be a part of the approval process and the review of change to ensure it meets customer needs and causes no adverse impact
• Provide closure for the customer and continue to follow-up as needed
• Hire people who find passion in doing things the right thing, but with the agility we all expect as consumers.
Additionally, we believe leaders should establish stringent testing guidelines including:
• All quality assurance (QA) testing must be done in a pre-production environment. It’s much more cost effective to fix any issues in pre-production than in production.
• The pre-production environment must mimic the production environment in order to allow any issues to easily be discovered and resolved prior to go-live.
• Every software product must follow a complete and consistent QA software testing cycle.
• QAs must ensure all product requirements have been tested correctly by adopting various types of testing skills such as database testing, functionality testing, integration testing, end to end testing, etc.
• Developers should run quality assurance tests in addition to the QAs. This may be done informally, but developers should be expected to test new features throughout their lifecycle.
Which growing or future software testing technology innovation are you personally excited about?
The Clinical Solutions Center is excited about a number of future software testing technology innovations. As agile software development gains popularity, there will be increasing transparency for the end user, who will be engaged in the design, testing and revisions from the outset.
We are excited about the increasing emphasis on continuous integration and continuous deployment (CI/CD). In addition to automated builds, regression testing and deployments, we can also dynamically generate release notes and documentation, resulting in greater efficiency overall.
We frequently hear a lot of chatter over the cubicle walls in our area. These “come take a look at this” moments allow us to help one another and share constant feedback, instead of waiting until a feature is completely done or an official meeting is scheduled. These conversations can also generate a lot of excitement among our team members.
Software testing technology and the innovation around it is a major aspect of the evolution of our practices. However, an additional key piece is the cultural business/customer understanding as we quickly adopt agile development methodologies. As we work with new and existing customers who may be used to the old ways of doing things, there are prime opportunities to share this transformation and the value of moving high velocity development forward.