Weeknotes S03E17

Slaying the beast

This week has been almost entirely dedicated to a mammoth bit of work I finally completed, so may be tech heavy and retrospective. Luckily, there’s a romantic interlude so there should be something for all of my readers.

The giant code change I’ve been working on is finally ready. It deletes 700 lines of code, has gone through various iterations, and had a personal best of 43 comments and recommendations on it. I now know this repo inside out, and I’m already thinking about ways I could further improve it.⁰

I’m also thinking about ways I need to improve the way I structure these code changes. Reading back through the commits I’ve made on the branch, there’s no clear narrative. I seem to dart around, solving the problem like I’m solving a cryptic crossword. In the real world, that is a little bit how you solve these things — this video from Malcom in the Middle is a good analogy.

You try to fix a bulb, but when you go to get one you realise the shelf you keep the new bulbs on is broken. Since you’re fixing things, you may as well fix the shelf, so you go to get a screwdriver, which is when you realise the tool drawer is squeaky. Nightmare! So of course you grab some WD-40 from the garage, except the can is empty. You’ll need to go to the store to get some more, but the car won’t turn over, which is why when your partner gets home an hour later and says “Hey, the bulb in the kitchen needs fixing” you’re understandably upset, because that’s clearly what you’re fixing by stripping the engine.

The point of this long segue was that I am going to try being more focussed in my commits and make the narrative clearer, particularly with large chunks of work like this. Alternatively, I’ll start committing back into the master branch earlier.¹

Codebar happened again this week, this time at the office. This week I was focussing on writing good method definitions, and discouraging the use of globals. It’s really interesting to see people making the same mistakes that I used to make, way back when I started writing code.² When you’re hacking at stuff to make it work, global variables — values that are available to everything, everywhere — are the quickest way to make everything work. In this case, my mentees had written methods with no return statements, so their code was chuntering away, calculating correctly, and then jettisoning the results into the void.

Yu-Gi-Oh and Magic: The Gathering are two nerd things I never got into. Am I missing out?

As ever, the opportunity to teach (and thereby learn) is hugely exciting. This year I’m working on identifying things I enjoy ahead of my next career move: I’ve been inspired by this fantastic post by Anna Shipman to be more thoughtful, as well as conversations with my mentors and manager.³ I also read the Institute for Gov report (PDF, 72 pages) about staff turnover, and I’m going to make a more conscious effort to hand over work effectively and thoughtfully if I move in the future.⁴ However, I’m not convinced by the broad brush answers in the report. Applying a pioneers, settlers, town planners model to organisations gives me the view that there should be different targets for turnover depending on the team and evolution of the product, and consequently different methods for attracting and retaining talent.

I attended a half day blogging workshop, and it’s helped me understand a part of the business that I didn’t understand before. It was a step outside my comfort zone, because it was about blogging professionally. I love blogging⁵, and so it’s a weird step-change for me to write with more thought and with a stated aim of grabbing attention and holding it.

There was plenty of really good content and I particularly appreciated the refresher on the GOV.UK style guide — the passive-aggressive “Words to avoid” section is probably my favourite.

[avoid using the word] key (unless it unlocks something. A subject/thing is not key — it’s probably important)

— The GOV.UK style guide

I had a weird quasi-first, quasi-nth date/friendly catch-up with someone.⁶ We’ve known each other for the best part of a decade and dated at the beginning of that period. It did not go well, mainly because I was an obnoxious ass a decade ago.⁷ We are — philosophically speaking — very different people to the people were once upon a time, even if we look similar. It was odd. We’re both pretty recently out of long-term relationships, and since we have history our baggage is now so great that it needs its own carriage.

All the same, it was really nice. We get on well, and we’re going bowling this weekend which feels…more like dating territory?⁸ So we’ll see.

If there’s one takeaway from this paragraph, let it be this: never go back and look at your tweets from ten years ago.

Govcamp will happen/is happening/has happened, depending on when I write these notes. I’m probably going to pitch an intro and advanced session on swardley maps and see what happens. I was approached by someone this week about putting together a workshop on this for a strategy away day, and so this will be a good opportunity to workshop with the five or six people interested in this ahead of my meeting.

I’m completely blown away by the fact that someone approached me about this. It combines my two tick-boxes of strategy and teaching, and is right in my wheelhouse of niche nerdy topics on which I’m well-read. However, I’m starting to get concerned about how much of my work time it’s going to take up. In an ideal world I’d have a job where I could do all this stuff — write code, mentor people, do strategy workshops and be home by 5.30. I don’t know if that job exists. I do know I’m going to have to think quite hard about how I’ll manage this in the future.

I could go down to 4 days a week and pitch my mapping workshops as a consultant, but I have an irrational loathing of consultants. It also seems to offer poor value for money to the taxpayer if I charged £800 a day for what I’d previously been offering as part of work. Alternatively, I could try making a pitch that this is a corporate contribution and actually start measuring the time I spend on it. If it starts taking up the majority of my time I’ll need to have a conversation with my team and manager. I might also need to start looking for a role that emphasises that, rather than software development.

