Talk to your customers
Don't depend on a janky game of Telephone to learn about your customers. Talk directly to them, listen, shadow them, and build relationships. This is how you avoid communication hell, and ensure that your product solves real problems. Read on for practical tips on how to do this well.
Only work on problems that matter
You need to identify the right problems in order to build a good product. Describing projects and tickets in terms of what problems they solve forces rigorous thinking. It can also help you avoid wasting time on the wrong problems. This principle also extends to product processes. If you struggle to articulate what problem a given process solves, stop doing it.
Git gud at communication
Communication is an absolutely critical skill for product development. But it's hard and it requires practice and feedback. If your team is great at it, you massively reduce the need for Product Managers and burdensome product processes. This post has a bunch of practical tips on how to get good at communication, bridge knowledge gaps, and make people love you.
Ask for ranked wishlists
This tip is a massive bang for your buck. It's a gift when another team gives you a wishlist of product improvements. Ask them to put their lists in order of importance, and then focus the conversation just on the top 5. This saves you loads of time. But it also brings them into the prioritization discussion and gets them to think like Product Managers too.
Measure way fewer things
Good metrics focus development teams on the right problems. But big, complex metrics dashboards introduce so much noise that they are counterproductive. As always, I suggest radical simplicity. Measure a small number of important things that support a small number of goals. Rally your team around these metrics, and make them move together. You'll be better and smarter for it.
Do retrospectives (just make it up as you go)
Rigid, one-size-fits-all Agile processes are doomed to fail. Instead, you should gradually develop a product development process that actually works for your team. The way to do this is through retrospectives. This path lets you solve problems organically as they arise, and leave out burdensome processes that don't actually help. In other word, it allows you to make it up as you go — and that’s a good thing.
Convince your CEO that tech debt matters
Tech debt is invisible work and it it difficult to explain to non-technical teams. Reframe it as an investment and specify what return the company will get for this investment. This is the strongest case you can make to your bosses, and it will also force you to do rigorous product thinking about why these projects matter.
Relentlessly reduce scope
Ship features that are as small as possible. This is the fastest way to ship more features, and the best way to avoid tech debt and code complexity. It is a true win-win. And by pushing for reduced scope, you win the trust of users and business teams. They will see that your goal is to ship features fast, without introducing new problems.
Ask questions like a Product Manager
“Product” is not a profession. It is a set of responsibilities that no company can opt out of. Being a “fullstack dev” includes taking on some of these product responsibilities. Here’s the good news — it’s totally achievable. And if you start thinking like a PM, it will work wonders for your product, your career, and your company culture. Product management starts with great questions.