Traceable Project Development With Azure DevOps

Tim Palmer

Within our Innovation Delivery (ID) team we specialise in the design, development and delivery of custom software. Our Health and Research sector clients often operate in regulatory environments with additional auditing obligations to meet in terms of traceability within their custom software tools (including item history, item tracking, issue tracking). To support them better, we selected the Microsoft Azure DevOps tool chain for software development, which is fast becoming a project-critical piece of kit within all of our development work.

We know our clients often need to get their ideas to market quickly. Therefore, we have built systems to create and deliver high quality custom software efficiently. DevOps has enabled us to offer greater end to end traceability from task to test and beyond, and our process is compliant with ISO 13485 and IEC 62304 – the standards to be met when creating Software as a Medical Device (SaMD).

One key benefit Microsoft Azure DevOps delivers is integration. From the Git repository as the secure place for your source code, to the highly configurable task tracker indicating task status, to the vital code review tooling ensuring your code works to brief – plus the automated features in the Continuous Integration (CI) /Continuous Delivery (CD) pipeline, means it is all here, in one place.

The Azure Boards task tracker enables us to manage our internal stakeholders, as it can support three levels of a Work Item – Epic, Issue and Task. These categories offer our Account Managers, Project Managers and Developers the information they need tailored to their project responsibilities. When planning a development sprint, we prepare the task list within the task tracker to create a clear and detailed instruction to the development team, optimising our productivity on every CD cycle.  The task tracker is more than just a list – it can act as a dashboard with Description, Discussion, Planning, Development and Deployment schedules displayed for each task for the team to view and to act.

The Azure Repos git hosting includes pull requests, which we use to code review our code. We believe reviewing each other’s code ensures quality code, but also provides the ability to learn from each other.

The Azure Pipelines automated build tool, runs our coded tests whenever we update the code. These tests are much more frequently than any manual testing processes can be. Increasingly we’re using this tool to deploy our websites too, which has allowed us to deploy more frequently.

The Azure Test Plans module allows us to create test plans and track the results of any execution of a test plan, which is an important part of our software verification report on a SaMD project.

Being able to trace the iteration of each line of code from component level to system level to requirements (and in both directions) is key to SaMD reporting. We have developed a custom requirements-tracing export tool which we use to produce documentary evidence of development, reviews and testing, all linked back to the software requirements.

We verify our custom software so that it meets all requirements and is ready to be validated in a real-world clinical setting if required by our Health and Research sector clients. With DevOps we can provide integration, automation and configuration capability for both software development and deployment. From design to writing code to quality review to testing to deployment, DevOps empowers our team to deliver quality software quickly. Our custom traceability exports enables to bring these advantages to all projects that require regulatory documentation. This is why DevOps is a key part of our toolchain.

For more information and some tips and tricks for using Azure DevOps, please visit the links below:

  1. https://microsoft.github.io/AzureTipsAndTricks/blog
  2. https://medium.com/esker-labs/6-tips-you-should-know-before-implementing-azuredevop-pipelines-fe3d36503f7d
  3. https://azuredevopslabs.com/
  4. https://docs.microsoft.com/en-gb/azure/devops/