Got thoughts? Put them in the comments or get in touch with me @jonodrew, because I have no idea what I’m doing.


⁰ These ways almost all involve binning old code
¹ Unless you’re a tech person, you’ll be unaware of the ongoing turf war between “trunk-based development” and “branch-based development”, but believe me: there are assassinations in the night and rude words written in leading publications that will testify to the strength of feeling in this arena
² Ah yes, way back in *squints* 2015
³ Good managers make people less likely to leave. I’ve genuinely got a great concern that moving might bring me into the orbit of a less-good manager, and that’s definitely adding friction to any moving thoughts I have
⁴ That should be a learning module for new staff: How to hand over work in progress in ways that don’t make your successor curse your name
⁵ Exhibit A: what you’re reading right now
⁶ Dating as a millenial is like manoeuvring an 18-wheel truck full of explosives through a china shop with a blindfold on
⁷ Genuinely just fucking awful. I’ve gone down a rabbit hole of my old tweets and the shame is real
⁸ Wearing other people’s shoes and awkwardly trying impress someone is prime dating territory in my (admittedly very short) book

Weeknotes S03E16

Settling in

Welcome back

This week has felt alternately slow and quick. I’ve been thinking about a few things and I’m going to do my best to articulate them here.

1 Mental energy is the same energy as physical energy, or at least it is for me. I realised this week that I’ve been burning mental energy thinking about things I didn’t even realise I was thinking about. It was only when I made a commitment to dropping them and suddenly felt lighter, brighter that I realised they’d been taking up a lot of space in my head. I have to write them up before I can actually let them go, but I’m excited to do so because it frees up my mind to focus on something I can actually progress right now.⁰ It also means I’m on the hunt for a fresh new corporate contribution. I’m thinking about going back to mapping and starting a meetup or even an internal book club/community of practice. Let me know if you’d be interested in these things.

2 I really love coding, but I really like strategy and I also really like delivery. I keep switching what I’m doing because I can’t seem to pin myself down. This week I’ve been busy deleting old code¹ and writing new integrations to reduce our reliance on old, deprecated libraries. It’s absolute joy. It’s really hard to explain the dopamine hit to people who don’t code, but in general the time between me deciding on how to solve a problem and finding out if my way works is generally less than a week. It’s pure bliss.

At the same time, I’ve been the scourge of delivery. I’ve enforced work-in-progress limits, linked up bits of business, and set up meetings for people in order to better segment work and improve flow. I like doing this stuff, because even though the feedback cycle is longer it’s so completely worth it when you start to see it moving again. The first tipping moment is the best. It’s like — have you ever seen, in a strongman competition, some great human specimen endeavouring to move a plane or a train or some other mode of transport that requires huge engines to move it? They press their whole bodies to the task and for the longest time nothing seems to happen and then the wheel starts to turn and suddenly, bizarrely, this huge weight of steel rolls forward. And it continues.

That’s what being a delivery manager is like.

3 There are a lot of new people adjacent to us and they are boisterous. I am reminded that it is very difficult to do knowledge work² in open-plan offices, and that I would almost certainly work for anyone who promised me my own office. I’m serious. Morals be damned, if I can close the door on the rest of the staff I’ll sign tomorrow. I am also horribly aware of the many, many times I’ve had long calls at my desk. Calls in which I may have laughed a lot. My former colleagues (and certainly former friends): I am so sorry.

I have been blessed³ with a laugh that has been called “Jimmy Carr-esque”.

“It can’t be that bad,” I hear you say. Sure. Tell you what. You get through this video that’s a mere 54 seconds without pausing, without plugging your own ears with wax, and I will accept that my laugh is not that bad.

Because I forking can’t, and I have that laugh.

Please, please, please let’s go back to offices with doors. I’d even accept a cubicle at this point. Anything to stop the noise.

4 I got to One Team Gov breakfast this week, and filled in the form for OneTeamGov Event in Canada. If you’ve not filled it out yet, here’s a link:

The point is that it was very enjoyable and had a mix of new faces. Jenny did a cracking write-up so you ought to go read that, but my main takeaways were:

  • there felt like a marked difference in the number of people speaking over each other. I’m not sure if that’s linked to the new organiser being a woman. I really hope not. Maybe we were all just excited that morning.
  • challenging when you’re the first person to do it is really hard. At GDS we tend to heckle people speaking in jargon, but getting your organisation to that place requires huge bravery or your senior team heckling each other. That’s cool, but I don’t know how likely it is. If you’re a senior person, being that first challenger empowers everyone else. Remember: with great power comes great responsibility⁷
  • you can’t replace one ‘resource’ with another because (a) I can’t stress this enough, people are not resources and (b) teams are immutable sets; the removal of one individual and the addition of another creates a new set. Not a changed set: a new one. Even if it’s the same person just six months later. They’ve grown apart from the team. They’re a different person. It’s a new team, and it’ll take time for it to form. Give it space.

