LeadDev London 2022 (Day 1)

Last week I was lucky enough to spend a couple of days at the LeadDev London 2022 conference. This is a series of conferences aimed at senior engineers and engineering managers, although for obvious reasons it’s been a few years since it was last held.

The conference itself was held in the Barbican Hall, which in general is a lovely venue. The seats in the hall were comfortable, and spending two days sitting there was not as unpleasant as I had feared. The Barbican itself was built in the early 1980s, and a few areas, in particular, looked like they needed some refurbishment - particularly the downstairs men’s toilets.

The food was very nice, particularly the Banoffee pie from lunch on day two. The size of portions was generally good, although you did need to stock up from the salad bars at lunch to get a decent plate full. Queues were also not too much of a problem, other than the first ten minutes or so of lunch.

Enough about the practicalities though, what about the content? No one goes to a conference for the food, but instead for what you can learn and take back to your job. LeadDev is a single-track conference, so you have no choice over what to see, but fortunately, most of the content was general enough to be useful to everyone. Both days were hosted by Meri Williams who did a great job keeping things moving swiftly, and setting the scene for each talk.

The one talk I did skip was about scaling a mobile app deployment process because I don’t work in mobile. There was another talk with a brilliant title about driving and defining software quality, which turned out to just be a story of someone’s time in game development QA, and I struggled to find any useful takeaways. These scheduling missteps were rare though, so now let’s talk about the talks I enjoyed the most.

As I write this you can buy on-demand access to all the talks from the LeadDev site. I don’t know if they plan to make the talks available for free at some point, but previous conferences are available, so that suggests they will be.

The following is a summary of my notes from each talk on the first day. Any mistakes, errors or things that don’t make sense are entirely my fault. Hopefully, this will provide a flavour of each talk and inspire you to watch the ones that interest you the most to get the full story.

Vitor Reis

This talk was about how to tell what a high-performing team look likes, but also about how to make the trade-offs to make high performance sustainable.

What does chaos look like? It can look like managing 20 people and still being on the on-call rota (depressingly this applies to me!) or doing five or more interviews a week because there aren’t enough people available to do interviews.

Try to recognise when you’re doing poor work, or are wrong, by being self-aware. Also, ask your manager what they think it would great looks like in your position, and compare it to your current performance.

Your aim is to be replaceable. If there’s a process you run can you automate it? Can you delegate it?

Be efficient with your time, and take the time to reflect on how you’ve spent your time each week, Try to do better each week!

It’s tempting to add people to a team but this can have negative consequences. People start to wonder if they’re being replaced. They worry that the new person might not do their job well, or that they might do it better than them! Adding people will make things go slower, at least for a while.

As a leader, you should be writing all the time. Writing is thinking, and it helps others to follow your thought process.

Keeping Your Code Base Fun At Scale

Raul Chedrese

This was a short talk looking at the question of how we ensure every developer has a fun experience? Code bases naturally become less fun to work on as they get bigger.

Don’t assume you know the answer - try to understand the developer experience, then form a vision and iterate on it. Understanding can be as simple as sending a survey with the question “What is preventing you from having a fun experience?”

Focus on building strong tools. Pick one thing and focus on that, rather than trying to solve too many things at once.

CSS: Cascading Support Systems

Phil Bennett

Empathy in senior leadership is a superpower. It increases creativity and productivity. When you are several levels up it’s easy to burn out worrying about the problems of all the people who report to you.

A technique that Phil has borrowed from therapy is Solutions Focused Brief Theraphy. This works in a similar way to how we work in product and engineering teams, so is familiar to people. To follow it you ask the question “Imagine the problem you’re facing has gone away. What do you notice?” Work with them to define the steps to get there, and help them to execute those steps.

As a senior leader, you should ask people to support each other, and cascade this to the people who report to your reports. You can scale empathy!

What Dashboards Don’t Tell You

Laura Tacho

As someone who is passionate about dashboards and trying to be data-driven in management, this was my favourite talk of the conference.

Some metrics can be perceived differently. Laura used the example of peaks and troughs in a tickets completed metric. Without additional context different people can interpret the data differently. By overlaying the number of incidents the metrics become more valuable.

People’s self-perception matters more than we think, and we should not discount qualitative metrics.

How do you move from metrics being perceived as surveillance rather than empowerment?

Vanity metrics are metrics without meaning. We can add tension to metrics to make them more valuable. Balance speed or activity against quality, reliability or satisfaction.

Laura recommended three sources that I have not yet checked out, but I intend to.

She also recommended GetDX.com as a tool to help you measure developer experience. Unfortunately, it has a truly terrible website, with no information about the tool, or any hint of pricing, just a “request a demo” button. I really liked the sound of this tool, but it’s going to be hard for me to justify investing time in it.

Building The Perfect Asynchronous Meeting

Alexandra Sunderland

