10 Reasons Your Execution Sucks
Learn the common traps that prevent successful execution in software teams.
Every software engineering team has the same goal: to win, deliver value, get things done, and operate effectively with minimal overhead. Unfortunately, many things conspire to make delivery difficult for engineering teams.
As a manager, you’re accountable for your teams' work. Good execution skills will help you and your teams succeed consistently.
Let’s explore the enemies of effective execution in software engineering teams.
Execution Traps
Here are some common execution problems I’ve seen in engineering teams over the last few years. Ultimately, all teams want to succeed and deliver great work. Many of these problems are process-related; you can fix them as a manager.
1. Unclear Ownership
Every project or task must have exactly one owner and one decision-maker—no exceptions. If you find unassigned work in progress, you’re in trouble. No one will be accountable, and things won’t get done. Worse, no one gets to take credit when the team completes work, and no one learns from leading. Lack of ownership is a lose-lose for everyone.
Ownership does not mean one person doing the work. It means having a DRI (Directly Responsible Individual) who is ultimately accountable for a task done. Ownership of a task means taking full responsibility for completing the work, communicating problems and progress, and keeping tickets updated.
Lesson: Assign clear owners for every task to ensure accountability.
2. Lack of Process
Process is your operating system for effective execution. Process enables teams to focus on execution rather than figuring out “how” to do things that should be obvious. A lack of established processes results in inefficiencies and inconsistent results.
A basic software engineering delivery process should clarify the software delivery lifecycle (SDLC), how code reviews work, expectations around reporting progress and risks, how and when to deploy code, and rituals like weekly review meetings.
Processes should be well documented. Review often and look for ways to improve.
Lesson: Process enables predictable execution and continuous improvement.
3. Unclear Expectations
If teams aren’t clear on expectations, things won’t get done. Clear communication of roles, responsibilities, and expected outcomes is essential for effective team performance.
I’ve often seen work not get done simply because no one knew who was supposed to do the work. Expectations make these problems easier because you can build rules everyone understands and can be accountable for. For example, “on-call engineers are expected to work tickets in this queue”.
If you have a ticket queue - who should pick up the work? Who should triage backlog items - the manager or the tech lead? Who should report a task's status to leadership? Who should keep tickets updated? Who should keep customers updated on progress? Who is responsible for task breakdown and estimates? If these things are unclear, results will be poor and inconsistent.
These problems will increase as you scale and have more work.
Lesson: Make expectations for leading and managing work clear.
4. Poor Planning
Effective planning involves understanding the project scope, setting realistic timelines, and anticipating potential problems to ensure confident and stress-free delivery.
Some projects are complex and have fixed deadlines. These projects require working backwards plans so that you can confidently hit the deadlines without missing things. If you don’t have a chance, something will likely be missed, and you’ll slip your delivery.
Lesson: Don’t leave things to chance. Have a plan. Work backwards from the delivery date.
5. High Work-In-Progress (WIP)
Your teams have a finite capacity, and overloading the system with too much in-progress work will cause things to slow down. Every project or task in progress has a cost and requires engineer attention and time. Implementing work-in-progress limits can help teams focus on completing tasks before taking on new ones, thus improving throughput and quality.
Focus on finishing things before picking up more work.
Lesson: Ruthlessly control work in progress and focus on finishing.
6. Context Switching
Frequent context switching disrupts focus and reduces efficiency, as team members lose time reorienting themselves each time they switch tasks. Minimizing the need for context switching through better task management and scheduling can significantly enhance productivity.
Lesson: Minimise context switching by focusing people on one task at a time.
7. Unclear Goals and Success Criteria
It’s surprising how many projects have unclear goals and success criteria. You can’t win a game if you don’t understand the rules. Without clear goals and success criteria, teams will struggle to prioritize effectively and make decisions.
This problem can manifest as getting to the end of the project and realising you didn’t do what was needed because people didn’t know about hidden success criteria.
Lack of clarity creates demotivated and frustrated teams who can’t determine what “done” looks like.
Lesson: Make project success criteria and goals clear and agree them together at the start of a project.
8. Team Sizing
Incorrect team sizing can hinder performance.
Overstaffed teams will experience coordination issues and underutilization. Communication paths between engineers increase quadratically as teams grow, leading to lower productivity and higher coordination costs.
Understaffed teams may be overloaded. Right-sizing teams based on the project's complexity and workload is critical for maintaining efficiency and morale.
Lesson: Sizing teams correctly makes a difference in execution. Big teams don’t always go faster.
9. Psychological Safety
Psychological safety is the foundation of high-performing teams. Build an environment where team members feel safe expressing their thoughts and ideas without fear of negative consequences. In teams lacking psychological safety, people will be reluctant to contribute ideas, raise concerns, or admit mistakes, which can impede innovation and learning.
Lesson: Foster an atmosphere of psychological safety by encouraging open communication, showing appreciation for diverse opinions, and handling failures as learning opportunities. This approach not only boosts creativity but also drives team engagement and resilience.
10. Trust
A lack of trust within a team can erode communication and cooperation, making it difficult to achieve collaborative success. When team members do not trust one another or their leaders, they may hesitate to share information freely or back each other's decisions.
Lesson: Build trust through transparency, consistent communication, and honouring commitments. Encouraging open dialogue and respecting diverse opinions will enhance team cohesion and collaborative output.
Thanks for reading
I’d love to learn more about your interests and challenges as an engineering leader.
If you enjoyed reading, please take 30 seconds to answer 2 questions. Thanks!
Get In Touch
I would love to hear from you! If you enjoy my writing and want to connect:
If you enjoyed reading, please consider subscribing or sharing.