More and more companies are putting high pressure on developers. You find yourself in a situation where you have 2 weeks to finish something that should take 2 months.
Maybe you are in a small startup, and an urgent request arrives. Or you work in a big company, a crazy billionaire buys it, and then sets unreasonable deadlines. Maybe your company had big layoffs, but you still have the same tight deadlines.
It’s tempting to just dive into the work. The CEO might say: “Our company depends on it, let’s go!”.
But before you start this 2-week-long Hackathon, ask yourself the following questions.
Is the deadline really necessary?
I love this analogy:
Each car has an optimal speed/fuel ratio, somewhere around 90 kmh / 55 mph. If you go faster, you might reach the first destination sooner, but you’ll run out of fuel earlier.
When we are going into ‘all-in’ mode, there is a price to pay:
You’ll accumulate technical debt
Wrong decisions will be made
People will burn out faster
Ask the hard questions. Maybe the feature is not that urgent? Who decided that 2 weeks is a reasonable deadline? Does everyone understand that the quality will suffer?
You don’t have to like the answers. But when you ask your team to work very hard, they better know why.
Who should work on that effort?
It’s tempting to just throw everyone on it.
Some manager: “If you say it’ll take 3 developers 2 months to develop, we’ll give you 12!”
We all know how it’ll work out…
For small projects, there is a limit to how many developers we can throw on it. At regular times, we should use the optimal number. So if 2 people can finish a project in 2 weeks, and 3 people can do it in 2 days less, there is no sense in assigning the 3rd developer to that project full-time.
In urgent times, we might decide to do that. Pair-programming, trying multiple solutions for the same problem simultaneously, or even working in shifts. Still, there is a limit, above which additional people can even INCREASE the time it takes to finish.
I’ve seen it happen while working in a big organization.
It created noise, and it was much harder to concentrate or do quick syncs that way. Imagine 10 people working on a small feature…
Back to you - together with your manager, understand what is the balance you need to strike. If there are other important features that could help, maybe you shouldn’t put your whole team on the single most critical one.
It’s ok to divide your team
Let’s assume you put 3 of your 5 developers on that urgent task. For a short period of time, you can divide your team. The 2 developers working on ‘non-critical’ work might have a different schedule, and it’s fine. Just set the expectations clearly.
How hard should we work?
This one is the hardest to deal with.
Even in the most critical situations - people have lives. Families, kids, hobbies, responsibilities outside work. You can’t expect people to work 90-hour weeks and sleep in the office (unless you are the richest man on earth).
On the other hand, you can’t be afraid to ask people to work harder. With all the recent layoffs, it seems like a less popular opinion. “The company doesn’t care about you, why should you sacrifice your free time?”.
Personally, I believe that we should care about the place we work at. Even from a selfish perspective - when the company succeeds, it’s better for you. Especially in a startup (where you might have stock options), but also in bigger companies.
Talk with your people, and set the expectations
The answer depends a lot on the people, the culture, and the situation.
Can your people work more hours, or do they have other responsibilities?
Is working during the weekend acceptable in your culture?
What did other teams do in similar situations?
Here are my guidelines from the last 2 years (they are very specific to my team and company)
Working on weekends - only when the company’s success depends on it. It happened 4-5 times, and people were compensated with vacation time after we finished the urgent work.
Each person is different - some people can work more. It’s okay to have differences inside the team.
Setting the expectations - I work in an Agricultural startup. Our work is seasonal - there is a HUGE pressure during May-Jule, and the rest of the year is calmer. So people know in advance that during those months, they are expected to contribute more.
Going back to the first point, explain WHY your team is going to work harder, and what’s so critical. Bring a senior leader to kickstart the effort (both to answer questions and boost morale).
Are we on the right path?
In regular times, good developers should be disturbed as little as possible. Some even dislike having standup (daily) meetings.
Imagine regular times is like sailing through a calm sea. even if a developer is a couple of degrees off, they’ll have chances to correct the course. In the end, the team will reach the destination.
Urgent work is more similar to sailing a narrow river. If you are a bit off-course, you might crash before the finish line (in this case - not release on time).
Making sure the team is on the best possible path is your most critical job in an urgent project. It requires involving the PM and UX designer as fast as possible, providing your team with very short feedback loops.
You might even have to micromanage for a few days. Especially at the start of the project, every decision could be critical.
Ask yourself every day: Maybe a small feature can be removed? A design simplified? Some services reused?
When do we go back to normal?
Your team put in a tremendous effort and saved the day. The feature is in production, and everyone is happy.
The executive team might think to themselves: “Great work! Why don’t we always work like that? We have another urgent feature!”.
And this is the point where the balance is broken. If your company is always in a ‘crisis mode’, most people won’t enjoy working there for the long term.
It’s the hardest for startups, where early employees have a meaningful stake in the company, and in the first years it’s always in a state of existential crisis. Later on, when it grows, it’s not that easy to change the culture.
As a team leader, it’s your job to set the boundaries and give some pushback where needed.
To sum up
Before you go all in and start working on an urgent feature, ask yourself:
Why is it that urgent?
Who should I put on the project?
How hard should we work?
During the work, ask yourself every day:
Are we on the right path?
And closer to the end:
When do we go back to normal?
unless you are the richest man on earth..... I know you meant iron man here 😂😂
The car analogy is so apt. You do accumulate tech debts and cut corners when you go faster. So it should be a very conscious choice. Nice article and serves as a solid reminder.