Our project technical review process: how Audacia delivers quality software
Tags: softwaredevelopment, technicalananalysis, teams, devops
Published: 2022-11-25 15:12:44

Each software project at Audacia has a dedicated team that performs the development, testing, and project management required for delivery. While the size and makeup of each team differs from project to project, all teams have a technical lead who is responsible for making important technical and architectural decisions.

Often such decisions are critical to the successful delivery of a project, impacting the performance, availability, and security of the final product. It is, therefore, essential that all options are considered and challenged before committing to an approach.

## What is the Project Technical Review Process?
Audacia’s project technical review process offers a sounding board for technical leads by giving them the opportunity to discuss their decisions with other technical leads who are not part of the project team. Each sprint, every technical lead spends a dedicated block of time with their technical reviewer to discuss any upcoming or ongoing technical challenges. Minutes from these meetings are reviewed periodically by Audacia’s technical leadership team.

Another responsibility of the technical reviewer is to examine an agreed number of pull requests over the duration of the development phase so that they can offer a holistic view of the codebase and the general direction of the project. While the technical reviewer may not share the detailed domain knowledge that the project team possesses, they will be able to offer an outside perspective and suggest general stylistic improvements.

## Benefits to the Technical Lead
The primary benefit of the technical review process is that it gives a technical lead confidence in their decision making. An example of such a decision might be which front-end technology to use for a website, or how to authorize and authenticate a user for a given use case. Making a choice of this nature is often a huge responsibility given the potential consequences.

A technical reviewer will discuss and challenge a technical lead’s thought processes long before they are committed to code. This process ensures that the pros and cons of each approach are considered before a logical conclusion is reached. The outcomes of such considerations are then documented for future reference which helps project teams consistently strive toward continuous improvement a fundamental principle of the Agile methodology.

The technical review process is also great for developer morale. With the confidence that their decisions are being discussed and approved, technical leads are less likely to feel isolated in their role. Additionally, any potential issues that may come as a consequence of these decisions are caught early in the process before any code is written, saving valuable development and testing time.

## Benefits to the Client
The benefits of Audacia’s technical review process are twofold: not only does it help the technical lead and project team, but it also reassures the client about the quality of the software being designed and delivered. The process holds the development team to account by ensuring that all company standards and processes are being upheld.

When reviewing pull requests, for example, the technical reviewer will ensure that Audacia’s coding and development standards are being adhered to. The coding standards are designed to encourage good software development practices and are upheld by all developers at Audacia.

## Other Benefits
Another benefit of the technical review process is cross-project exposure for lead developers. This is helpful in two ways.

Firstly, if another developer needs to run a new codebase (for example in the case of holidays or sickness), having a base-level familiarity with the codebase can be incredibly useful. Getting up and running with an unfamiliar codebase can often be challenging and time consuming, and while Audacia’s development standards help mitigate this by standardising syntax and design patterns, it can still be a troublesome burden.

The technical review process ensures the reviewer is familiar with the codebase and can offer guidance to other developers when starting on the project. This is particularly important when a project is completed and transitions from the development team to the TechOps team, who become responsible for ongoing application support.

Secondly, cross-project exposure helps improve knowledge sharing across the company. When developers encounter problems, they are required to think creatively. Sometimes the resolution to these problems is to use a new framework or library, or to use a new technology stack altogether.

Often, other developers will encounter similar problems, and so sharing these new libraries, frameworks and technologies can be incredibly useful. The project technical review process helps ensure these tools and technologies are not restricted to one project team and are instead shared with those who are likely to need them.

Additionally, cross-project knowledge sharing helps achieve consistency of delivery. As knowledge is shared more across projects, we deliver more consistently as best practices permeate to technical leads via the review process. This is particularly helpful when projects reach the end of development and roll into production support, because the project ownership is moved from the development team to Audacia’s TechOps team.

## Ensuring Software is Reliable and Robust
Our technical review process, alongside our development standards, our [manual code reviews](https://audacia.co.uk/technical-blog/our-guidelines-for-code-review), and our [Roslyn code analysers](https://audacia.co.uk/technical-blog/using-roslyn-analyzers-for-static-code-analysis), form part of Audacia’s quality controls all of which ensure the software we deliver is reliable and robust.

[Audacia](https://audacia.co.uk/) is a software development company based in the UK, headquartered in Leeds. View more technical insights from our teams of consultants, business analysts, developers and testers on our [technology insights blog](https://audacia.co.uk/technical-blog).

This article was written by Audacia senior software developer, [Jonathon Olesker](https://www.linkedin.com/in/jonathanolesker/?originalSubdomain=uk).