Rafael de Carvalho
Senior Software Engineer

Follow-up or Fail

HackerOne Engineering Blog

In our fast-paced engineering environment, the mantra “less is more” echoes everywhere. It’s a catchphrase, and for a good reason: focus is key. Over the past six months, our company has embraced this strategy wholeheartedly. However, we’re bombarded with urgent priorities and enticing good ideas from all sides. So it becomes tempting to say yes to everything. Yet, every “Yes” inevitably means saying “No” to something else. The challenge lies in making conscious decisions and staying laser-focused on our top priorities.

The Pitfalls of Saying “Yes”

Have you ever released a Minimum Viable Product (MVP) only to abandon it straight afterwards? Did it break anything? Perhaps it was a feature born from a HackWeek that ended up causing more trouble than anticipated. These scenarios highlight the importance of discerning whether projects are truly done or require further iterations. Did they succeed? Why or why not? What lessons can we learn for next time? Without addressing these questions, we risk facing escalations down the line.

Meetings, while necessary, can also consume valuable time that we could spend on productive tasks. If you don’t have time to prepare for them if there are no action items, or if the follow-up gets lost somewhere. As valuable as discussions can be, they don’t mean anything before being translated into work.

In a similar manner, if everyone in your team is working on a different project, it seems that you are doing more at the same time, but you miss out on synergies, lose time on context switching, and delay the delivery date. Work together; In scrum mathematics, 2+2=10.

But those are the immediate, apparent issues. What about the cost of opportunity?

Did these features and meetings result in anything down the line? When you drop or postpone a project there is always a good reason. It took longer than expected, a distraction showed up out of nowhere, priorities simply changed. And every time you do it, it feels bad because you have effectively wasted time. Additionally, picking up the project again after six months might require you to start from scratch.

Tip #1 — The Power of Under-Commitment

Under-committing doesn’t mean working less. It means not making promises that you are not able to keep. By allocating buffers in our day-to-day schedules and roadmaps, we prepare for unexpected challenges.

Having a buffer also helps keep a low level of stress: we are not robots, we won’t perform 100% every day. It also creates space for helping others where needed. Something small for you might mean the world for someone else if you are able to help them timely. Try to position yourself to be happy to do it rather than it feeling like a sacrifice. Reducing feedback loops across projects is a cornerstone of productivity.

Tip #2 — Predicting the Future

Do you think your buffer is too big? Do you spend too much time-solving emergencies instead of working on your important goals?

To reduce your under-commitment buffer you have to spend more time thinking about the upcoming problems:

  • If you just launched a feature, expect escalations, and be ready to address them on the spot.
  • What is the cost of ownership of the features you own? Expect having to maintain them over time, don’t postpone maintenance forever.
  • How do you feel after sprinting for 100 meters? Can you do 100 more at the same pace? Scrum sprints are no different; don’t push on every sprint, and plan for changes of pace.
  • Teams operate, on average, at 80% capacity when measuring over a Quarter.

Tip #3 — Find a New Owner or Kill it

At times, you notice that you have overcommitted and you need to drop something. As painful as it is, it might be better to just terminate it. Alternatively, while it might not align with your immediate priorities, it could be valuable for others within the organization. You might be able to find a new owner.

However, it’s crucial to consider the repercussions of dropping it on someone else. If this causes them to abandon their own tasks or priorities, it disrupts their workflow and wastes their time. Therefore, it’s essential to communicate effectively and possibly coordinate with other teams in advance to avoid such situations.

Transparency in these decisions is key to fostering trust and streamlining future collaboration. While it may be scary to subject your decisions to scrutiny, it’s a necessary step towards creating a culture of accountability. Learning to confidently say “no” when needed ultimately leads to more efficient and impactful outcomes.


In conclusion, mastering personal time management and prioritization is essential. In order to maximize our impact, we need to embrace under-commitment, predict future needs, and steer the wheel when necessary.

The Ultimate Guide to Managing Ethical and Security Risks in AI

AI Ebook