End of quarter. New mission.
This has been a week of closing down. I’ve tried not to open any new projects, to be mindful of my documentation, and to relax into my new role.Continue reading
End of quarter. New mission.
This has been a week of closing down. I’ve tried not to open any new projects, to be mindful of my documentation, and to relax into my new role.Continue reading
Some things happened this week:
I have done a lot of context switching this week and so I’m struggling to figure out what I actually did. Maybe it’ll become clear over the course of writing this.
This week I picked up the responsibility of championing the juniors community. I think it’ll be a really exciting opportunity to develop skills in managing more senior stakeholders and getting to grips with policy and business cases.
On Monday I had a meeting with my Head of Community. I mentioned that I’ve been casting around for more generalist skills and he suggested I pick up the juniors community. I met with the current champion and delivery manager and tried to work out what I could do to help it grow to the next level. There are certainly some things I could do on a lower level, but I worry that those are out of scope.
But, y’know. Scopes can be flexible.Continue reading
I have had a number of weird conversations this week, and not written a whole lot of code. I’d like a job where I can swing between these two things.
I do not think a job like this exists.
Let’s do the week: retro style!
At the retrospective today, one of our seniors said that he was really pleased with the way Monday morning planning/tech debt session was going. I was absolutely elated to hear this because I’ve been facilitating them and this kind of validation is the best. The session we did on Monday went really well, though my team have rumbled my tactic of finding the five oldest tickets in the backlog (added 2 years ago!) and prompting a discussion about whether they’re still needed or were fixed long ago. One turned out to be urgent-ish so that’s definitely a silver lining.
I didn’t take a job I was offered. Why is this in what went well section? Because it’s a good job doing something exciting, but it’s not the right one for me. It’s a small signal to me that I’m growing out of the phase of needing to please others: there was a time that I’d do any job someone asked me to do, because it meant they’d seen me. It meant I was wanted.⁰
I finally closed a piece of work to part-automate library updates. In the course of that a colleague helped me fix an irritating bug: if you’re particularly interested in how I fixed it, there’s some code you can look at. Once this piece has been seen through to completion then whoever’s on second line will have the slightly more boring task of going through the automated bumps and figuring out what to do with them, but it should mean more up-to-date libraries and more consistency across the entire system.
I had a good (if accidental) coaching session with a friend. It’s a very strange thing, to ask questions and not give one’s opinion. I’m a white guy from a fairly privileged background. I’ve only recently come round to the idea that my opinion isn’t the only one that matters.
Codebar as ever was enjoyable but tough. I’m taking a couple of students through the Game of Life from a test-driven perspective. I see in them the mirror image of myself when I started, wondering what the point of tests was when I could just hack at it until it worked or I passed out from a caffeine overdose. I am very slowly convincing them, if only because there’s such a lovely endorphin hit from getting a test to go from failing to passing. The fact that it forces them to think about the design and write small methods with no side effects is incidental (muahahaha).
It’s always a late finish and I gave my girlfriend¹ a call on the way home. Somehow she ended up asking me
What’s the difference between pizza and toast?
and it made me think that either I was eating very boring toast or she was eating incredibly boring pizza. I am resolved to find out which it is.
A friend revealed that they’d recently broken up.
What do you say to a friend baring their heart with aggressive vulnerability? What can you do but respect that? I did my best to give the best advice I could. I drew on the well of my limited experience and talked about the fact that it would hurt; that there was no way to make it stop hurting; that drinking just kicked the hurt down the road where it would hunker in the shadow and wait for you.
I also gave them my blog to read, because the support I got from the weeknotes community was phenomenal and writing was incredibly helpful to me. I hope it helps them. I hope it didn’t seem like ruthless self-promotion.
I squeezed myself into a suit to help some friends with interviews. I need to lose weight or buy a bigger suit, and frankly I suspect a bigger suit would be a cheaper approach. I had planned to sign up to a gym when I moved; now that that’s been pushed back to June I think I’ll just have to bite the bullet and go to my local for now.
Starting imperfectly is better than planning for perfection: if I wait for the right moment I think I’ll probably never do it.
Interviewing was hard work, but that’s not the thing that didn’t go well. One of the people in the office was sneezing and blowing their nose a lot. They left at about three, saying “my head just feels like it’s stuffed with cotton wool and my nose keeps running, so I’m going to head home early.”
By a weird coincidence I woke up on Friday with exactly those symptoms.³
These have been your extremely jumbled weeknotes, brought to you by sudafed to stop the running nose, ibuprofen for the sinus pain, and a desire to be away from this computer to go and eat fish and chips and look at my date.
Enjoy your weekend. You’re doing great!
⁰ Therapists, get in line
¹ According to my sisters, who know about this sort of thing, my recent tweet mentioning their kind gift of a creme egg made it official. I’m not sure what this makes it.²
² official-medium, I guess, as opposed to official-rare
³ coincidence is a word which here means not a coincidence at all
I got this comment on last week’s post:
And I want to assure you it’s only because I have a constant hovering sense of not being good enough and a crushing fear that people will find out. Every new person who approaches me to suggest I do a thing increases that anxiety, even as I recognise that I’m still upright. I’m starting, slowly, to recognise that I can surf the wave or walk the tightrope or whatever metaphor works best for you. That doesn’t take away the fear, but I’m finding better ways of co-existing with it.
That’s my secret, Cap. I’m always scared.
These weeknotes started out as a giant mess of words and then, like staring at one of those magic eye pictures, came into focus as a single theme with stories to support it. It’s freaked me out a bit to be honest.
This week began — as it always does — with me trying to corral my team into prioritising a bunch of work. It’s a little delivery manager and a little product manager, but since I have neither of those roles in my job title I’m soft skilling the heck out of it. It was easier this week than it’s been before; I think it’s because I’ve been enforcing the format for a couple of weeks and it’s starting to bed in. At the end of the day I had an initial meeting with a new mentor, who posed some hard questions to me. He understands a lot of my frustrations and he’s helping me to be patient where I would otherwise be impetuous. This is Good. He also holds strong opinions about military structures in the Star Wars universe, and this is Also Good. With his help I’m going to look at rounding out my technical skills with some projects in my wider organisation, and we looked at some that seemed interesting.
Tuesday was a weird long day: I did some volunteering in the morning and that sort of wrote off the entire day, as I tried to recover from the emotional black hole that speaking to kids opens inside me. Volunteering is supposed to help you learn things, and in fact I learned three new things:
In the evening I had dinner and a chat with a mentee.¹ She is going to be giving a talk that’s kind of in my (undergraduate) area, so I’m doing my best to coach her in speech-giving and argument-forming.² I’m more comfortable with this mentee, and as I write I’m trying to figure out why. I think part of it is that we discussed it formally in the beginning and had some ground rules; we know what we’re aiming for and how we’re approaching it. Maybe I just like structure.³ It’s also politics, economics, and arguing: areas I know reasonably well.⁴ It meant I missed the weeknotes meetup though, which is a shame. Next time.
I am (still) completely in love with writing code. I track my time, and on Thursday I spent 7 hours (with some breaks) on trying to figure out why an innocent upgrade was causing massive, things-on-fire test breakage.
I should explain — so that a handsome, rugged, naif young coder doesn’t go releasing massive changes to the production environment and breaking everything for everyone everywhere, a whole suite of tests runs against any change I — sorry, he — makes. They take about ten minutes and run through a few hundred scenarios a user might actually carry out. In my case, the phantom user was pretty hacked off as the system kept logging her out.
That was my cue to start pulling my hair out and diving three or four layers deep to try to get to the bottom of the problem.
The problem turned out to be nothing I’d done (hurrah!) and in fact something someone else had done for reasons known only to themselves, god, and people with toys they want to connect to the internet.
Still, thanks to my senior I scratched out a 6 (sorry Sam) Point Plan to solve it and then went immediately on a date. I don’t think that I could have done it with a senior to guide me, so I’m really grateful I’m working somewhere where I can learn from people much cleverer than me.
I think these have been the best weeknotes I’ve ever done. Not for you, the reader — I expect you’re bored silly. But as a reflective practice I think they’ve helped me work out the solution to something I’ve been struggling with all week.
Go weeknotes. You rock.
⁰ Oh god
¹ fuck, maybe I do do to much
² I can practically hear the eye rolls of people who know and love me
³ Maybe we all just like structure, apart from my slightly scary friend who’s convinced purging all laws every ten years would do wonders for society
⁴ As opposed to “how to get a career in tech”, an area I know literally fuck all about having faked my way into it in a big way. I’m making a good go of it, but seriously — 2 Bs and a C at A-level and a 6-year long slog at an undergraduate degree in French doesn’t scream “tech sector career”.
This week has felt long. January is a month that is infinitely long, while the last week of that month is itself infinite.⁰
I have done a few things this week, but all of them feel fretful. I am still struggling to find my space, and I’m starting to get frustrated with myself at my inability to settle into a thing and just do it. Maybe I’ve not found the right fit. Or maybe I’m just incapable of doing one thing for any duration.
On that cheery note: here is the week that was:
On Monday I caught up with a mentee. She’s coming off a coding bootcamp and is trying to work out what she wants to do next. I’m still trying to find the right balance with mentoring between giving advice and letting mentees work out their own path. I think I leaned too heavily in the latter direction and may have come across as sharp or stand-offish by repeating her questions back to her. I feel like I need a mentor in mentoring. A grand-mentor?
I also offered to use my connections to try to secure shadowing. I think this is the right thing, but I’m also anxious about it because it privileges her above other (equally deserving) individuals. On the other hand, my wider organisation could do with more people from her background, so…
Look, Monday was essentially a mess of me wondering whether I was doing the right thing.
All the way through this week I’ve been doing Russian homework during my lunch. I’ve needed to do this because I’m a massive keener who’s taken a homework that involves writing about 50 words and turned it into two pages of both printed and cursive writing. I’ve also started watching Trotsky on Netflix, a Russian-made biopic of the revolutionary. It pulls no punches as to the homophobia, misogyny, and anti-Semitism rife in Russia at the time.
I’m concerned I’ve overstretched myself on this: it smacks of “ooh! Shiny! New!” enthusiasm that I fear will fade over time. I’m slightly buoyed that my Duolingo streak is at 70 days: maybe it’s not just a flash in the pan. Maybe.
I was supposed to go and mentor on Wednesday, or go to the leaving drinks of Kit Collingwood. Instead I found myself spoon-less by the end of the day and crashed home. I’ve noticed a massive dip in my energy levels recently: is it something to do with the weather? Am I not eating enough fruit and veg?¹
Still, it gave me an opportunity to make a butt-load of spicy carrot and lentil soup. It’s my favourite reviver in weather like this: warming, thick, and enough spice to make your tongue and nostrils tingle without being painful. Paired with thick bread and a thick book — this week it’s Ha Joon Chang’s Economics: The User’s Guide — it’s a corpse reviver.²
Thursday was a day that was half running around and half sitting down and doing thoughtful programming, and really hit the sweet spot of things I like doing. In the morning I ran over to Whitehall to talk to other unsuccessful Future Leaders Scheme candidates about what we could do to advance our learning and development before the next application window opens later this year. We didn’t get much insight into the process or scoring system, which is a shame: I am continually banging on about openness because it makes things better. I still offered to help in any way I can, and made a few valuable contacts. My organisation covers so much that the opportunity to go and shadow someone doing something wildly different — whether that’s the Privy Council or the Queen’s Honours list — seems like too good an opportunity to pass up.
In the afternoon I sat down with my senior dev and paired for a solid hour and a half on a new-ish feature. It’s really enjoyable because she’s a really good pair: thoughtful, patient, and doesn’t obviously flinch when I ask questions that I then answer myself almost before I’ve finished asking them.³
Friday was a full day of training. I bumped into some old Fast Stream colleagues and talked to them about my eternal, unchanging bugbear and my plans to stop whining about it and turn it into a scoped piece of work for a corporate objective. They agreed this would be a good idea.⁴ So I’m going to write that up over February and start shopping it round and see if I can get a little team of volunteers on it.
The training itself was interesting: it was an introduction to Service Design. I’m personally very nervous about tech architects and service designers, because in my experience they tend to want to architect and design. Agile development doesn’t fit easily with this approach, but I think perhaps I’m still struggling to see the bigger picture. I’m also probably being hyper sensitive. There is value to seeing the bigger picture: where your little transactional service fits into massive, wider user journeys. I’m just…I’m not yet convinced that you can design that journey up-front.
Now it’s the weekend. I had an extremely good date last night, and I’ve got a few hours before I go to Russian class and am crowned “Hideous teacher’s pet”. So I’m off to have breakfast with good coffee and even better company.
And look — it’s February. We made it. Well done team.
⁰ For more on infinities that contain infinities, I recommend you start with Hilbert’s Infinite Hotel
¹ I am almost certainly not eating enough fruit and veg
² In actual fact, a corpse reviver is a cocktail that combines gin, absinthe, chartreuse, lemon and Lillet Blanc. It’s said that one will revive a corpse; another three will un-revive it.
³ “But how would I add this permission to — oh, yeah, I think I’d do that”
⁴ Hang on, I should have asked which bit they felt would be a good idea.
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.
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