Product Management Marty Cagan

Are You Technical Enough?

I’ve written earlier about how much domain experience is important for product managers (The Role of Domain Experience) and also the pros and cons of college hires versus hiring experience (Youth vs. Experience), but a question I often get is just how much technological competency is required in order to be a strong, effective product manager? Many managers aren’t really sure if a candidate is technical enough, and many aspiring product managers aren’t sure if they are technical enough for the job.

This is an especially relevant topic right now because the current industry flagship, Google, is famous for having a very high technology bar for product managers. Google is a bit of a special case, so I’ll come back to them in a bit, but I think this is not only a fair question, it’s critically important question.

First a necessary disclaimer. I think you’ll find the opinions on this topic vary based on whether the person has a technical background or not. A political science undergrad from Stanford that goes on to get a Harvard MBA and move into product management may have one view, versus the computer science student turned software engineer that then moved into product management. My education was in computer science, and my career began with 10 years in software development, most of it at HP Labs, which was an extremely engineering and technology-driven culture. So there’s little question that my opinion carries some biases based on that path. That said, I think some of what you see below may surprise you.

Why Technology Competency Is Critically Important

There are two very big reasons why I believe that technology competency is absolutely critical to being an effective product manager.

First, I have long argued that great products result when you combine a real need or problem with something that is just now possible. The technology competency is what allows you to understand and identify what’s just now possible and how it can solve your problem in a new or better way. I argue that this ability to quickly grok and apply new technologies to solve problems is at the core of great products and great product management.

Second, while I believe it is absolutely true that it doesn’t matter how great your engineering team is if the product manager doesn’t provide them something useful to build, it’s equally true that without the engineering team to build the product, you have nothing. So you absolutely must work effectively with your engineering team. You have to be able to speak their language, understand and appreciate their issues, gain their respect, and be a capable partner in the collaboration that’s necessary for any product.

When I interview product management candidates, I’m looking hard at these two points. The candidate must convince me that they are capable of understanding and applying new technology, and of earning the respect of the engineering team.

That said…

Why Technology Competency is Often Overrated

While I believe in every word above, I also think that in general the technology competency requirement is often overrated, again for two big reasons.

First, for most products, it’s all about the user experience. It’s really not about the technology used to build or scale the product, it’s about providing a user experience that users want to use, and can figure out how to use. This speaks to a design competency more than a technology competency. The most excellent book, “The Inmates Are Running The Asylum” by Alan Cooper makes this point better than I can. Having a product manager that’s a great potential contributor on systems architecture, but whose eyes glaze over when the discussion turns to information architecture is not useful.

Second, one thing I absolutely love about the Internet era is that for a great many types of products and services, we are typically limited more by our imagination than our technology. As an example, when I lead the product team at eBay, there were hundreds of projects during my time, but only rarely did the engineering team tell us that we couldn’t build what we wanted to. Now partly this was because there were quite a few exceptionally good engineers and architects, but I’ve seen this in many companies since. The true bottleneck in most companies is not the engineers or the technology, but rather it’s the ability of the product managers and designers to come up with something worthwhile and compelling.

What Is Technology Competency?

I realize I’ve been using this term loosely. There’s lots of “technology” that an engineering team deals with and you learn when you spend time as a developer. There’s technology topics like programming languages. Does the product manager need to understand the pros and cons of multiple inheritance or polymorphism? Probably not.

There’s technology topics having to do with team development, conflict management, and continuous and reproducible builds. Does the product manager need to understand the various forms of parallel development and the difference between configuration management and version control? Probably not.

However, when the engineering team has been unable to invest in infrastructure and the team is facing real issues in terms of scalability, availability, and maintainability, does the product need to understand and appreciate these issues and their impact on the ability to get new features delivered? Definitely yes.

And when a new technology is introduced, such as Ajax, or Silverlight, or Android, or the Facebook platform, does the product manager need to quickly understand what these technologies enable, and then come up with ways for these technologies to benefit their customers? Absolutely.

Technology Competency is when the product manager can quickly learn new and relevant technologies, not necessarily in order to code to them, but to apply them. Strengths and weaknesses, capabilities and limitations.

How do you develop your technology competency?

Just as I am constantly exhorting product managers to get out there and talk face to face with users and customers, you should also spend considerable time developing your technical competencies. There are many ways to do this. Books, articles, blogs, extension courses, experiment with the technologies or write software on your own, spend more time with your engineers, ask them about the technology topics they are exploring and tag along. Just like spending face time with users, spending time with your engineers on the technology is an ongoing responsibility. Remember that what is possible is constantly changing, literally every day in our business, so you must be passionate about pursuing this knowledge.

Some Exceptions to the Rule

So hopefully you can see that while I consider technology competency an essential requirement, I also view it as something that most people in high-tech can absolutely achieve with a some effort. All that said, there are a couple important exceptions to this.

The first exception is with certain type of products that truly do require a level of technical sophistication in order to competently define useful products. A very important and timely example of this is platform product management. Here you not only work with developers to build your product, but you also work with developers as customers and users, and typically at the level of the software itself. There are other products like this – developer tools and technologies, system infrastructure, systems software, etc.

The second important exception has to do not with the type of product, but with the culture of the company. There are a few companies that have established engineering as the basis of their culture and DNA. Today the main example of this is Google. Before that it was Microsoft. And before that it was HP. So these companies may set a bar for product managers that isn’t necessarily due to the job requirements, but more due to the cultural requirements, in order to gain the team’s respect, and work effectively with others in the company, including and especially the company executives.

So if your objective is to be a product manager at somewhere like Google, and you don’t have deep first-hand technology experience already, my suggestion is to get a job as a developer and spend a couple years immersing yourself in that world. It won’t necessarily make a big difference in your ability to define great products, but it can make a very big difference in your ability to get accepted into the culture and work effectively with the rest of the product team.