Your problem is (often) two problems

Most of my engagements start with a product problem:

  • “We can’t satisfy demand for features. We need to ship faster.”
  • “Our application is new, but we’re already seeing bugs in the codebase!”
  • “We’re experiencing code quality issues, and we don’t have confidence to change the code.”

But fixing the surface-level product-problem isn’t enough. A company has to change the conditions that led to the issue in the first place. Otherwise, like a cancer, the problem grows back.

That’s why for most of my engagements I try to solve two problems: the terminal product-problem and the root team-problem.

  • A team needs to ship faster. When I join the team, I see pull-request review takes days to complete. Why? Turns out there’s a trust issue within the team. So, everyone acts like a gatekeeper.
  • People are seeing bugs in the codebase. And it’s only a year old! Joining the team, I discover there’s a lot of churn, everyone is new, and there’s a culture of pushing “hot fixes” and never looking back.
  • People don’t have confidence in changing code. When joining, I realize we have no test coverage, but people don’t know how to test. We have to talk as a team and change the culture.

So, don’t just focus on the surface-level problem. See what’s at the root. Not only do you fix the problem today, but you also create a culture that compounds the benefits into the future.

Remember, your team is the engine behind your product.

Want my latest thoughts, posts, and projects in your inbox?

    I will never send you spam. Unsubscribe any time.