Video Hearings, Ministry of Justice
London, UK, since September 2018
The Reform Programme is a huge undertaking of the UK government to bring the justice system up to speed with todays technology.
A part of the Reform Programme is the Video Hearings Project. The goal is to reduce costs and make justice more accessible by removing the need to travel to court.
The project wraps a third party video provider to give a full end to end user experience of the digital hearing. The product involves many parts before even getting to the hearing. Users are invited to the service, trialled for suitability and familiarised. Well on the day of the hearing the challenge is to emulate all that is the presence of the court, in a digital medium.
The tech stack includes hosting in Azure with deployments using Azure Devops. DotNet Core C# with Asp.Net MVC and Angular 6 with Typescript. All APIs are documented using Swagger. High test coverage and acceptance tests written in Specflow both for API and UI run on each commit. Code is open source and hosted on Github.
One of the major technical challenges in the project is to architect for evolution. Video presence in hearings is not a new concept but fully video hearings are. This means that we aim to build a system we don’t yet understand.
Another difficulty is the to support both the old with the new. The Reform Program modernises many justice services, but not all. Those modernised will integrate directly using a common platform. But, non-reformed services will need special customisation to integrate. This means the Video Hearings becomes a product in its own right, servicing clients.
Though the project is far from over we have made good progress this far. We have released a pilot version of the system, used in real hearings. Whilst this is happening we are working on a real release version. Focussing on CI/CD from the outset with high test automation enables quick releases. We aim to have the rebuild releasable within the first few months of restarting on the new platform. We have also managed to decouple parts of the domain into separate parts. This has allowed us to decouple concerns and keep a clean design, less susceptible to big rework.