Early-stage engineering

What attributes make for a high-performing engineering team working on early-stage challenges?

Mastery of a programming language? Decades of experience? Air-tight specifications? Perfect application of Agile?

An early-stage, high-performing team simply understands the problem to be solved, and knows when it has solved it.

They are a “one-pizza sized” team. They divide and conquer. They take 3 minutes to read the agile manifesto, and get on with it. They’re relentless in building new skills.

Don’t expect them to have, to follow or to craft the perfect process

They break down work, assign it to one another and re-group after a few days. They are accountable to one another – and no one else – for their contribution.

Don’t mistake meritocracy for exclusory behaviour

They pair-up, but on problem-solving; not programming. They see “mob programming” as an anti-pattern in extremis; they know it’s the software equivalent of 5 road workers watching 1 colleague dig a hole.

Don’t measure output; programming is just the means to an end

They are infuriating to work adjacent to. They are ruthless in their focus to the detriment of all else.

Don’t expect great communication; this team is 99% walk, 1% talk.

Except…

They will ask a lot of questions. If you’re the person with the problem they’re solving then you get all the questions, all the time.

Don’t underestimate the depth of their understanding of a problem space

They are truly autonomous. Not because they decide what to do, but because they know when they’re working with imperfect information and seek to learn.

Don’t expect them to only code the product; they code to understand a problem

They experience problems – a lot – and fix them quickly. They learn from their mistakes by retrospecting, but not hours-long Retrospectives. They produce a concise write up, stash it in the repo and move on.

Don’t expect to need a team like this on every project, product or problem; just the ones with an abundance of ambiguity.



Get notified of new posts

© Jonathan Roberts 2022
I occasionally update articles to fix typos, improve readability or modify content when new information is available to me: view revisions for this article