Rapidly changing requirements

The pandemic was complete chaos for everyone. How do you cope with that much change in an engineering team?

Rapidly changing requirements
Photo by Edwin Hooper / Unsplash

The pandemic was complete chaos for everyone. It was a strange and stressful time, and things seemed to change at a furious pace, especially at a supermarket.

In March 2020, I was working on Chop Chop – Sainsbury’s 60-minute grocery delivery service. We had fallen into a steady rhythm of pair programming and test-driven development, with a good atmosphere in the team even when challenges arose. I had maintained that part of the reason for our camaraderie was being able to pair all day, every day. Doing so in person gave us plenty of advantages, from reading body language to holding impromptu discussions.

When the government’s advice to work from home was first announced, the top priority was the team’s well-being. The prospect of a global pandemic was scary enough without forcing people into the office, so we moved straight to working from home and finding our way around the technology. Our tech setup quickly developed:

  • Tuple for pair programming
  • Slack for messaging and impromptu conversations
  • Microsoft Teams for meetings (Sainsbury’s preferred using Teams, while the engineering department preferred Slack, so we used both)

We were fortunate to have an already established team. Getting used to the new working method didn’t take long, and we all knew each other well. We also emphasised empathy, and everyone was acutely aware of the pressures we were facing and gave each other space.

On the other hand, grocery deliveries at the start of a lockdown are a challenging endeavour. The business initially decided to close the service so that our stores could focus on replenishing stock and serving our customers. Within the space of a few weeks, we went through the following decisions:

  1. Closing the Chop Chop service, so colleagues in the stores had one less thing to focus on.
  2. Starting to work on a survey so we could identify vulnerable customers we should prioritise.
  3. Stopping work on the survey since the government agreed to provide supermarkets with a list of vulnerable customers.
  4. Reopening the Chop Chop service but in a different store, using a Sainsbury’s Local instead of one of the main supermarkets.
  5. Closing the Chop Chop service in the Sainsbury’s Local store in favour of reopening it in the original seven stores.
  6. Beginning the expansion of the service to fifty stores.

That’s a lot of change in a short time, especially against the backdrop of an international crisis where everyone is dealing with immense pressure. As a manager, there are a few things to consider.

  • You have to acknowledge the difficulties of the situation and the pressure that everyone is under. These were extraordinary times, and expecting everyone to operate as usual was impossible.
  • It’s essential to get out of the way of the team’s code. If the team are already working well together, then this is a scenario where trust pays off, and they can be allowed to get on with things.
  • There might be more of a need for throwaway code, which we, as engineers, naturally try to avoid. Nevertheless, when circumstances change rapidly, you must be prepared to ditch what doesn’t work.
  • There is a distinction between information the team needs to know (anything immediate that affects how they do their jobs), information the team should know (details that can be shared for context and transparency, which will build trust), and information that should be kept from the group (anything that would cause unnecessary confusion, or that they don’t need to know and would damage morale or their ability to do their jobs). For example, if a senior stakeholder is wavering on a decision, the team doesn’t need to be told until the decision is made.
  • Relay how the team is feeling to senior stakeholders. Even if it doesn’t change the decision (and in most cases, it probably shouldn’t), it does lend them context for how a team might react.
  • Look after yourself. This is easier said than done when your role revolves around looking after other people (and is something I’m still working on), but you can only support your team when you’re in good condition.

I’m still immensely proud of how the team reacted to a challenging situation. It’s worth recognising resilience and celebrating it, which can be tricky when it feels like everything is going wrong. There are always moments to celebrate, though.

Some food for thought:

  • How do you handle rapid change? How did you handle it during the pandemic?
  • How do you act as a stabilising force within the team?
  • How do you look after yourself (especially in these circumstances), and how are you?
@robl@hachyderm.io | @robl | github.com/rob-lowcock