That’s me for this week. Tomorrow I’m taking my parents to see my new flat even though the developers are yet to accept my revised offer. Nerve-wracking, but an opportunity to cook for my family shouldn’t be sniffed at.⁸

Listen: Into the Spiderverse is stunning and even if you don’t read my inane footnotes you should listen to this soundtrack.

⁰ There will be a lot of blogs this week
¹ code gets old like fish gets old: it starts to smell bad


³ [citation needed]
⁴ It’s intriguing that in French an un-conference is an anti-conférence. I feel like it gives it a slightly more…contradictory air? An unconference just isn’t a conference, while un anti-conférence feels like it’s everything a conference is not.⁵ I would have gone with un non-conférence if only because the running together of sounds in my mouth is pleasant. It quickly becomes unnonconférence, and that’s just pleasant.
⁵ Like…there’s dressed, and there’s un-dressed, but anti-dressed feels different.⁶ 
⁶ I’m reading too much into this. Let’s move on.
⁷ Related: Spiderman into the Spiderverse is the best comic book movie I’ve ever seen. Go and see it. Listen to the soundtrack. I just. I love every single thing about this movie.


⁸ I mean, Dad’s allergic to cats so there’ll be a bit of sniffing.

Weeknotes S03E15: Break

Everything is in motion and relative to everything else. Don’t think about that too hard

Overarching feeling of the week:


Based on previous experience this feeling will persist until at least April.

This week (although is it even a week? It feels like it’s lasted all year⁰) saw me get into an extremely frank discussion with a colleague. I don’t mind these kinds of discussions because I see them as fruitful, but I was reminded again that I can come across as frank or even fairly brutal. The flipside of this is that writing code is like writing anything, in that you put something of yourself into it and so any critique becomes a critique of you. I’ve talked about being on the receiving end of this, and to my shame I ignored all the positive suggestions I’d made for people reviewing.

I am going to get better at this, if only so that people are less likely to think of me as a giant tosspot with aggressive opinions and no sense of personal space.¹


I updated my side project this week. It’s now using one of the GDS registers to feed data into a system, which means that I don’t need to build a database into it. This is a Good Thing in theory, because it means the data will always be up to date, although it’s going to cause problems in the future. Luckily, that’s future me’s problem.

Man, I don’t envy that guy.

Just doing it and putting it on twitter has raised my profile. I even saw it get shared on our internal slack. I suspect the person sharing it didn’t realise I also worked there and probably had a minor panic when I rocked up to say hello.

I have mixed feelings about this side project. I don’t think it’s a good side project, because it’s not atomic — it relies on other moving parts that I don’t have access to at the moment.

That sounds mysterious, but it boils down to “People are busy, too busy for my personal side project.”


I had a second date, and let me tell you it is weird. I’m channelling my inner Scrooge, but I have literally no idea what I’m doing. I’m only partly rescued by my repeated mantra: nobody knows what they’re doing. I think, broadly speaking, it is going well. It is going slowly. It is going slowly on purpose, because I am carrying baggage. There are times when I very suddenly bump into a feeling that is confused because it’s very similar to a feeling I had about my ex. Is this a new feeling? Is this an old feeling that parasitically seeks a new host so that it can survive even when it doesn’t belong?


Because love is a mix of physical, immediate attraction that comes from the way the other person fits into your life² but also all the feelings that grow through shared experience. They grow, like the man says,

Like a flower
Or a mushroom
Or a guinea pig
Or a vine
Or a sponge
Or bigotry
…or a banana

And love is made more powerful
By the ongoing drama of shared experience
And synergy, and symbiotic empathy, or something
 — Tim Minchin: If I Didn’t Have You

Anyway. I am an ongoing and eternal emotional mess, and this is good because it’s a reminder I am terrifyingly alive and still doggedly clinging to the skin of this blue marble as it hurtles around the Sun.³

Project Flat rumbles on, derailed only slightly by the holiday period. By the end of next week I shall hopefully know whether I have been authorised to spend more money in one go that I’ve ever spent before, and I’m now so sick of the entire process that if it fails I shall decamp and live in a yurt.

No, I’m kidding. I’ll move to Canada.


⁰ Bam, Dad joke straight out the gate. Starting 2019 as I mean to go on
¹ Boy, let me tell you about those guys
² Fits into your life along the cultural norms you’ve grown up with, or even actively rejected and therefore fits into your counter-culture but still fundamentally fits into your worldview; like maybe you’re an atheist while your parents are religious and you’ve gone all counter-cultural and brought home an atheist partner but I bet my last pound that godless heathen has nice table manners and is sweet to your parents and doesn’t kill puppies and went to the same kind of school as you did and look the point I’m making is that love is at least three quarters cultural and even being counter-cultural is still aligned to your culture in the same way that the London-Brighton line is simultaneously and non-controversially the Brighton-London line.
³ It’s just done another lap, and rather pleasingly everyone in South Korea and Japan got a birthday. Isn’t that nice?