How learning to code will make you a better Product Manager
Photo by Florian Olivo on Unsplash
Let’s get one thing out of way. I am not a software engineer. No one will ever pay me money to write code. Yet, I invested time in learning some coding languages. I’ve always known a bit of HTML and CSS, but lately I’ve been dabbling in javascript, python and others. I didn’t do this because I want to become a software engineer. I did it to level up my technical game. Knowing how applications are written and work will make you a better Product Manager. Here are some reasons why:
Better communication with your development team
If you know how to code you will be able to speak the same language as your development team. Imagine working on a project with someone who speaks a different language than you. That’s going to be a challenge (though not impossible). Well that is exactly what happens when developers start talking about the technical design and you have no idea what they’re saying. Knowing how to speak their language and read a bit of code will help you better communicate with your teams and build better products.
There have been many times where I was able to steer us clear of a technical disaster by spotting a flaw in the technical design. What usually happens is there is a misunderstanding of the problem and desired outcome. It’s like a game of telephone, from customer to product manager to developer. Things can easily get confused no matter how good your job stories are. If you have enough technical chops to spot the problem before it makes it to code, it will really accelerate your ability to ship great products.
Improved prioritization and estimates
Everyone knows that estimates are hard. We also know that Product Managers like to think they know ‘what’s easy’ and ‘what’s hard’. There is no phrase on the planet more cringe worthy to a development team than a Product Manager saying to a customer “Oh yeah, don’t worry, that’s easy”. Guess what? If you know how your product works at the technical level, you are in a much better position to make that call. You can also save a lot of back and forth with your team and streamline your roadmap. Additionally, you can save yourself from getting embarrassed when you have to go back to the customer and explain why it wasn’t as easy as you thought.
Stronger design partnership with your team
That’s right I said design partner. Design is more than UX. Design is every part of a product. How it looks, feels, works and functions. This means that UX, Product and R&D are all part of the design process. Design isn’t “done” until you ship. (Even then it’s not really done…that’s just the first version you were willing to share with your customers). If the development team understands the customer and the domain, they will be great design partners. All the best developers I’ve worked with understand the business side. So then why do Product Managers get a pass on understanding the technology? Roll up your sleeves and take a few beginner classes. Now you can build a 2 way street of collaboration with your development team.
Deeper understanding of your product
Have you ever been in a conversation with a customer and you didn’t know the behaviour of a feature they were asking about? “Let me go test that for you and get back to you”. This doesn’t happen nearly as much if you understand how your product works behind the scenes.
When you understand the data model and technical design of your product you will not just know what happens when you click on something, but you’ll also know why it works that way. This deep understanding can help you improve the product and overall customer experience. This is why engineers always say that if you get the data model right, then everything else is easy.
So how do you get started?
If you are totally new to programming, I’d suggest starting with HTML. You don’t need to be proficient. Just familiarize yourself with the syntax and learn some basic stuff. Trust me, it’ll be worth it (even if it’s a bit scary in the beginning).
I learn the best when I can apply the skills I am learning to my own project. So I set a goal to build this website using next.js, tailwind and typescript (the tech for the front end of a product I’m working on). Here are the resources I used to build this website.
freecodecamp.org
I’ve been using freecodecamp to learn Javascript, but they have courses in many different areas. I also like that they have little mini tests for each new concept they teach you. Great for getting up and going on just about any coding language.
tailwindcss
After refreshing my HTML and CSS, I did the tailwindcss tutorial here. Honestly, you don’t need this, but I found that it made CSS and styling a lot more accessible for someone like me.
next.js
So HTML and CSS are great if you want to build static websites, but they will only take you so far. If you want to build something more interactive you are likely going to need to know some javascript. So I went back to freecodecamp and did the basic javascript course. That was all I needed to dive into the next.js tutorial and build my very own web app with dynamic routing, react components and a library of posts.
Good luck and happy coding!