The focus of the latest sprint has been to refresh the homepage and use this to test and start to build out our planned changes to the way we render content to users. As mentioned in previous posts we have been working to identify where changes were required to ensure the long-term sustainability of the platform and to help maximise the ease with which we can make changes.
Changes to the homepage
There have been a number of elements that we have been aware needed to change and evolve on the homepage since we went live and it was always one of the stickier points to get right. With that said we were keen for this to feel like a step forward rather than a complete change, both so that we could better access if the changes were improvements, but also so as not to throw our well established user journeys.
One of the biggest requests we have had, and something that has come up consistently in testing, is that we showcase our latest publications on the homepage. This was always something that was planned to be included, but got lost at some point along the way.
The other changes we have made were primarily necessitated by the inclusion of releases on the homepage, although we have taken this as an opportunity to tweak some of the elements slightly, for example the time series we display;
The main element to make way for the releases is the A to Z, which has been moved to the foot of the homepage. In testing it has been clear that this only adds value if you already know exactly what you are looking for. This was, to be honest, always our expectation and it’s inclusion was intended to help give users a consistent re-find journey – something that was always very difficult and convoluted on the old site – which it does do well.
However it’s location on the homepage meant that it was used for more than this and as a result it was clear users were getting stuck in here. Our current thinking is that it does add value, but not as the headline item on the homepage. This in particular is something we are hoping to look into when we test these changes.
Changes to the technology
I will pass over to Ian, our tech lead, for this bit!
Throughout the beta project, Babbage – our frontend rendering component – has become bloated, monolithic, has no clearly defined purpose and uses a custom web framework. It handles a mixture of functionality including rendering, search and PDF generation, and also relies on locally attached file storage. This makes it unsuitable for deployment into a PaaS environment and prevents us making any significant changes.
Instead of attempting to refactor its codebase (which we’ve tried to spike a few times!), we’re introducing additional components to handle specific parts of our service, giving us an iterative migration path away from Babbage – at the moment, that’s just the new homepage layout.
Our new frontend components have been built with Go, and are lightweight microservices each with a specific job to do – a router, a renderer and a content resolver. This has been a learning experience for the team, picking up a new language and implementing three new services in a two week sprint. Although we’ve still got some rough edges to clean up, we’re not too far off them being production ready.
As part of the next sprint we will be looking to A/B test these changes alongside the current homepage – directing users to one or the other. We will be looking to see if this is more successful than the current homepage and what changes are required before we move across to this.
From the technical side we will be looking to review what we have learned as part of this sprint, if this is the direction we want to go and if so how this can ultimately be applied to the rest of the website.