Following the success of the Waste carrier registration exemplar service, the Environment Agency applied their new skills and ways of working to develop a digital service that helps anglers report their catch to government. The data gathered through the Rod Catch Returns service is used to monitor, assess and manage salmon and sea trout stocks in a sustainable way to secure the future of sport fishing.
The team opted to self-assess the Rod Catch Returns service against the Digital by Default Service Standard. We asked Senior Business Analyst Colin Banno-Thornton to share his experiences working on this Agile project.
“I’m a Scrum Master within the Corporate Information Services (CIS) team at the Environment Agency. We've recently built on the success of our Waste carrier registration exemplar with a service to manage the annual reporting of angling catch returns. Delivered using the same Agile Scrum method used when building the exemplar, Rod Catch Returns challenged the way we worked in the past and may change the way we work in future.
CIS deliver digital services to the Environment Agency. Our project lifecycle and management processes use waterfall, PRINCE2 and ITIL, with applications deployed and managed by our outsourced network provider. Our development technologies, design methods, deployment approaches and service support have traditionally been structured to reduce risk. Now our business partners are more willing to accept risk and demand greater flexibility during a project plus a positive approach to change.
The Rod Catch Returns team wanted to develop a service that would bring budget savings and improve data quality. We made the decision to deliver using Agile. The service is now in public beta, implemented within budget and - crucially for our users - in time for the new fishing season. We are now able to reflect on the lessons learnt and identify benefits for future Agile projects.
A common language helps change happen
We benefitted from clear vision and support from our leadership team who are committed to ‘delivery with speed and agility’. Yet we met with resistance when trying to change established ways of working. Reflecting on the cause of this resistance, it’s clear that we were missing a common language. It seemed that everyone wanted to support the new approach to delivery but, while the core team were living the new way of working, others were unsure how their established role would change.
To solve this we worked with colleagues to develop an Agile Capability Maturity Model (ACMM). The ACMM acts as a common language describing steps that different teams within CIS need to take to support Agile delivery. We recognise that not everyone will travel at the same pace but at least when we know the path, we can predict and avoid tension.
Develop continuous delivery capability
We committed ourselves to continuous integration, automating deployments and unit testing. This, coupled with wider automated testing and deployments across all environments through to production, meant we formalised a continuous practice for delivery. This approach allowed for quick work, increased the visibility of issues, and enabled the team to deliver to our 12-week deadline. It will also aid the ongoing support and enhancement of the service.
We use the Open Source Continuous Integration server Jenkins coupled with GitLab for source control. Jenkins is the hub of the automated process; polling the git repository for changes and initiating a development build when needed. Maven manages the build process cleaning, compiling and package up the code to create artefacts for deployment.
For automated testing we use Selenium with individual scripts written at the start of each sprint for user stories in the Sprint Backlog. Alongside Selenium we used Sauce Labs for browser and device compatibility testing. We had no skills in Selenium or Sauce Labs at the start of the project but it was easy to configure a test suite to run against the GDS service manual's list of supported browsers.
Throughout the project we analysed every aspect of the build and targeted any area which required user intervention for improvement. By the mid-way point, most areas required little or no intervention.
The remaining challenge was to find a product that could recreate, update and add data to the database while integrating with Jenkins. We chose Liquibase, converting the database builds into database agnostic XML that can be deployed and targeted using Maven.
In the end, we achieved our goal of being able to build, test and deploy an application across 4 different environments in 15 minutes.
Dave Blackburn can be contacted for more information on our Continuous Delivery practice.
Traditional processes and ways of working still dominate. However, the Environment Agency can deliver digital services with agility. The success of Rod Catch Returns and the ongoing development of the Waste carrier registration exemplar shows this.
We now know we don’t need a detailed business specification, technical architecture design or test strategy before we start delivery. We have been challenged at times, but with clear guidance set out in Digital by Default Service Standard and positive results quick to be seen, Agile is a rewarding way to work.”