Since October 2017 I've been keeping week notes. I've found them a fantastic tool to track my focus and to remember to reflect on success (or lack of it).
Being a Principal Engineer
I spent 2018 seconded into this role and 2019 officially in it. The teams I work with are achieving great things: reduced complexity, reduced cost, increased stability and throughput, and regularly deliver same day fixes (down from 10 days for simple fixes). Check the Customer and Member section in this Co-op blog. But even two years in I find it hard to see the value I'm providing and to unlearn a lot of the not-principal-engineer habits I'd worked hard to learn.
The biggest being…
My feedback loop is really long - months sometimes. Maybe that was always the case and I didn't see but it makes tracking impact hard. It feels like this got better over the year but large organisations tend towards silos and I've found that tends to increase the length of and decrease the quality of feedback loops.
This is important to me and I can't think of a goal… that's worrying.
Staying out of the way vs getting in the way
Making a balance between letting the team get on with things and stepping in to influence, coach, and set guide rails is really hard. A lot of my experience was working solo as the only tech person at a not-for-profit or in roles where I was embedded as a member of a team. Acting alongside several teams is very different…
As an example from recent months: remembering to care that we lint our JS and not which linter we use was hard (although no semicolons 4 life obvs). Then noticing that folk kept replacing the linter and that I need to step in and make the arbitrary choice and let them get on with smashing it is important. (maybe growth would be knowing that somebody needed to step in and helping someone else do it)
Knowing which gear to change into so I'm letting the teams be creative but keeping them on track is something I have no idea how to measure if I'm doing well… So I suppose my goal is to start 2021 with a better relationship with being a "leader" (I still put that in air quotes every time I say it).
Making time to write code
Making time to write code with the teams has been critical for my sanity (and I think my effectiveness). Recently I spent time with the folk building offers.
Partly because a tight opportunity/deadline needed support, partly because it was fun, partly because my instinct was that was the next important thing for me to do. But it gave me space to talk to them about the four rules of simple design, get confidence in their abilities, help them get used to a new (to them) codebase, and expand some of our design decisions while in context. Plus I 💖 cutting some code.
I have to figure out a way to make this a regular part of my role without using it as a mechanism for procrastination. And I should ask that group for feedback on how it felt for them!
I've really valued the focus on reflection. Particularly around trying to find a new feedback loop I can lean on. I started them without any plan and now realise it's a shame they're images on twitter. I can't even find the first one :( At the moment they're really in google docs. Cos I can make them on the train home. I need to find a train-friendly way to be able to write and publish them easily without relying on a walled garden.
Being part of a big organisation
Sometimes you can get a glimpse of how a tiny improvement in a big organisation can have a huge impact and that keeps me going. Things like visiting one of our food distribution centres and realising the massive technological and human effort that we're a tiny supporting player to. Or being part of the systems that have helped Co-op members give £17m to local causes.
We started a monthly conference instead of our weekly community of practice. I was worried that the extra time commitment would mean people didn't attend and I was so wrong. There are enough of us that the monthly unconference is one of the best things about working at Co-op. Kudos to Gemma Cameron for having the vision and making it happen. But, despite the openness and willingness to improve we see in colleagues across this massive beast of a company, large organisations are inherently pathological. Some groups work in such a way that shows they see the plan as the goal. A thing being on-time and on-budget becomes more important than it being valuable. And that thing being valuable is a side note. Things are made that are either not measurable or not measured. I'm not sure how best to contribute to improving that. It's easy to fall into an agile echo chamber - thinking if you turn up with some post-its, a whiteboard, and a jenkins server everything is solved. It'll be hard, but important, to hold true to our principles while showing the same willingness to listen and change that we're asking of folks in the "Enterprise" (disappointingly not a spaceship).
For now I'll concentrate on moving to a place where we deliver frequently and show commitment to measuring value. Tidying our own house before we complain about someone else's.
2019's Week 1 weeknotes mentioned a colleague Graham Thompson saying: "we're aligned because we talk". That turned out to be the theme for the year. Over and over we discovered our problems by talking and solved them by talking.
But multiple times we also saw that the team spent less time fixing or building something than we'd spent talking about whether we should.
This year I want to try to swim against the current of our meeting driven organisation and focus on face-to-face communication as part of what we're working on.
I also have a 140+ day streak on duolingo learning Italian. Non c'è un serpente nei miei stivali. I'll aim to practice every day this year.
Go-live is marketing
In 2016 I went to watch James Jeffries talk at the leanmanc usergroup and the other speaker, Andy Mayer, said something along the lines of "because you're releasing to production and learning constantly go live should be driven by marketing".
We've seen the value in that approach over and over in 2019.
Week 4: "🍾 “Legacy” DB System we've been replacing has now been strangled away and nothing uses it anymore"
Week 40: "🦄 team's third significant "go live" that was so smooth it was almost an anti-climax"
Week 45: "💪 Deployed a new system to replace part of another system while that system was under sustained load. Bold and seamless"
That week 4 release was the end of 9 months and more of at least two people working full time. It was a significant change and affected multiple business units.
Go-live was announced at standup with: "oh yeah, MODS is primary for reads and writes now". Running in production as soon as and as meaningfully as possible is a forking super power.
Master, Black list, Guys, and more
I've consistently spent time trying to refocus my use of language this year. Things like using primary or trunk instead of master, exclusion list instead of blacklist, folk or skipping the word instead of guys.
This seems like the least I can do to promote inclusion. It's not enough but it's something.
For a while we had a non-binary colleague who used they/them as pronouns. I definitely wasn't good enough at managing that. It was such a clear example of how unconsciously I use gendered language. I tend to speak in a stream of consciousness style and I need to practice speaking purposefully.
Even if I only make one person feel included or avoid excluding them then the effort has been worth it.
I used to cycle 1000km a year plus. I don't now. Largely because cycling in Central Manchester is a horrible experience. But I still snack as if I'm cycling twice a week all year :(
So I decided I needed to step up my game. I ran 35 weeks of the year. And averaged 6.5km in those weeks. Better than I expected. And a good start. But I want to double that this year.
Which suggests my maths need to improve since there aren't 70 weeks in the year. Let's say: 10km average over 40 weeks of the year.
I'll also give up shaming myself for not cycling 27km to work and aim to go for some rides for fun when the weather picks up.
This is the first full year I've had a dog since I was a teenager. Best decision in a long time. As much work as having a baby but it adds joy to life.
dog on new years day 2019
dog on new years day 2020
All three kids have said they don't want to be on social media so I won't mention much here. Watching them growing into sensible, curious, wonderful, talented nerds despite my terrible parenting is the most incredible thing.
They also have learned to amuse themselves by saying: "blink and I'll be in college" when I'm distracted by my phone and they want my attention.
They deserve my attention. We used to have "family screen-free day" once a week. That's coming back!
What writing this taught me I want to do in 2020
- decide what feedback loops I want to shorten
- find others that want to do that and work with them
- expect to find better ways of doing it by including others
- read about leadership and get over myself
- make time to write code and find out from the teams how they'd like me to do that
- figure out how I can write weeknotes as easily without images in twitter being the main record
- move to a place where we regularly measure and report on our work
- speak face-to-face with individuals instead of in big meetings
- practice Italian every day
- use the unfair super power of being a white, middle-class, middle-aged, straight man to lift others up
- 10km running on average over 40 weeks of the year
- 4 leisurely cycle rides
- put my phone down and talk to my kids