If you’re managing a competent technical team, a lot of effort goes into identifying and addressing two types of problems: weeds and bad seeds.
Weeds are problems that are evident. Even if you build everything correctly, they’re the things that prevent your product from fully coming together. Maybe it’s tech debt that needs to be resolved before your team can ship. Maybe it’s a strained relationship with another team or product that you depend on. Maybe it’s a performance issue that affects your product’s growth. They’re the problems that prevent your team from consistently making progress.
Bad seeds are problems that have yet to emerge— they’re initiatives or practices that will eventually dilute your team’s efforts and distract from your primary goals. In other words, bad seeds are just soon-to-be weeds. Maybe it’s a code review process that lacks rigor, eventually leading to tech debt. Maybe it’s a feature that seems exciting but doesn’t align with your objectives. They’re the problems that will derail your team if they aren’t tackled early on.
When you’re deliberate about defining goals early in the development process, identifying these problems becomes easier. For example, if you’re solving a specific user problem, features or product additions that don’t serve your target audience are bad seeds. If your product is full of bugs that put key features at risk, they’re weeds that need to be addressed before you can continue building. If you’re leading a product team, you’re responsible for focusing your team’s efforts and clearing obstacles that can prevent you from shipping as planned.
Maybe framing these problems as weeds and bad seeds makes them easier to recognize. If not, at least they rhyme!