Day 14: Identify and Eliminate Engineering Waste
Be Better Engineering Leader, a 30 Days Series
This is the third week of a series of daily lessons on how to Be a Better Engineering Leader. I recommend spending up to an hour on each lesson to gain insights into Product, Technology, and People—areas critical for every Engineering Manager.
In software engineering, waste is any activity that does not contribute to delivering value to the customer. Identifying and eliminating these inefficiencies can significantly enhance your team's productivity and delivery speed. Today, we’ll briefly discuss the ten types of software engineering waste and how you can start addressing them.
Why This Matters:
Much like Toyota's Production System revolutionized manufacturing by reducing waste, software engineering can benefit from similar principles. By recognizing and eliminating waste, you can streamline your processes, improve product quality, and respond to customer needs more effectively.
Ten Types of Software Engineering Waste
Partially Done Work and Backlog Mismanagement:
Unfinished features and an overgrown backlog drain resources and cause delays.Extra / Wrong Features:
Building unnecessary or incorrect features leads to wasted effort and complicates the product.Defects / Rework:
Defects caught late are costly to fix and disrupt planned work.Unnecessarily Complex Solutions:
Over-engineering increases maintenance costs and complicates the tech stack.Task Switching and Cognitive Load:
Frequent context switching reduces productivity and increases the chance of errors.Handoffs and Knowledge Loss:
Each handoff can lead to a loss of information and disrupts flow.Heroics and Rush Mode:
Relying on heroics for last-minute fixes or changes is unsustainable and risky.Non-utilized Talent:
Underutilizing your team’s skills stifles creativity and innovation.Waiting:
Delays due to dependencies or approvals stall progress and waste time.Extra, Nonstandard, or Manual Work:
Manual and non-standard processes are error-prone and inefficient.
For detailed actions on how to address each type of waste, refer to the original article linked in Extra Resources below.
Action Point: Classify Waste in Your Team
Identify Wastes:
Gather your team and use the ten types of waste as a framework to identify inefficiencies in your processes.Prioritize:
Use a value/effort matrix to decide which types of waste to tackle first.Create Actionable Tasks:
Assign specific tasks to team members to address the most impactful wastes. Review progress in your next sprint planning.
Extra Resources:
Ten Types of Software Engineering Waste (Premium Article)
The research paper "Software Development Waste"
DevOps Culture for Engineering Leaders (Blog Post)
Book: The DevOps Handbook
Understanding and reducing waste in your engineering processes is key to delivering value more efficiently. Start by identifying the biggest sources of waste in your team and take steps to address them today!
Share Your Feedback
How valuable was this lesson for you? Please share your reaction, write the feedback in the comment, as a response to the email or talk to me directly on chat. I would be thrilled to get to know you better so I can adjust my content accordingly.
Has your friend forwarded you this lesson? Consider joining the “Better Engineering Leader” course. More details here.
Do you know anyone who can benefit from the content I share? If so, please forward this email to them.