The (kind of) short answer
This is one of the questions that it’s coming up quite frequently lately and personally, as a non-technical background PM (at least in terms of formal education) I’ve put a quite significant amount of thought on it. I guess this is the case with most product managers with no tech background, who are working on technical products.
The short answer for me is “no”. The primary work of a PM and where he or she should put the vast majority of energy and brainpower is listening and understanding the market, defining the product strategy and vision and communicating crystal clear product requirements to the product team. Being able to code or create software architectures or any other similar skill is just a plus, but definitely not the product manager’s job.
I believe that the absolutely necessary coding skills that a PM should possess, should be those required to pull and process data related with the product usage, users adoption, clients behaviours, so that he can acquire insights and make data-driven decisions regarding the future of the product. For example, being able to use SQL effectively, to pull data or any programming language to manipulate them are super valuable skills and as I said necessary.
Why a PM doesn’t need to know how to code
That being said, the deepest understanding you can have in technical terms about the product and technologies, the better for you. But this does not require having a software engineering background. You can acquire that kind of understanding by being continuously curious about the small details, reading about technologies, frameworks, their pros and cons and obviously, by working on technical products and having as much meaningful communication as possible with the engineers that are building the product.
To my experience, engineers are always willing to explain and share insights to non-technical people about what they are building, how they are building it and why the made certain choices in terms of technologies. At first, I was reluctant in making the extra mile and start shooting with such questions, as I didn’t want to be the guy that would be a “constant distraction”. What I realised though, was that the vast majority of my colleagues not only where there to answer my questions, but they also went the extra mile to give me even more details than I asked, sharing helpful material that could give me a deeper understanding regarding my questions. As I said, you should not be reluctant to ask, however, you have to be cautious not to cross the line. Before you go on with shooting a question, make sure you’ve done your own research first. If you cannot find a satisfying answer or if you need some deeper insights, then go on and ask.
But if what if I am a PM with technical background?
On the other hand, there are many people that are shifting from the hands-on software engineering side to the product management side. There’s no doubt that their technical understanding is an amazing benefit. But still, you have to keep in mind, what your primary goal as a product manager is. I get it, once you are building a challenging product, it’s quite tempting to want to be as involved as possible in the technical speccing or the technologies choice and you should (even if you don’t have a software engineering background).
Having said that, even if I were in that position, I would not make the final decisions on how the technical architecture of the product should be, or what technologies are going to be used. And this is because, you are not the one that is going to actually build the product. The engineers of your team are the ones that are going to do that and the final word on those choices are theirs. Their expertise may be different than yours, the technologies they know how to use well is not necessarily the same as yours. And certainly there’s not only one right way to build something. Sure, you could and should contribute in those discussions, but don’t let your engineering ego get ahead of you.
If I want to learn how to code?
Getting back to the product managers with no software engineering background, learning how to code can obviously be more than just useful. For me personally, it is not just useful; it is something I enjoy. Firstly, I am learning something new, which is exciting just by itself. Although, the most amazing part of it, is not just learning a new framework or software engineering principles. It’s the effect that software engineering principles have, in the way that you are thinking, how you are dealing with a problem, how you are analysing it and how you are structuring your thoughts.
As a bonus, you can always start your own “project X”, that can be just a concept you want to test and end up having built an MVP of the next big feature of your product. That’s quite something.
No matter how entertaining and useful software engineering can be, as a product manager you must always have in mind what your main responsibilities are. And those are not building the product yourself. It’s defining the product. Yes, some coding knowledge is definitely beneficial. But making the right decisions about what the product should be and in what should the product evolve are the essence of the product manager job. You have your team of software engineers to take care of the rest. I acknowledge that in some certain cases it is required by nature for the product manager, to have a highly technical background, but I believe that in the vast majority of the cases, this is just a plus and not a must-have.