Imagine this scenario:
You happily started your Thursday, already know what you’ll be working on, take a couple of sips of your cup of coffee, it’s “small Friday” yei!!!, and join the standup. Full team:
PO: Ey guys, I just got an email from our largest client. They expect a full feature ready to test on Monday.
They had asked for it three or four months ago. The work, as we understood it then, was months of build plus QA. It had been left floating in the air.
Supa Friend: wait. You were supposed to review specifics with them. We followed up, but you never brought anything back:
PO: I know. Between projects it completely slipped. I confirmed with them a month ago and again last week. I just forgot to tell you.
Awkward silence from two of the other engineers.
I reached my Supa Friend in a direct message:
Me: ey, we can tackle it. If you and I coordinate and drop secondary stuff is doable.
He immediately agreed. He WAS SUPER angry.
Me: Blame later, solve now. WDYT?
Back on the call:
Supa Friend: PO, look. I know mistakes happen. I would stay through the weekend if needed. And I know he will too (here I nodded). But I’ll let others speak for themselves.
Sepulchral silence, no one else said anything.
Me: Let’s do the following…
Me: I’ll take W, then Z. Supa friend can take Y and X given those are his domain. Engineer 2 almost finished his work, he might help later. This will also free Supa Engineer 3 to continue on his critical track.
Me: Then, at tomorrow standup we decide the weekend.
Everyone nodded. Call ended. Coffee refill. Hands on keyboards.
We went wild, created a call for anyone in the team to join and everything started:
- Pull request here.
- Pull request there.
- Branch swaps
- You already have this setup on your machine, it will be faster if you run that.
- CI is broken on your branch, I’m pushing a fix for you
Suddenly, Engineer 2 joined and asked for something to help. We gave him something. Later on, Supa Engineer 3 also joined bringing more hands to help.
We coordinated, switched tasks, took new ones, split in pairing or mobbing, then regroup, same dynamic and energetic mood.
Later, we pulled QA into the loop.
- Slice ready, test it
- It’s broken on something
- I have the fix, already pushed, re-check
- All good, jumping to test another thing
We moved “QA to the left” instantly, instead of that boring cycle of dev->qa->dev->qa.
We stayed a little bit more than usual, running some processes that needed to be run outside business hours. When green checked, we went to sleep as most of the feature was there.
Friday morning. Everything was working fine, we were moving fast so we continue. By around 4:00 pm everything was ready.
Supa Friend lined up the client for weekend testing.
We would be on-call for anything that needed our attention. Nothing arose.
Then, on Monday:
CLEAN. Client verified, everything was working. Case closed.
No churn, just a group of people working together.
Later that week we go hard on the PO
Team: This cannot happen again. We chose to absorb it this time. We’ll not own your miss next time.
Team: From now on at least one engineer must be on the calls with the clients, and in every email.
Team: If updates stop, we can go to the client directly without “stepping on” you.
It worked.
Open call got silence. Names on pieces got hands.