There will come a time in every non-technical product manager’s life when a developer will drop the ‘you don’t get it because you’re not a developer’ line.

It might be direct and explicit. It might be more nuanced. But it will happen.

And when it happens, you will need to resist the urge to BREAK ALL THE THINGS. You will need to take a deep breath and acknowledge that, yes, you are not a developer. But that does not mean you are unable to do your job. Your lack of a computer science degree does not mean that you do not appreciate (or indeed, understand) good code. You do not need to be a developer to love solving problems. You do not need to have strong opinions on Emacs vs vi to be able to run a product team.

You need to be able to relentlessly and ruthlessly prioritize. You need to remove roadblocks and distractions so that your team can build and ship. You need to dispense credit generously and own all failures. You need to be able to translate fluently the language of business and clients and sales into user stories and product roadmaps. You need to be able to distill tasks to their essence. You need to be an excellent communicator and a pithy writer. You need an excellent sense of humour and zero tolerance for bullshit.

You do not need to be a developer to be a good product manager.

You do not need to break all the things. But when you feel like you do, take a walk. Drink some tea. Ship.

Shipping is the best medicine.