Weeknote 13: A massive greyhound

WE'RE BACK

Specifically I'm back from Edinburgh like I said I would be. I've got a week and a half of work to write up and I think I'm just about recovered from the pizza crunch I had on my last night in Scotland.

Versions upon versions

The primary thing I've been working on for the final cycle of the year is trying to get government service information, principally the version of GOV.UK Frontend a service is using, out of those service's GitHub repos. This is something we did a while ago to analyse uptake of the new crown logo across government and this work is refining that into something we can regularly use.

This has been worked on already by the very talented people in the x-govuk community, notably Frankie, with their service list and GOV.UK Frontend version stats. These are both great but not without limitations:

  • That list is manually maintained, meaning it relies on the lovely x-govuk folks having enough spare time to make sure it's up to date
  • Service owners have no obligation to add their service to that list or keep that list up to date if, for example, their service is retired; in fact I suspect most service owners don't know it exists
  • The GOV.UK Frontend version stats list is made up of the roughly 70 services from the services list that make their GOV.UK Frontend version automatically detectable, which is better than nothing but a small sample size compared to the roughly 500 services in the service list

Our work is an attempt to build on this to get a bigger sample size and use GitHub's Octokit API to clean up and interpret that data which we hope will leave us with a clearer picture of whose using GOV.UK Frontend. From there we can do some fun analysis and make more grounded decisions, as well as illustrate to stakeholders who our users are.

Some fun insights so far:

  • There are approx 7000 repos depending on GOV.UK Frontend! That's according to github's dependents page. The trick with the processing of this is interpreting what that 7000 means. There obviously aren't 7000 UK government services, so how many of that 7000 are services? How many aren't services but are prototypes? How many are technical ports of GOV.UK Frontend? How many are private sector codebases using odd bits and bobs of ours?
  • Octokit and GitHub's general API system is, frankly, pants. Their docs aren't lighting my world on fire and they just don't work in the way I want or expect them to. This is especially true of their dependency APIs. In its current form it doesn't give us what we need. That dependents page for example, there's no way to get that data using an API. We have to use this admittedly very neat tool github-dependents-info, which scrapes the HTML of the dependents pages. I imagine a more cohesive dependency API isn't trivial but I do hope that GitHub build upon it in future.
  • The way that repos in that dependency list are structured are very very varied, making analysis a lot harder. Some of this is code hygiene but some of it is also the multitudes of ways to manage dependencies in code. Variety is a good thing but it also can make management of data at scale tricky.

I've found this work extremely rewarding regardless of the challenges. Analysis and I guess what you'd call Data Engineering is fun it turns out! Very excited to see this grow and hopefully get some use by the team.

A small aside on how hard it is to get service info

This is probably a blog post-worthy topic, probably that blog post already exists, but I'll add something spicy that whilst I think this work is cool, it continues to be pretty silly that we have to go to such great lengths to get information about services. The lack of a service register type thing makes my team's work a lot harder, means more services waste time on things that might already exist and stunts collaboration. I can't praise the x-govuk folks enough because that's an on-the-ground attempt to resolve this problem but we all know that it should come from the top of the civil service.

I see a lot of civil service leaders talking about collaboration but I don't see any effort to provide or affect structures for that to actually happen. It's still a challenge for my team to get in touch with teams in, say, HMRC or for them to get in touch with us. If we want to collaborate then we need to make changes to how the civil service operates at a foundational level and bring everyone closer in. Until then, people like me will continue to put in a lot of effort for something that could be solved much more cheaply if we were just a bit better at record keeping and enabled discussion across departments. Sort it out.

Navigating our own dog food factory

Something much lighter I've been helping out with is finally getting the service navigation component onto the design system website. We've been putting this off for a little bit because whilst the component and our website navigation appear to be virtually the same, the tricky part has been accounting for our bespoke mobile navigation. We have an additional layer of navigation on smaller sceens that treat the website sections like accordions with those section's pages within. This is intended to allow mobile users to access the hierarchy of the website in the absence of the sidebar navigation on larger screens.

I'm not directly involved but I'm observing, facilitating, advising etc. We're now at a stage where it looks like we've figured out the tech so we can get it done in it's current form and have identified some potential improvements for our mobile nav which we can launder in.

Christmas social season

I've been doing other stuff outside the job as well.

Edinburgh was really great. A cracking city with cracking cultural gubbins (the National Museum of Scotland is free and it's got 6 floors plus a basement!) and cracking food. I had my haggis pakoras so I'm very content. It was super cool to go there to catchup with the pals we stayed with and their gigantic greyhound, Red.

Whilst the week before was comparatively light, it's been pretty intense since we got back. On Wednesday we saw Vampire Weekend which was one of the best gigs I've ever seen. It topped the last time we saw them in 2019 on their Father of the Bride Tour. They've really found their live sound as a fun jam bad who happens to have a super tight discography. Not even the people yapping next to us (if you are reading this and you talk at gigs please either shut up and listen or don't go to gigs anymore cheers) or O2 Brixton's awful queue management could ruin the night. Cousins into A Punk was wild. The Mr Brightside cover was wild. Very happy to have this be my last gig of the year.

Thursday and Friday were Christmas socials. Thursday was the GOV.UK Design System Christmas away day and social outing. It was really fab to see everyone and spend almost a full 12 hours with my work mates. Thanks again Cal for suggesting a great noodle place by Liverpool street after I possibly had too many pints at Spittlefields because the chat levels were so good.

Friday was my jiu jitsu Christmas social at Well Street Pizza. I had a jolly time there, even though I got a lot of ribbing over ordering the pasta dish, which quite clearly said 'I am the pasta dish' and acting surprised when it wasn't a pizza. It was still good pasta.

This weekend has been very healing. Hanging out at home, putting the Christmas decs up, recharging all the mental batteries. Speaking of, I should get dressed and take the bins out so I'll leave it there.