Agile Development Medical Device Company
Agile Development Medical Device Company
receives sound from the environment, encodes IEC 60950-1 Information technology equipment - 2005 Guidance
it and transmits it via an RF link to the Safety - Part 1: General requirements
ANSI/AAMI/IEC 62304: Medical device software - Software life 2006 Guidance
receiver/stimulator 2006 cycle :processes
The cochlear implant system interfaces directly with ANSI/AAMI Medical Device Software – Software Life 2001 Guidance
SW68:2001 Cycle Processes
the human nervous system. Therefore the electrical
impulses have to be customised to the nervous system
To ensure compliance to these standards and
of the individual. This “customisation” is referred to
therefore that our implants are safe and effective
as “mapping” and is done by audiologists that
Cochlear’s development procedures and quality system
specialises in cochlear implants. This is where the
are audited on a regular basis. Cochlear has developed
software enters the picture.
its own product development process, shown in Figure
1. This process is based on the V-model. The V- Scrum (the process developed by Ken Schwaber and
model is often used in regulated environments and is a Jeff Sutherland) was going to be the best fit for our
type of waterfall process. enviroment. It just made sense!
The process shown in Figure 1 is the one that was At that point the software development group was
used for software development, which is why the phase working on the third version of the “mapping”
dealing with the manufacturing process development is software and just starting a new project to improve
crossed out. Cochlear’s diagnostic software capability.
Scrum was introduced to both projects at the same
Project Definition/ Launch Product Definition/MAT System Development / Design/Verification Process Development/
Procedure Procedure Integration Procedure Procedure Verification
I40162AE E11429AE N94194AE I40165AE N94196AE
T1 T1a T2
Pilot
T5 T4A T4 T3
Sustaining Unit Test & Process
Engineering
Figure 1:Cochlear’s Design Control Process for 4. Challenges to the introduction of agile
software
Organisational challenges
A detailed description of this process is beyond the
scope of this paper. Suffice to say that it consists of Perhaps an important aspect of why Scrum was
formal definition, design, implementation, verification successfully adopted at Cochlear, at least within the
and validation phases with a sign-off between each of software development group, was that it was driven
the phases called a Tollgate. from senior management. Admittedly a lot of lobbying
went on and it was not immediately accepted as it was
3. The Introduction of Scrum largely seen as a process with short term goals and did
not cover the longer term business objectives and
In 2001 the software development group began timing needs. It was really an educational process
adopting some Agile development practices, supplemented by high visibility on the execution.
implementing a small number of changes at a time in Senior management and the software teams
an attempt to increase the chances of success within a encouraged people from around the organisation
waterfall organisation. Practices such as automated encouraged to attend Daily Scrum and Review
nightly builds, peer reviews, unit testing and others meetings. The business started seeing benefits in a very
were instrumental in the improvement of product short time and soon Scrum became a word that was
quality. The group also introduced the refinements ubiquitous within the R&D division.
shown in Figure 2 to the DCP process in an effort to
make the design and verification phases less Process challenges
monolithic and more iterative.
T1A T3 The medical devices industry is regulated by a
Feature 1 Specify Design Develop Test
number of regulatory bodies of which the FDA is
Feature 2 perhaps the best known example. For these bodies it is
Feature 3 extremely important to be able to see that the system
Feature 4
you are developing is safe as well as effective for its
Feature 5
Feature 6
intended purpose. As a company Cochlear™ has a
very good reputation based on its quality system and
Feature N its track record. Cochlear’s quality system is based on
Figure 2: Software design, implementation and Good Automated Manufacturing Practices (GAMP)
verification guidelines, the same as commonly used by
pharmaceutical companies. These guidelines require a
large amount of documentation and extensive
The benefits of these changes were obvious and
component, system, product and process verification
were welcomed by the organisation. Software
and validation.
products were far more robust than before but there
Other issues that faced introduction of Agile
was still something missing. “Feature creep” was still
practices at Cochlear were:
quite prominent and schedule slippages were
commonplace. After some further research into Agile • the disparity between using an Agile
development practices, the group decided in 2005 that methodology in the software department versus
using a waterfall/iterative process throughout
the rest of the organisation Product Definition/Product Validation
• the identification of the recipient safety aspects
of a product and the mitigation of such risks in In this phase the first conflict between the classical
a structured and traceable way Scrum approach and our highly regulated environment
• managing the evolution of requirements in a became evident.
traceable way Traditionally we provided the validation team with
• the long validation cycles required to validate a Use Case document. The validation team used this
the marketing claims and ultimately the user document as the basis of their validation protocol. The
requirements Use Case document contained all the functional
• the extensive manual verification testing requirements. This document was supplemented by
required to verify that the electrical stimulation the Software Requirement Specification (SRS) which
of the implant under software application detailed all the non-functional requirements. After
control is within safe limits validation the reports generated by the validation team
• device drivers with a large amount of legacy along with the documents described above were
code that was neither unit tested nor conducive provided to the regulatory bodies as evidence of the
to any other type of automated testing. product meeting its safety and efficacy requirements.
We could not replace this process with disposable
5. Using Scrum for the CS19 project requirements, as recommended by Scrum. The
alternative had to show the same traceability as the
In this section I will present how Scrum was original approach while allowing the evolution of
introduced for the CS19 project. I assume that the individual requirements.
reader is familiar with the Scrum process. For a good We decided to adapt the User Stories concept used
introduction to Scrum we recommend “Agile by Extreme Programming (XP) as described by Mike
Development with Scrum” by Ken Schwaber [4] Cohn [1]. These User Stories needed to be stored
I will show how we mapped Scrum to the DCP and electronically in a fashion that allowed easy access to
I will point out the challenges still remaining. In the individual stories but also provided the ability to
next section I will introduce the tools that we used and generate reports showing each User Story or Constraint
explain how we adapted these to fit our purposes. and how they related to a validation activity.
As a start we only identified enough User Stories
for the first two development iterations.
Project definition/closeout We realised that we would not only have to evolve
our product requirements but also our process as we
In the first phase of the project we followed the
went along.
procedure mandated by the DCP. We developed the
business case and a project management plan where we
described the development process we would be Design, Implementation and Verification
following. The quality system allows for deviations
from the development process described in the DCP During the first few iterations we aimed to deliver a
provided the deviations is defined and justified in the slice through the entire system that could be used to
project management plan. Additionally it had to be start investigating the feasibility of the concept on
approved by the Quality Division. To obtain approval which the product was to be based. Having done just
we had to show that we would still adhere to the levels enough architectural design to identify the major
of traceability, verification, risk mitigation and system components, development started.
validation required by our quality system and the Almost immediately another big challenge became
regulatory standards. apparent; since the system needed to interface with
Scrum was justified as an appropriate process for external hardware, most of the safety testing had to be
the project based on the high level of uncertainty done manually. Because we only consider a User
associated with the capabilities of the measurement Story completed once it was implemented and tested, it
technology that we were using in this product. proved to be impossible to complete a User Story
The main issue in this phase was setting the within a Sprint (four weeks at this point). Initially we
timeline as all our estimations and experience were tried to circumvent this issue by allowing the testing of
based on a different development process. The a User Story to happen during the subsequent Sprint
timeline ended up being very far off the actual project while the developers worked on something else. As
duration; one thing that we are still struggling with. most of those experienced in Agile will know, this
proved to be a bad idea. Stories that were supposed to document and mitigate the risks by adding a section to
be done kept creeping back by way of bugs into the the tests to exposes the risk, in the form of a failing test
backlog and this quickly started to seriously degrade and then ensures that the risk is contained by getting
our velocity. the test to pass. Where this could not be done the risk
A difficult decision had to be made at this point; do was again added as a constraint to the product backlog.
we spend a significant amount of time automating the
testing or do we keep on going the way we are? We 6. The tools we used
decided to automate a part of the manual testing, the
data analysis, but not the rest. A project which started Requirements Management
a few months after the CS19 project subsequently
managed to successfully automate the entire manual We started off using CaliberRM® from Borland
testing process, a significant but ultimately worthwhile (http://www.borland.com/us/products/caliber/rm.html).
effort. This proved to be too hard for the developers to
We also decided to introduce the developers to Test navigate as it was very different from the tools they
Driven Development (TDD) using the Framework for were used to, viz. Attlasian Jira and Confluence
Integrated Tests (FIT) developed by Ward (http://www.atlassian.com/). Thus we transferred all
Cunningham [2] for the acceptance tests and NUnit for the requirements over to Confluence, making use of
the component/object verification. At some point some advanced macros to allow the generation of
during the process the hardware testing load started reports. Each User Story had its own Confluence page,
dropping and we shortened the iterations to two weeks. and consisted of three sections:
Finally Scrum really started showing its strengths. • the summary, containing the estimate, priority,
For tracking issues we used the standard procedure status and description of the User Story
of adding these to the product backlog along with the • the discussion, containing the minutes of any
new features. We used a fairly formal change control discussions around that User Story as well as
process for prioritising issues. The advantage to the any mock-ups, models and designs associated
formal process was that it ensured that we spend the with the User Story
time and effort required to understand every issue and
• the tests, containing both the manual tests and
its implications, as well as allowing us to spot trends
the automated tests associated with the User
that might point to underlying problems early.
Story.
The clinical validation still had to be done manually
Using advanced macros the relevant sections can be
but through iteration and extensive bench testing we
extracted for reporting, regulatory and dissemination
managed to ensure that the validation only provided
purposes.
confirmation that all the requirements had been met. It
Developers use the Jira issue tracking system to
was possible to decouple the clinical validation to a
manage and track the tasks associated with every User
large extent from the development by increasing the
Story, these tasks are linked on the one side to the User
amount of bench validation.
Story and on the other side to the source code through
our version management system, Perforce
Risk Management (http://www.perforce.com/).
Risk management is important in any industry and
Acceptance Testing
especially so in medical devices. Initially we tried to
manage risks according to the DCP. The DCP requires
We started off using the FIT framework for
a hazards analysis to be created during the product
acceptance testing but it proved to be difficult to
definition stage and then updated at major milestones.
integrate with our other systems and we were hesitant
This approach was not very successful as we were
to start using another completely separate tool. After
trying to determine risks on features that were not yet
some searching we found the Greenpepper framework
well defined. As an alternative we split the process
by Pyxis Technologies
into two stages. We identified high level system risks
(http://www.greenpeppersoftware.com/en/), which
during the initial phase of the project and added these
while using fixtures very similar to FIT, allows
as constraints to our product backlog. Any other risks
seamless integration with Confluence.
that became apparent during development we also
Our process evolved to the point that developers
added to the backlog. Then we identified, for each
together with the verification engineer would write the
User Story, the relevant risks at the point where we
acceptance tests in Confluence. Developers would
moved the User Story from the product backlog to the
then write the unit tests to express their design intent
Sprint backlog. For these User Stories we tended to
after which the code was written to first pass the unit first time, as we only allow enough story points to do it
tests and then to pass the acceptance tests. In this way once.
we managed to get rid of manual testing in almost all I like the suggestion by Alistair Cockburn that we
areas of code. allow the user to see the software twice and request
changes before considering a User Story as done. For
Project monitoring and control more information see [3].