Agile methodologies for software development offer a number of benefits for medical device companies. Here are some best practices for making the transition.
Clark Fortney and Rainy Mumper
Many industries and companies have seen the benefits to developing software using Agile methodologies instead of following a more traditional waterfall approach. In the highly regulated world of medical device development, there is sometimes hesitation by companies in adopting Agile methods for software development due to concerns over how process control and safety can be assured. Acceptance of appropriate Agile methods for medical device development by FDA is evidenced by the agency's participation in the development of AAMI TIR45:2012 "Guidance on the use of Agile practices in the development of medical device software." Medical device companies often follow a waterfall process at the project level and within the various product development disciplines such as systems, mechanical, and electrical engineering. Device development that follows a Stage Gate process can still benefit from the productivity gains afforded by an Agile approach.
|Attend Battelle's workshop on harnessing predictive analytics to design and develop medical devices at MD&M East on June 15, 2016.|
In November 2015, we participated in the Medical Device Agile Systems Development Process Workshop with the International Council on Systems Engineering (INCOSE) Midwest Healthcare Working Group, where we explored Agile systems development processes. During this workshop, a group of leading medical device companies met to share best practices used in their transition to increased use of Agile methods for product development. Some popular frameworks that medical device companies are using include Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD). We've used a hybrid of Waterfall and Agile scrum for software development that could be extended to other disciplines. Embedding an Agile lifecycle within a Waterfall framework takes planning to define the interfaces (e.g., coordination milestones) between other subteams and the higher level Stage Gate process.
During user and design inputs stages, a Waterfall process can be employed by the project team as a whole to fully flush out the overall device definition. The user and design input stage includes planning, safety risk analysis, requirements definition, and high-level architecture development. An initial set of software requirements are derived from the user and design inputs and used to generate software tasks and user stories to be included in the initial backlog for the Agile portion of the lifecycle that takes place during the design outputs stage. Requirements can be captured iteratively in the Agile lifecycle, but the initial backlog should be fairly complete to allow a high-level sprint plan to be developed. The sprint plan should lay out the functionality to be delivered for each sprint in the design outputs stage using project level milestones and integration points. A productivity tool such as JIRA from Atlassian can be used to manage the backlog and sprint execution.
Software development occurring in the design outputs stage can be structured using the Agile scrum model to incrementally develop software outputs including design, implementation, engineering verification, design documentation, integration, verification protocol development, and characterization of protocols. Mapping development activities to an Agile process is guided by the resources in AAMI TIR45:2012. Developing software for embedded devices requires more upfront architecture, design, and coding of an initial framework than more traditional software application development. This lends itself to a tailored Agile process such as DAD, where development is divided into three phases: inception, construction, and transition. DAD also suggests some useful milestones to coordinate between the subteams using Agile with other project activities.
In the inception phase of DAD, one or more iterations are performed until a stable hardware/software platform and supporting software development are established. Another useful reference for the inception phase is provided in the blog post Agile Project Initiation. Next in the construction phase, multiple iterations are performed to burn down the prioritized backlog until enough features are complete for a commercial product. In the transition phase, the final testing, tuning, and other preparations are made to release the product for production. For the transition phase, we generally move from Agile back to Waterfall for formal execution of software and system verification.
In summary, there are many resources available to support medical device developers as they transition to the use of Agile methodologies for product development. Subteams can use different development methodologies including Agile Scrum, Incremental/Evolutionary, and Waterfall that integrate with one another. Although subteams may follow different processes, subteam interfaces need to be well defined and milestones scheduled. This allows organizations to phase in Agile and provide greater flexibility across disciplines or functions.
Clark Fortney is principal electrical engineer for embedded systems at Battelle.
Rainy Mumper is senior software engineer at Battelle.
[image courtesy of 9COMEBACK/FREEDIGITALPHOTOS.NET]