How is an asynchronous meeting different from a Slack thread or an email? It’s still scheduled like a meeting, but instead you just put deadlines into people’s calendars about when they should have responded to the meeting. It requires all the usual good practices for meetings, but they’re even more important. You should share timelines for the meeting, expectations about what people should do, logistics of how to contribute (Google Docs, Miro, etc), and what you expect from people.

Meetings don’t need to be 100% async, but the preparation can be done before a shorter synchronous catch-up. For a retro, you could fill in the retro board ahead of time, and then have a meeting to discuss the board.

Meetings can be asynchronous for information pushing or brainstorming, but relationship building should be synchronous.

The benefits are that you get more time for thought, as the context is more accessible (although more effort is required to set the agenda and in keeping notes). The downsides are that it requires more coordination, and you don’t get real-time answers or fast-paced discussions.

This was a really interesting idea, and I intend to try it out for the next retrospective I run.

How to build trust as a new manager in a fully remote team

Sadhana Gopal

Being remote means you must be more intentional about building relationships. You are only represented by your active voice, so don’t be passive.

It’s easy to misinterpret when remote - assume positive intent.

As a manager try to design the wider environment, then design the team environment, and finally design yourself to model the behaviours you want to see.

Use asynchronous meetings for productivity, but synchronous meetings for engagement.

Don’t be always on - acknowledge FOMO, and take time to switch off.

People Building: Career planning for your direct reports

Daniel Burke

On a practical level, this was a really great talk. Daniel Burke was a really engaging, enthusiastic speaker who really owned the large stage in a way that most other speakers didn’t manage.

The great resignation is not about people quitting, it’s about people growing. This talk was focused on Daniel’s method of career planning. He asks people three questions.

  1. Position - where are you?
  2. Plan - where do you want to go?
  3. Progress - how will you get there?

Aligning on performance with your manager is essential to moving forward on career building. You can only be successful if you’re on the page as your manager about what success looks like.

Don’t wait for the role to open up to begin preparing for it.

As a manager, it’s important not to project your motivation onto others. Although it’s a dirty word, money is a valid motivation for going for a promotion!

It’s not about the next level, it’s about the next step.

Taking the 737 to the MAX!

Nickolas Means

This was a really great talk about the two Boeing 737MAX plane crashes, the failures that lead to the plane design that allowed them to happen, and precisely why they crashed. The talk was really hard to take notes from, and isn’t directly relevant to many people, but is well worth a watch if you have time.

LeadDev London 2022


Don't Call It Tech Debt

A common refrain from developers is “We have too much tech debt! We need to tackle it to speed up!” It’s hard to argue with the sentiment - badly written code or outdated software does take considerably more effort to maintain than code that follows current best practices. However, saying we have too much tech debt is not useful, because it’s not specific enough. You can’t create a vague “tackle tech debt” project and expect to get sponsorship from the business for the work.

If you’re lucky enough to have a portion of your time available to be used for engineering directed projects then you’re still unlikely to be successful with a vague tech debt project. Getting agreement for what tech debt actually is is nigh-on impossible. Everyone has their own pet peeve that they will want to tackle as part of that project.

My solution to this problem is to avoid using the phrase tech debt. Sometimes tech debt is clear - it might be a database that is outside of its support lifecycle or a library that is many versions behind the current release. More common is that when people say “tech debt” they mean things like code that is not as testable as they would like, or which follows some patterns that they declare to be an anti-pattern. While there is broad agreement about what constitutes good code, the more detailed you get the more it becomes about personal opinions.


The Power Of Dashboards As A Management Tool

In November 2021 I gave a virtual talk as part of the IT Non-Stop 2021 Conference. Here is a recording of that talk.


Office Based Osmosis

Recently my collegue Chris Sheldon posted an article titled “Under Pressure”. It’s excellent so please take a few minutes to have a read of it.

Ok, are you back? Great. Chris talks in part about feeling like he misses absorbing knowledge through osmosis in an office.

Osmosis, in case you’ve forgotten your biology lessons, is the spontaneous passage of something through a semipermeable membrane. In this case, we’re talking about knowledge entering your head without you needing to consciously do anything about it.


Ownership and High Performing Teams

Imagine you’re making a change to a codebase you don’t like. Testing is difficult and you don’t have a good understanding of how all the parts of the system fit together. It’s tempting to just do a bit of cursory testing, deploy it to production and keep your fingers crossed. This is not a pleasant situation to be in, and will inevitably lead to production incidents, sad developers and cross managers.

As a manager, if you encounter a situation like this you’ve got a choice to make about how to fix it. Instinctively you might want to put more processes in place around deployment and testing. Maybe kick off a project to refactor the code base and make testing easier.

Maybe you can reduce failed deployments, but at what cost? Slower development caused by extra bureaucracy and more policies to follow is going increase friction, delay releases and eventually lead to an unhappier team.