It’s a question that gets asked again and again and again.

So I’m one of those product managers who’s “been there, done that”. I’ve had about 10 years of professional programming experience in various roles, and even a couple of technical books and a few talks, if we really travel back in time. I switched to software product management about 5 years ago, which reduced the coding I do to evenings and weekends only (i.e. just a hobby).

IMHO, if you have professional experience developing software, that’s a big plus to have as a software product manager. But if you lack that experience, spending a couple of hours a week on codeacademy isn’t going to bring you anything.

Understanding developers

Part of the Zen of Product Management being an excellent communicator and negotiator. The value in having developed software yourself is being better able to speak the language of the developers you’re working with.

If you’ve developed software yourself…

you know what merging your changes feels like and the stress that can be involved when you encounter conflicts with someone else's opinionated code in a team that’s dysfunctioning.

you know how it feels like to be required to develop against a poorly designed 3rd party API under a tight deadline.

you understand what’s involved in answering that dirty little question “How long will it take?”.

you absorbed the wisdom of KISS, YAGNI and Conway’s Law (no, not that Conway) among many others.

you’ve chased Heisenbugs for days or even weeks, each time thinking you’ve fixed it then receiving another report of “it’s not working” for some particular choice of browser, operating system, device or screen resolution.

it means you’ve been distracted enough times to know you should keep distractions to a minimum.

you’ve felt the terror that comes with making changes to a codebase that should have been refactored long ago and now no longer be reasoned about.

… knowing these things as a product manager puts you a better position to work with software engineers, to understand the challenges they are dealing with and to increase the chances of hitting your release goals.

Of course don’t be that guy that’s getting mixed up in decisions on code design, architecture or even programming language… that’s no longer your job, and if you get caught up in it, you’re more likely to do harm than good.

What if Johnny can’t code?

So does a lack of software development experience mean you can’t succeed as a software product manager?

Over the last 15 or so years in software I can count at least 4 product managers I’ve worked with who did an outstanding job working with software engineers, despite lacking development experience themselves. So yes it can be done.

But more often I’ve witnessed the other side of that coin; product managers who struggled to connect with developers because they lacked a basic understanding of how software is developed. Sure they took a scrum course but it didn’t help. That disconnect in turn meant their projects regularly failed to deliver and their teams tended to be identifiable by a higher level of frustration and acrimony.

Based on the sample of product managers I’ve worked with, to me the answer is a clear: it depends.

Quite what it depends on is another story, but three of the bigger factors would have to be interest (paying attention, listening), humility (admitting ignorance, asking questions) and willingness to learn (e.g. you actually read The Mythical Man Month).