Skip to content

Design Controls: Approvals with Azure DevOps

Overview

We are recommending that product development teams update their design plan with either a revision to the design plan or a DCR to the following process for design control approvals. At some point in the future we hope to have this incorporated into the official LDC processes that are impacted for software. The changes we are recommending in the following process are specific to an implementation in Azure DevOps for software development teams.

Process

The process for design control approvals will occur in Azure DevOps using a combination of two techniques – Pull Requests and Review work items. Pull Requests will be the primary vehicle for review of any asset that can be tracked by the version control system (repos within Azure DevOps). A Pull Request meets Part 11 compliance requirements for digital signatures and maintains a permanent immutable history of the reviews and approvals of work performed. It supports multiple signatures, comments on issues and their resolution and documentation of the work performed.

We assume that all people working with Azure DevOps are fully trained and understand the process of design controls, required approvals and their role on any work. When an individual signs a pull request they are signing it for an assumed role unless otherwise specified. They also understand the type of content associated with the pull request (e.g. code, verification, specification); therefore, their signature indicates one or more roles have been fulfilled. The following is the matrix of default signature roles based on work submitted.

The information contained in the following table is per design control processes as defined by CI TDC Product Development Process, DOC000689.

Process Story / Design Control Element Quality Record Pull Request Role Design Controls Approval Role
Create Design / Design Design Output Specifications Author Design Engineer
Reviewer Technical Leader
Traceability Matrix Author Design Engineer (author)
Reviewer Design Engineer (peer)
Software/Firmware Code Author Design Engineer (author)
Reviewer Design Engineer (peer)
SW/FW Build Record Author Design Engineer (author)
Reviewer Design Engineer (peer)
Create Design / Design Verification Verification Plan Author Verification Engineer
Reviewer Technical Leader
Verification Report Author Verification Engineer
Reviewer Verification Engineer
Traceability Matrix Author Verification Engineer
Reviewer Technical Leader
Create Design / Method Validation Method Validation Record Author Method Validation Engineer
Reviewer Method Validation Engineer
Close Design / Design Transfer Software Release Record Author Design Engineer
Reviewer Technical Leader
SW/FW Release Engineer
Reliability Engineer
SOUP Item List Author Design Engineer (author)
Reviewer Design Engineer (peer)
Software Bill of Materials Author Design Engineer (author)
Reviewer Design Engineer (peer)

Review Work Item Type

For any work that does not follow this assumed approval role relationship or doesn't modify assets in azure devops repos that can be version controlled the review of the work will be performed with a custom work item called a "Review" work item. The review work item is a copy of the "Task" work item in the Azure DevOps Agile template with one additional change it contains a drop-down of all the LDC roles. User stories that require special or uncommon reviews will add a "Review" task to the story and assign it to the reviewer to perform the needed review. This additional "Review" task can be associated with a pull request if the custom review was related to version-controlled assets or just the story if not.

Pull Request Documentation

Good documentation practices are needed on pull requests as they are used as quality record reviews within Azure DevOps. It is possible to have more than one type of quality record in a single pull request. While this is uncommon it can happen and when it does it is important to provide the reviewers guidance on what they are reviewing. It is recommended inside the pull request to add an prominent section describing the quality records under review. The following is an example of that text for a pull request that contains both a specification and some software code.

Note: Contains Quality Records * Component Specifications * Software Code

Multiple reviewers per convention

If an LDC role calls out multiple reviewers for a quality record. You can @mention and tag the documentation for which role each user would be signing for but this should not be the norm. Only use this format of documentation if the LDC quality record has unclear reviewer roles per our convention. It would look like the following:

Note: Contains Quality Records * Component Specifications (@Bohannon, Kandyce as Verification Engineer Role, @Leska, Paul as Engineer Role Peer) * Software Code

If teams want to provide common review guidance in pull requests the Azure DevOps system provides a way to create pull request templates. These templates can have check-lists to provide guidance for their team members.

Reporting

The Energizers team has shown that we can build a report that lists all pull requests (PRs) in each project in an organization. That work is documented in this repo. For each PR, the report includes the work item that was linked to the commit, who reviewed it and when.

This report can be created and accessed by running the project's pipeline as described in the readme of the main repo. When the pipeline completes, the excel spreadsheet is published as an artifact that can be downloaded by anyone with access to that artifact feed.