Disclaimer: Details of this story have been altered slightly to protect the
identities of individuals.
“I’m just too busy. I barely have time to breathe, let alone lead the threat
modelling exercise with my team”. This was something that one of my peers said
to me at the end of a long day after I asked him how he was doing. I believed
him—he was much too busy. He would send slack messages and emails at ungodly
hours. He would only attend parts of meetings (ducking out half way through with
a “have to run to the next one” in the chat). He’d always be noticeably nervous
at scrum-of-scrum meetings as leadership grilled him on the deadline they’d so
enthusiastically thrust upon him. And his team were all clearly stressed. Two
key team members had quit already, and it looked, to me at least, that others
were also peeking over the fence.
What an absolutely terrifying proposition that is! That he and his team were too
busy to do the job they were hired to do, and in a way that could be
catastrophic—and this was by no means an isolated incident.
The system that they were building was a replacement for a legacy system that
exposed customer personal data. A customer’s name, age, date of birth, as well
as their gender identity, and minority status were all accessible in one way or
another through that system exposed to the public internet. It’s not really the
sort of work where you should skip any of the security fundamentals.
The absurdity of being too busy
To me, this whole situation seemed absurd. Both himself and his team were too
busy to do their work properly and with any level of quality that wouldn’t only
make matters worse. The business had defined the deadline, the scope, and had
(almost gleefully) ignored asks for more time and resources. His lack of
experience in the role meant that he simply accepted this fate and would instead
pressure his team to deliver faster to try and compensate. This meant
sacrificing quality engineering practices and, most disappointingly, the
quality-of-life of his team. Little did he realise at the time, but…
as long as you are doing your work well and continuously working on the next
most important thing prioritised by the business, any pressure to deliver
beyond what your team is capable of is objectively unreasonable.
If the following are true:
- Your team is following software engineering practices that have been shown
time and time again to be indicative of highly performing technology teams
(think CI/CD and DevOps). - You’ve modelled the architecture, work, and communications of the team(s) as
effectively as you can (with respect to what you can influence) - Your team is always working on the next most important thing (as prioritised
by the business)
then, there are no more levers for you to pull that do not result in a degraded
quality-of-life for yourself and your people and you need to think carefully
about why you’d ever want to do that.
You could sacrifice quality, but then your team will have to deal with more
unplanned work (as issues arise in production), decreased lead time, increased
change failure rates, etc. You could ask the team to work over-time, but unless
they are agreeing to that work and being paid handsomely for their additional
time (which they usually aren’t), then you can quickly expect them to leave for
jobs that are more reasonable, satisfying, and pay better (the gaming industry
is figuring that out… slowly).
In this case, the only reasonable ways for the business to exert influence over
the work, are to:
- Decrease the scope of work.
- Fund additional teams and/or restructure the work accordingly.
- Move the delivery date.
You should only ever be busy on purpose
In some scenarios you need to grind. Maybe you’re a start-up trying to meet a
deadline for a demo, and to secure funding you need to nail this presentation.
Maybe you’re an ambitious team that is pushing for a lucrative bonus. Whatever
it is, these all have one thing in common: they are in pursuit of an agreed
incentive.
If you are too busy, why? What are you and your team in pursuit of? If you are
too busy because of pressure imposed by someone else, why do they believe they
should be able to ask more of you?
Are you too busy because the business has expectations for you to deliver by a
certain date regardless of the capacity of your team (who are delivering high
quality work and always working on the next most important thing as prioritised
by the business)? Then that is a conversation that you need to have with your
boss and your stakeholders. That is likely unreasonable.
Are you too busy because the team is dealing with engineering quality issues
caused by a predecessor? Then that is another conversation you need to have. The
business should help free up capacity so that the team can address those issues,
or at the very least support the team with aggressive overtime compensation
until it’s remedied. Failing that, maybe reflect on why you joined the company
in the first place.
On a side note, “how much of the team’s time is taken up by unplanned work?”
is a question I’ll often ask during an interview. If the answer is “we don’t
know” or “a lot”, I will then follow up with, “If I’m successful, how much
time can the team have dedicated to addressing issues with quality?”. If the
answer isn’t something along the lines of “as much as is necessary”, then
I’m justifiably dubious
Are you too busy because the team is dealing with engineering quality issues as
a result of decisions made by you? That’s a harder conversation, but you still
need to have it. Negotiate time to address the quality issues and work with your
peers. It will often be in everyone’s best interest to do so.
In conclusion
You and your team should never be so busy that you can’t do your job properly or
that you begin to hate your work. Especially if you’re a leader or a
leader-of-leaders, then you should actually (yes you should, I’ll die on this
hill) have free time to think alone, and to talk and ideate organically with
peers. Contrary to popular belief: back-to-back meetings isn’t a badge of
honour, it’s a red flag.