Should Product Managers know how to code? Here’s what we think
Scott Adams, the creator of Dilbert, swears by two strategies for an extraordinary life:
- Become the best at one specific thing.
- Become very good (top 25%) at two or more things.
It’s obvious that striving to be the best would be the more rewarding choice of the two. However, it might not necessarily work out for everybody! The second seems fairly doable…. ‘doable’, not necessarily simple.
For a product manager, who is essentially at the intersection between business, technology, and user experience, being very good at two or more things would be imperative, if he aims to be the ‘best’ at his job!
‘Knowing how to code OR not’ is one of those things, which still is pretty much a gray area!
So… Should a product manager know how to code?
The answer to this question might seem deceptively obvious - what good would a product manager be without the requisite technical expertise?
On the other hand, there is also the question of why a product ‘manager’ would need to get into the technical nitty-gritty of coding - aren’t they supposed to be ‘managing’ the developers who are essentially the experts?
Most people, looking to build successful careers as product managers, face this dilemma - to code or not to code? Especially, junior product managers working in newly established startups, where knowing to code might as well be a matter of survival - they might have to double as troubleshooters!
Combing the internet for answers will reveal arguments in favour of both ends of the spectrum. Existing product managers will wax eloquent about how coding is a prerequisite to becoming a successful product manager!
For instance, here’ what Jeremy Glassenberg, former platform lead at Box, has to say about how a product manager should know to code, ‘to earn the respect of the engineers’.
And then, there’d be the ones who simply talk about Steve Jobs to lay all arguments to rest!
“Steve didn’t ever code,” writes Wozniak. “He wasn’t an engineer and he didn’t do any original design, but he was technical enough to alter and change and add to other designs.” ** *
So… How do you arrive at a conclusion?
At Plivo, we believe that while certain products might require product managers to know coding… Not knowing how to code is definitely not something an aspiring product manager should consider a hindrance in his ambitions to be the best amongst his contemporaries!
To be an awesome product manager, you DON’T need to be a great programmer! All you need to be is a ‘Code Hustler’!
Now we aren’t talking about anything illegal here! A code hustler is someone who doesn’t know how to write a program - but can sure read and understand codes! It’s a lot like being able to predict the weather, even though you may not be able to know the exact factors that cause the changes!
As a product manager, you need not get into the technical gobbledygook - all you need to know is what the resulting product would look like!
What makes code hustling a clincher for a PM?
Well… Aside for the fact that you are going to be working on a technology product, knowing how to code hustle can actually make your life as a PM a whole lot easier. Here’s how!
It enables stronger communications with the developers - you won’t be the best coder in the room, but you certainly won’t be someone who can’t contribute constructively!
It surely helps to get those products up and running on time! How? Well… code hustling simply makes your gut instincts stronger about what will work, and what won’t! Also, you’ll know the pitfalls and problems that can occur along the road to release, making you doubly-equipped to handle them effectively!
It gives you an upper hand with the customers too! Once you know what’s happening at the backend, you are in a better position to translate it for your customers - talking about the features that set your product apart, etc.
Probably, the most important of them all - you get to build a trusted, respectful relationship with your engineers! You’ll be equipped to understand the challenges they face everyday, making you more empathetic towards them, and attempt to look for solutions for their problems.
So… What does it take to be a code hustler?
To simplify the process, here’s a list of dos for you!
Understand Code Architecture!
When building a product, you don’t just want to make it work now, but also in the future. Defining an architecture does just that, which at a high level means defining how objects interact with other. Here’s a quick introduction!
Understand CSS and tweak pre-written CSS codes!
If databases are the backbone of technology products, the face of these products is often created through CSS - the most common form that web pages take on the internet. It can also be very handy for creating interactive mockups or wireframes of your products, or for testing ideas for layout and interaction!
Tweaking pre-written codes can help you understand the code more minutely, which comes in handy especially for troubleshooting!
You can checkout http://www.cssbasics.com/ to get some help on this.
Debugging is as important as logic!
Debugging is pervasive and an integral part of every aspect of the development process. According to a study, engineers spend about 53% of their time in design activities, and the rest in verification activities! It could be needed to fix a new feature that’s not functioning right, or simply at a larger level, where you are trying to stay on top of breaking changes as you are adding more tests or fixing bugs.
Here’s something to help you understand it better!
Experiment with ‘Inspect Element’ in your browser to edit websites live! It is the perfect way to learn what makes the web tick, figure out what’s broken on the sites, mock up what colour and font changes would look like, etc.
Understand the various components that constitute a tech stack!
Here are some quick reference guides for your benefit:
https://wtfismyengineertalkingabout.com/page/1/ (This one, you should bookmark!)
Try and understand the basic and important commands in different programming languages like Python, PHP, RoR, etc.
Sign up with Codecademy to learn these commands, and write short programs!
Understand machine learning algorithms that form the backbone of a lot of compelling products these days!
Understand what’s going on at each layer of the stack in your product, namely the UI, the API, and the Data Layer - where different data lives, how it’s manipulated and accessed, where there are performance bottlenecks, etc.
As a product manager, it is imperative to be able to communicate and test out new ideas! This needs some expertise with wireframing, creating landing pages, and customer development.
That’s it! That’s all the coding you’ll need to become a product manager! That’s the finite answer to all your questions!
The goal, at the end of the day, is not about learning to code - it is about becoming a great product manager!
So, Coming back to Scott Adams’ very relevant advice…
To be a great product manager, you need to be in the top 25% of these 3 things:
1. Understand the end use of the product:
Understand what makes a particular product work, and if it doesn’t… the changes needed to make it work. This can happen only with some technical expertise.
2. Be a better writer:
Clear written communication is crucial for a product manager. It helps explain the product use cases better, list down the features in a better manner, create convincing sales pitches, help with writing effective landing page copies, etc. even though she / he is not primarily responsible for writing the final versions of it all.
Given the cross-functional nature of product management, communication across the organisation and maintaining stakeholder communication also places a huge demand on a product manager’s writing skills!
3. Understand what a particular code does:
Just to make sure that the product and technology strategies don’t diverge!
Given the nature of their jobs, product managers do need to know a little bit of everything - something like a ‘jack of all trades’. But, they definitely don’t need to be hard-core programmers to be the best!
For they are not tasked with ‘building’ the product per se - but ‘defining’ it. What’s more important is to be able to envisage what the product should be, and how it should evolve.
And for that, being a code hustler seems to be just about enough!