Weeknotes 08×01: Recovering the satellites

Hello, welcome back. Its officially mid June, and only a week away from the bright height of summer. Yang is dancing on the tips of budding fruit, and whirlpools of tiny, invisible storms silently cover all of our dreams.

It’s series 8!

Extended leave

I intended to take a week off after series 7 ended, but it’s been two weeks. I spent the first week pushing on a big migration for our Australian work – the end of May deadline was sort of internal and abitrary, but a deadline was essential. We hit a few borks in the last couple of days, and decided to push it another day rather than make tired mistakes after 5pm. Internal deadlines are nice like that.

The second week I was mostly absolootly shattered. A combination of franticness in May coming to a sudden halt, hay fever, and maybe something going round left me out for the count and falling asleep 2 or 3 times in the middle of the day. (Usually it’s just the once 😉 It wasn’t fun, and some combination of tiredness and deadlines got me thinking a lot about life, the universe and everything. More than I normally think about it.

3 things this week

1. Opening up

It’s a week later now, and the crash has kicked a few things into action. I had a good chat with Luke, which ties in nicely with my previous promise-to-myself to ask for 1-1s more. As mentioned before, I think lack of feedback hits me hard, and a lot of what I’m doing feels like it’s “for me” in a way. (It’s not, but it’s just harder to get constructive feedback at more senior levels, I think.) So the chat got a lot of stuff out of my head, and the day after I was much more able to come up with practical actions I can get behind.

I’ve written down a lot – suggestions, my own values, thoughts on where things might be in a year, even some frustrations. I feel like I’m orienting myself a lot, or perhaps “having a mid-life crisis” as some have suggested… 😉 Or maybe, like Dan, it’s just a time when change is needed.

2. Tech strategy

I promised myself I’d block some time in to refresh our tech roadmap in June, after the craziness of May. This is sort of the third time I’ve had a go at this, although looking back a couple of years, the first stab was so bad (ambitious and unstructured) that I’m not sure if it counts.

I spent a very nice day on Monday, at a standing desk away from the screen, with lots of bits of paper. A separate room would have been a bonus but the screen is the main thing. Memory is the biggest, most important sense when thinking through strategy, not your eyes.

I’d planned to plan out a few projects in the day, but that turned out quite ambitious too – I got a decent chunk of just the tech strategy done, which makes me think that 2 to 3 days is really about the right time to get a 6 month plan together. A whole week might even be good, and (if you can link strategy to backlog planning effectively) would save vast amounts of decision-making overhead going forwards.

(Oh god, when I write it down, it sounds obvious. But it’s often really hard to make time for decent planning. Should I just block a week into my calendar every 6 months?)

The strategy needs more work to prioritise things, but it has key aims, sets out context and risk/impact, and has a few metrics – I’m particularly keen on having some “down to earth”, emotional metrics for the team, inspired by this WTFs-per-minute cartoon. Measuring WTFs feels like a good indicator of team confusion. I also want to try measuring “TIBS” (This Is BullShit Boring Stuff) as an indicator for repetitive, unnecessary work.

3. Meeting up

It was a lovely sunny day on Friday, with a fairly quiet office. We’d signed off some work on a report which I’d been trying to get done for months, so I was in a good mood to meet up with Steph Gray in the afternoon. This was a nice culmination of thing 1 and thing 2 above, and was a great chance to just chat through what we’re both doing, in our efforts to bring together tech and team building. I also had a quote from Steph pinned to my weeknotes template last series, which has kept me guided through a lot of these notes.

In truth, it was probably the first time I’ve had this sort of chat with anyone, which is probably something I’ve been subconsciously picking up in when looking for a mentor this year. But “mentorship” can be a bit of a tricky one. Really, the most useful thing is just time to chat with someone in the same position – through this time, it’s nice to realise that actually we’re all trying to work this out as we go, and that perhaps nobody really has all the answers. Just lots of good books, and experience.

So mentorship is one thing. But it’s going to be easier to simply make the time and find the people to compare notes with. Exmosis in action.

Aims this series

I haven’t done this in a while, but now seems like a good time to think through what I want to achieve in the next six weeks. The important stuff for me now is:

  • Re-establish my own goals, and be more open about it. Does “open” imply “pushy” though?
  • Set the course of work and of the team for the next six months so that I don’t have to think about it.
  • Get out of the office and go and talk to people.

Culturewatch

Reading

Writing

Pondwatch

  • Everything is alive. There were seven ducklings, although I’ve only seen three recently. There were two new moorhen chicks, but I’ve only seen one recently. There is some sort of large fish causing a few ripples. I don’t know if all of this is related. Also, little rats, a whole family of them. Is this cute or not?

Weeknotes 07×06: Staff Development, the I Ching, and Washing up

Is this the latest weeknotes ever?

STUN

Set weeknotes for STUN

Anyway. I took notes as I went, so there’s no excuse for lateness, and no second excuse for not publishing.

Next week (wait, this week now) is my “fallow week” at the end of the series, plus I’m only in 3 days, so no notes next week. Yeah, hard life, etc.

Right, what happened in the distant past then?

Monday

Crumbs, what a day.

Spoke to somebody about some potential work in Northern Ireland, which reminded me that I do really like the policy talking side of things. We delved into evidence, borders, brexit, rural populations, which helps to bring the day job home and make you think again. I feel a bit detached a lot of the time.

Had a security policy chat with Emma and Stefan. I still don’t think I’m a lawyer, or would make a good one.

Had John’s 6-month review after he joined as web developer way-back-when. I haven’t done a 6-month review in a while, but it was really good – lots of open chatter, and he’s fitted in well and I think I’ve done a good job bringing him on board. Key things I aim for with new starters are:

  • Regular monthly 1-1 support, to make sure any questions about anything get brought up / answered within a decent time frame. I find 1-1s are a great place to help explain the less ‘open’ aspects of a workplace, such as oddities that people live with, histories that nobody else cares about, and general personal observations, eg mannerisms and aims of different people in the company,
  • Putting them at ease about the long haul stuff – there’s a lot here, and we’re not going to get it all changed instantly. “Putting at ease” can also be translated as “dampening frustration” and “taming enthusiasm”, depending on the scenario.
  • The right set of work to get them going – something that fits the expectations of the job, but that tests them a little to see how they do. This can often be tricky if the wrong work just happens to be around at the time, so looking for opportunities to apply the expected skillset is useful (talking to others in the team helps, to get some potential work lined up), or personal projects and reading/training in preparation can be useful diversions.

Had Sprint-planning-planning, which was a useful exercise to review priorities and drop some work.

Then bugfixing for bugs which should have come up earlier? – damn you, PHP settings! But still lots of fallout from our server migration, and there are times when infrastructure changes and stuff comes up and gets fixed, and you still don’t understand what happened. They’re the dangerous ones, and I haven’t managed to work out how to prioritise deeper understanding into these kind of technical issues – a lot of the time they can’t even be recreated easily.

Rites

“Assign bug to self”

Tuesday

Did some GDPR stuff and had Alex’s Annual Review. Alex has been here 3 years now, and great to see him progress from a Junior Developer to a Developer and Scrum master in that time. It’s amazing to think you get to help someone develop over that time frame – and that you get to see the alignment between personality and application develop.

I’m quite taoist in my influences – in the I Ching, the 4th hexagram, youth and folly (or youthful development, in terms of progressive change) speaks of water springing out, and it filling up the holes.

Development of a junior staff member can do similar things – there is a lot of enthusiasm, and it’s good to put all that into something, to help people find out what it means to apply it, to get the experience across all their enthusiasm fairly quickly. After that, they have a better chance of finding out what they enjoy or not, and picking their own path for themself.

turrrrtle

The TMNT were basically line managers, but with weapons.

Note to self: Get weapons.

Wednesday

Day off.

Thursday

The monthly email around the shared offices about Washing Up came round… This time it was angrier, more desperate. Every month, we’re reminded to wash up after ourselves (we do) but every month, all it takes is a few people – 4? 5? – to leave dishes, and for the same frustration to continue.

Why am I noting this down? Because we, as a company have similar issues, but far less reminders. The challenge is the same, but the approach is different – we don’t expect everyone to wash their own mugs, rather expect everyone to chip in and wash what they can, as needed, and to be ok asking others to do it when needed.

Something I remember from the old cypherpunk list was a fair disdain for any “solution” which expected or relied on everyone to do the same thing. “If only everyone did x” – the punk defence is that it rapidly leads to a centrally-disseminated enforcement structure in order to keep everyone in line. There is absolutely no resilience in a structure which requires 100% compliance by all members all the time. It is a fragile system at best and a despotic one at worst.

A more resilient structure builds in give-and-take, and the chance for one member of the group to support others, in exchange for a reflective form of support in return. “I will wash up remnants if others do.” Or, alternatively, “if I wash up, hopefully others will wash up more than their share too”.

It is this group perspective that, I think, separates out leaders from the traditional middle- or micro-manager stereotype. A starting point that expects anything shared to be dealt with in a shared way.

So basically I decided to do a bit of extra washing up if I need to, and people can f off if they don’t like it – Random Altruism makes me happy.

Snow white

Tra la laaaaaa

Also got a bit riled in sprint planning. In general, our process for breaking stories down into manageable chunks is… Reasonable. But there are times, usually when people are busy delivering other things, that the process breaks down instead of the stories. Lots of writing is not the same as shared understanding. But sometimes there is also not a shared understanding about what Shared Understanding is either. I admit I struggle with this situation – it’s hard to see how to make time to address this meta understanding.

Anyway, spent the afternoon getting ready for GDPR stuff still, then went out to an open evening at Fabrica gallery in support of, well, art, and got to some drinking/networking/odd life drawing…

Friday

Happy GDPR day! First full Friday in the office for a few months, which I actually really enjoy. There’s just the right mix of quiet and convivial, with very few meetings going on because a bunch of people are out. It was great to see some of the team (not the usual devs/me) getting the A2 paper out to discuss databases too – spatial thought is so important when it comes to understanding links between abstract entities. I don’t know why.

Got our GDPR stuff out the door, and then had to carry on looking at security policies for a separate project. This week I’d copied our policies from Google Docs into GitHub, and from there into various WordPress installs. The ultimate aim is to make tracking updates between everything easier, but it feels like a bit of a jump into a technical solution, and it remains to be seen if it becomes something that only I do.

What else? A beer, some playing with Amazon Web services, and a few emails. Next week is another deadline, to launch a new beta site migrated to new infrastructure, so no rest for the wicked.

Still, four days off now. Have a good few weeks!

Culture

Reading

  • Small book “A Call for Revolution” by the Dalai Lama. Picked up in Foyle’s in London as I was checking out, but just the right book for me at the moment. READ IT. I think would like to get some of his other similar work too now.

Pondwatch

  • A few teenagers have turned up to help out on the community pond, which is nice to see. I’m not sure if they’re more help or hindrance, but it feels important. Took some photos as part of my ongoing documentation project for it.

Weeknotes 07×05: The end of 38

Actual Theme

Bit of a strange, scattered week this week. I don’t think I’m going to be able to stick to my usual structure of expected-thoughts vs actual-thoughts, so I’m going to launch in and just note down what I need to get off my chest. Was lovely to be so linked to by Katie Attwood this week though (the joy of publishing late) – I think a bit of a refreshed look at week notes this series has really paid off.

Clouds

Monday

Memory clouds, like the sea mist that rolled into town as I got off the train. G-cloud. Excel. WordPress. Unremarkably productive.

Tuesday

Planned power outage in the whole office building. Worked from home, which meant finally getting a semi-decent mysql gui client on linux. Bugfixing. Document writing.

Wednesday

Spent the morning fixing a couple of bugs – the power outage had a few knock-on effects which we hadn’t encountered before, so we had to scramble to get things fixed before a webinar later in the day. Then I had to go back to the same bug as the day before, which had reared its ugly head again. Technobabble here, but need to line up some time to fix it properly. One of the more frustrating duties of Head of Tech is that design flaws can come from any one person in the team, but if it goes wrong, it’s up to the lead to sort out time and skills to fix it. Or maybe that’s just me?

Also put in a small stake against casual feminism. I’m not sure it helped, but I’ve been trying to see things from a different viewpoint following on from a couple of discussions recently, and maybe I’m starting to see the issues a bit more clearly? Dunno, still feels like a whole conversation to be had in private. Not sure why. To easy to feel like you’re shouting about it, going “LOOK AT ME, I’M SUCH A FEMINIST MAN.”

film noir

Thursday

Thursday was long and intense, not helped by being groggy when I awoke, having one ear blocked, the office air seeming to hang with its own tension, and witnessing a minor road incident. Our “internal analysis” session looked at 4 more S’s from McKinsey: Structure, Style (of management, etc), Staff and Skills. Given there was a lot of history we hadn’t ever really discussed before, it brought a lot of things to the surface, which is good I think, but draining. At one point I think I was having an argument, but I was zoning out to the point where I couldn’t tell you what it was about. That’s not great.

Personally though, it reinforced my view that getting good feedback at the moment is really hard for me – I don’t feel I have the opportunity, openness or, perhaps, trust, to ask anyone what I could/should change, or what impact I’m having. I’m very much in my own filter bubble, which is something I wasn’t expecting to affect me so much, and it was actually encouraging to hear that others would like to both give and receive honest feedback.

I’m further resolved to just be open about it, and ask specific people for feedback next month. If people aren’t going to offer to do me a 1-1, I’m going to have to do it myself. Ho hum. There’s also a lot of legacy around, which I need to clear up on. June could be emotional.

Friday

Me birthday. Going to have brekkie in a nice cafe, then go for a walk to the coast and back over the hills.

walking

Culchure

Reading

  • Taoism by John Blofeld – how have I not picked this up from my pile of books before?
  • What is Feminism? by Bea Appleby and Louise Spilsbury – A slim book intended for older children and teenagers, but I wanted something fairly simple and impartial as an introduction to some of the ongoing discussions and wider ‘theory’/discourse about the subject, which it was.

Seeing

  • Saw The Shape of Light exhibition at the Tate Modern yesterday – without kids. Recommended for fans of abstract monochrome photography through the ages – I very much enjoyed it, plus great to traipse round the South Bank for a whole day.

Pondwatch

  • Not much this week – no duck fights. I went to help out on Tuesday evening, but everyone finished just as I got there.
  • The bluebells are gone now too. I didn’t manage to see them properly this year.

Nobody Likes Code Reviews

Judgemental Pigeon Disapproves

Typical tech team conversation:

“The work is nearly done, just a few tidies but it basically works.”

“Has it been properly tested?”

“Not yet, but the basics work.”

“And any changes that come out of a code review, I assume.”

“True, but hopefully not many.”

“So still a fair bit to do then.”

“Yeah, a bit more.”

We’ve been running code reviews for a few years in a fairly tiny team with a mix of experience. For context, we don’t generally have strong specialisms, and do a fair bit of picking-it-up-as-we-go. Over the time, I’ve noticed two fundamentals:

  1. Nobody likes code reviews
  2. The right attitude to code reviews goes a long way, both for individuals and for the business

Part One: Nobody likes code reviews

You’ve just spent days using nothing except your brain and fingers to craft a solution (elegant or otherwise) to the latest user need – brilliant! The problem to hand is solved, everyone will love you, blah blah blah. Onwards and upwards.

Except – Code Review.

(If you’re not familiar with the term, then a Code Review is basically a chance to run what you’ve done past someone else. This. Is intended to catch bugs, raise questions about the work, point out improvements (including style, documentation, formatting, etc), and learn from each other. The actual benefit will depend on who’s reviewing who – it can be beneficial for a junior member of staff to review a senior member’s work, and vice versa, but the dynamic will obviously change.)

The word itself is horrible; “review” sounds so judgmental. Like your work is going to be scored out of 10 by some gravy-train critic with an axe to grind. The code works, doesn’t it? Why does it need anything further? This isn’t school any more.

There are two main reasons to be “afraid” of having your code reviewed:

  1. Explaining things to others is hard and boring.

  2. Being “wrong” is difficult.

This gets at a fundamental “double-think” that helps in code reviews – and, indeed, in life. On the one hand, how can we be proud of our work so that we can take interest and responsibility for it, while simultaneously being humble enough to accept critique?

Part Two: The right attitude goes a long way

In order to not hate code reviews – and to become stronger as a result of doing them – we must therefore develop a key set of skills as a programmer being reviewed:

  • Respect for the person reviewing, whether they’re more senior, junior, or an equal peer – without this, we cannot be open to suggestions from them. (And vice versa, it is essential to respect the person whose work is being reviewed. This mutual respect is the key part of the “contract” underlying reviewing each other’s work.)

  • Patience to explain something (often to someone who may otherwise have no idea about context)

  • Clear communicationstorytelling about what you’ve done (and not done), and (more importantly) why you’ve done or not done it

  • An inquisitiveness that opens us up to collaboration, to help explore feedback and suggestions arising from review.

By focusing on these as key skills to develop, a team can learn more quickly from each other. Individuals can improve their own skills faster, as well as learn more about working with other people generally – an essential, yet subtle side-effect of code reviews is learning how other people think. By being open to alternative thought processes, we can expand our own, and bring wider experience to problems in the future.

As Tech Lead (or a senior developer), what can I do to encourage these properties in the team?

The main, most essential thing is to simply lead by example. It’s good to become part of the process by reviewing code (as may be expected, depending on the team size) and adhering to the values above. But also it’s important to write code and be reviewed – this demonstrates what you believe to be good practice. Plus everybody has something to learn off others – often a junior member of staff reviewing your code will ask you basic questions that get you to think about your basic assumptions.

Secondly, and this is something I’d like to bring in more, it’s valuable to be very clear about the aims and values of the code review process up front. Inform new staff about why code review is important, and remind people every now and then.

It’s very powerful to be able to say that a team can learn from itself rather than rely on books and courses, or that a developer’s job entails learning and teaching, above and beyond simply pushing out lines of code and UML diagrams. Learning and teaching is something a good team does all the time, as a matter of course.

I haven’t touched on more detail here, such as what the main attributes look like, or what to look out for to see if a team really are developing as a unit – maybe I’ll follow up with these in a later blog post, if there’s interest.

Weeknotes 07×04: In and out the dusty Jigglypuffs

Welcome, reader. Here are some weeknotes…

Before the week…

What am I looking forward to this week?

Thinking through the next steps of the tech team Roadmap. Keep on running, and all that. And there’s good potential to line up some really satisfying work for the team over the summer.

What am I not looking forward to this week?

Balancing a bunch of work stuff with chicken pox childcare.

What am I not sure about?

Planning for upcoming busy with people being away, or out and about. Takes a lot of effort to keep the dots joined.

Expected theme

Lots and lots of tiny steps.

After the week…

Actual theme

A strange sense of getting things done without being there much.

What surprised me?

Getting excited about doing public speaking – see Friday.

Space for links.

But more prosaically I am missing two things from my diary:
– time to do some proper thinking and get into ‘flow’ so I can do more than just respond to things (and avoid getting into the habit of doing this as the weekend)
– Some unscripted time where I be available to my team for follow up actions and checkins on projects

  • Why Small Teams Win: “When everyone knows and understands exactly how their contribution adds to the final product, everyone on the team ends up creating better work.

Monday

Bonk Halliday.

Tuesday

Half day. Early in for an early finish, only to find some hastily arranged meetings and other people on sick cover. This is fine, but in combination with my own hours being thrown around, meant I spent some time rejigging my thoughts and plans for the next few days.

Re-prioritised the important stuff I could help with. Warned the team about stuff that was likely to get pushed. Succinct summaries in Slack as a reference point for later.

Chatted to our partners on GDPR. Trying to bring everything together in a smooth, organised fashion, but I suspect that’s not going to happen, now that we’ve discussed everyone’s diaries.

CALENDAR BATTLE – MAY 25TH, I CHOOSE YOU

Discussed product pricing with Kim and Stefan. Felt for the first time that I kind of got this stuff – how market development is all about a balance between revenue and sustained business, but also how it can dovetail with opportunity. We’re looking like we need to discount a little to pull in certain clients, but the cleverer approach ties this in with market opportunity 3 or 4 years ahead, the potential for expanding the team in the short term, and opening up new projet ideas.

They might not work out, but it all makes sense in my head. (Obviously this lack of angst and puzzlement makes for rubbish weeknotes. Sorry.)

Finished by fixing a web thing which I’d got stuck on. Again, crap weeknoting. (Lesson being learned: uh, look in the obvious config files? #mindblowing but #smalltruths)

(Better lesson learned: Legacy code is complex and I don’t think our current approach to exploring it is particularly geared up for easy access or collaborative exploration.)

Wednesday

Had to cover #son2 as his reign of pox came to an end. Did some gardening and went to the playground.

BECAUSE I LIKE THIS GIF

Thursday

Long sprint planning meeting in the morning. There’s a lot of stuff coming up, with a self-imposed deadline at the end of the month, so useful to talk it all through. But still feels like it’s hard to get a basic overview of priorities, and that we’re still spending a lot of time deciding whether other work should come in or not.

Maybe that comes down to a mix of three things?

  • 1. Focuses are discussed, but not strongly adhered to – can we be clearer on priorities in the days before the planning meeting?
  • 2. The world is changeable – c’est la vie, but can we be clearer about whether a change necessitates an interruption to expected focuses?
  • 3. Skill sets – what personal attributes do people need in order to make a decision quickly – Familiarity with the work? An interest in progress rather than complete correctness? Sharp rationalising?

Strikes me that playing games with time limits on might be a good exercise for decision-makers in group environments – I’m thinking stuff like speed chess, or any fairly fast, but complex game.

In general, I wonder if there’s a link between playing games and effective decision making?

YOUR TURN, JIGGLYPUFF… TO MAKE AN INFORMED RESOURCE-DRIVEN STRATEGY MOVE

Good retro on scope creep, which turned into looking at different kinds of specification and clarity/uncertainty. I have a personal action to plan out longer term estimates and business value measures better, but realistically not going to happen in the next few weeks.

Also finally, finally had a good session with Excel or improve our reports on Hive Pixie. I can see an end now, now that the Proof of Concept has been proved. Very happy.

And this sprint, in our Pokémon-based naming system, is the classic “Sprint Jigglypuff”. Generally a good feeling today, and seems appropriate for Eurovision week!

Shut it, Jigglypuff

SAVE YOUR ENERGY FOR SATURDAY, JIGGLY

Friday

Worked from home for domestic logistic reasons. Which worked out well and got loads of stuff done. Mostly digging into my email Backlog, and digging out policies for all the third party services we use. Woooohooooo.

Must dedicate more time to maintaining emails – what is the best time of day for this?

Scarily, I’ve signed up to do a quick talk about Democratising Big Data at the end of June – looks like I’m the only non-academic-Doctor talking. Feeling a little sense of imposter syndrome I guess, but not as scared as I would thought I’d be.

I’ve got to send a quick abstract of the talk next week, which is forcing me to think about my point, and my narrative – and I’m actually getting really excited about it! So I just need to fend off the feeling of Imposterness with some confidence that I know the subject (a decade of working in the area helps – A DECADE) and a clear line that I can follow, so I don’t go off into strange waters.

ANY QUESTIONS FROM THE AUDIENCE?

Future plans

Been writing up a blog post on Code Review Culture following on from last week’s notes – I will finish it this week.

Also Ian noted his interest in a broader series of posts, looking at establishing a culture of errors more generally, so I’m hoping to start plotting a few on this.

Kultcher

Reading

Pondwatch

  • Saw two ducks having a right old barney with each other. Didn’t know whether to break it up or what.
  • Fish were jumping on Tuesday morning. Pretty big too, size of a human footy I reckon.
  • The bluebells are still out!