The document summarizes a talk given by Avneesh Kohli on the role of product managers and how they should think about technology. Some key points:
- Product managers need to understand their product's architecture and how different components work together so they can plan features and assess tradeoffs. They don't need to know coding languages but should understand systems.
- It's important for PMs to build rapport with engineers by constantly articulating goals, involving them in decisions, and thinking about implementations challenges from an engineering perspective.
- PMs should focus on learning enough about technology to advocate for users, not technical details, and work with engineers by setting clear expectations and helping with culture.
9. 3 Takeaways
• What do PM’s do, and why do they need to work with engineers?
• What do you need to know about technology to be a great PM?
• How do you work with and develop rapport with engineers?
10. Hi! I’m Avneesh!
• Studied CS at UC Berkeley
• Software Eng / PM Internships
• Product Manager @ Microsoft on OneNote
• Product Manager @ Microsoft on Outlook
• Product Manager @ Foursquare on Swarm
11. PM’s come from all kinds of backgrounds
• Civil Engineering
• Chemistry
• Mid-18th Century English Literature
• Economics
• Sociology
• And more…
15. Needs of:
Current customers
Current user base
Needs of:
Future customers
Target user base
Company needs
Business goals
Your ideal future product
16. How do you capture these areas of
opportunity?
• New features
• Redesigns
• Bug fixes / performance improvements
• New products
• New technologies
17. You work with engineers to do all of these!
• New features
• Redesigns
• Bug fixes / performance improvements
• New products
• New technologies
18. These are the wrong questions to be asking (usually)
Questions I’ve Heard
• What coding language should I learn first?
• Do I need to know the difference between ReactJS vs AngularJS vs
Electron?
• How do I know when we should switch from Objective-C to Swift?
• Do I need to understand the Big O notation complexity of an algorithm?
19. Why they aren’t super important
• Your engineers know the relevant coding languages (hopefully)
• Your engineers know the difference between JS frameworks (if it matters)
• Your engineers will drive the discussion about Objective-C to Swift
• Your engineers will understand consider complexity and efficiency in
everything they write
20. Wait, I thought this was a talk on why it’s
important for a PM to understand
technology?
�
21. It’s important for a PM to understand how
to think about and reason with systems of
technology
�
22. Systems Thinking
• What are all the Lego pieces in your product?
• How do these pieces work together?
• What things can/can’t you do with them?
23. Product Architecture
• What does the architecture of your product look like?
• What are each of the components, and what are they used for?
• What’s the history behind each of these components?
24. Product Architecture
• When you want to build a new feature…
• Where do we need to do work for this new feature?
• Who needs to do this work?
• What might this work impact?
• When can we ship this?
25. Strengths and Weaknesses
• Some components are building blocks
• Some components are brittle and will cause you problems in the future
• Know which ones are/aren’t liabilities
• Examples
• Modular components
• Sometimes, you have to re-write everything
26. Dependencies
• Who and what do you depend on?
• Who and what depends on you?
• Examples
• Shared codebases
• OS-level API’s
27. What does systems thinking impact?
• Planning & resource discussions
• Refactoring vs new product work
• Push through vs find another way
• Feature trade-offs and scope analysis
28. How do I learn all this stuff?
• Ask lots of questions
• Read
• Be persistent
29. Okay, I should think about systems and
questions, but what should I learn?
�
30. What should you learn?
• Required
• Anatomy of a web page request
• Capabilities and constraints of major (and emerging) platforms
• Optional
• Object Oriented Programming
• Model-View-Controller (MVC) framework
33. If you actively think about your product’s systems, you’re 70% of the way there
34. Why building rapport is important
• You need engineers more than they need you
• Engineers will find a way when they’re excited about what they’re
building
• Getting engineers on your side helps elevate you from good to great PM
35. Things to think about regularly
• Articulate the why constantly
• Engineering involvement in product direction
• Feature scope creep
• Estimation is always wrong
• Prototyping vs building-to-ship
• QA
• Deployment systems
36. Bonus Tips
• Know enough to fight for the customer
• Read SDK and API documentation
• Think about corner and edge cases
• Create rollout and rollback plans
• Help set the engineering culture
37. 3 Takeaways
• What do PM’s do, and why do they need to work with engineers?
• What do you need to know about technology to be a great PM?
• How do you work with and develop rapport with engineers?
For those of you new here to our meetup, Product School offers 8-week, part-time courses on how to be a product manager.
We also offer a program called Coding for Managers. This course is for professionals without a technical background who want to learn how to code, build a better rapport with engineer teams and increase visibility with hiring managers.
If you'd like a free ticket to our next event, be sure to tweet a picture of your presenter using @productschool or check-in to the event on facebook. Following the presentation, please come show me and I'll take your email to send your free ticket.
Etugo Nwokah
So I take it you’re all trying to get into product roles. I’d like to get a quick feel from the room about what roles/backgrounds you all are currently coming from.
In particular, I’ve worked with PM’s that come from all of these different backgrounds.
My point being: it’s totally okay if you don’t have a technical background. You can be a good/great PM without one.
On being a great PM: let’s start by backing up for a moment and defining what a PM even does.
A billion ways to describe a PM’s role. Here’s one way I think about it. A PM must know these 3 circles like the back of their hand.
Know where your current product sits.
Your job: figure out what the right balance is, and how to expand the circle
Know where your current product sits.
Your job: figure out what the right balance is, and how to expand the circle
Brief introduction to systems thinking.
Lego pieces are an abstraction on systems thinking
architecture == tech stack
client apps, web apps, micro-services, custom protocols, etc.
web page request is the quintessential example of systems working together to produce a user scenario
Capabilities and constraints will impact you in almost every job you take. There are a limited number of platforms. Invest the time. It’ll pay dividends.
OOP / MVC will give you an appreciation for how engineers translate features into code at high-level
Caveat: if you’re working on highly technical products or developer-oriented products, the required level of knowledge goes up. This guideline still holds.
If you remember one thing, remember this
Possible to ship without a PM. Not possible without engineers. Period.
Engineers like solving problems for a purpose. Give them purpose.
Great PM’s help ship quality SW that meet customer needs quickly. Over and over and over.