Tech Concepts for the Non-technical PDM: Product Infrastructure

With knowledge of product infrastructure you can apply it to your potential or current product manager role and reap the following benefits:

  • EFFECTIVE COMMUNICATION: You’ll know exactly which team and who to seek out or speak to for a feature you’re building which will allow you to make yourself and your team productive; 
    • Depending on what the feature is, you’ll need to identify whether it encompasses front end, back end tasks or a combination of both.
  • HIGH INTUITION: You can be ahead of the game on technical components relevant to the feature so you save time for your team in discussions to explain it to you; 
    • For example, understanding what (Application Programming Interface) API’s exist or don’t exist for the feature to work
  • TEAM EMPATHY: You can empathize with engineers when sizing work that needs to be done. Writing code is not trivial, it’s complex. The engineering role requires thinking thoroughly through design, information processing and storage. If you know how a computer works you can begin to understand and empathize why your feature you propose may take more or less time to execute while considering performance and user experience for your product. 
    • Since you’re responsible for your product’s roadmap and you will work with engineering teams day in and out to define features from concept to deployment and make technical tradeoffs as necessary influencing your feature release timelines.   

Too many people over index on the importance of a technical degree. As long as you’re a voracious learner, there is a high chance you still be successful over someone with a technical background. Without further ado, here are a tech product’s infrastructure every non-technical PM should know: 

Type of Application (or Product)

Company tech products may include only a web, mobile, or a combination of both. Most companies who develop tech products will have different types of applications; insert ‘application’ as a suffix to each word below for the full conventional name:

  1. Web
  2. Mobile
    1. Within mobile; you can either download from an Apple or Android smartphone
    2. iOs (Apple)
    3. Googleplay (Android)

Application Layers (3) 

Each product has 3 layers of code that make it up. There are three main layers that comprise every product. 

  1. Front end (also known as the ‘Client’; a fancy way of saying ‘front’ or what customer see)
  2. Application programming interfaces (APIs) 
  3. Back end 

Languages: 

Each layer comprises its own language that builds that layer. Quick google check shows:

You’re absolutely not going to know every single language out there. It’s only important to know which languages may be relevant to your product and there may just be a handful depending on whether you work on a web or mobile application. There are languages for front end; the three main are HTML, CSS, and Javascript, and there are languages for back end such as Python, .Ruby, PHP, Java, .Net. 

Example: Instagram

Application: Web and Mobile application

Languages: See Exhibit A

If you don’t know what Instagram is (everyone and their mother should know) it is a free photosharing and social networking service available as a mobile application on iOs, Google Play, web browser. It possesses brilliant and beautiful user experience (UX) that has dominated  the social media market. People or businesses socially share awesome filtered stories and now videos of themselves to friends and more making it one of the most addictive social engineered products on earth. This is what Instagram mobile  app is composed of:

Exhibit A

  1. Front end (Client) 
    1. What each of us interfaces with on our screens. Everything you touch and can take action on is built with front end code. This includes log in or sign up, take photos, add a filter, add a picture and post/share. You can also view, like, and comment on other photos and follow people. With the web page, you can view, like, and comment on other photos.
      1. It hosts the UI and UI related logic. UI means User interface which explains exactly what it is. You and me are the user and it is literally what we interface with. 
  2. APIs – Application programming interface – a set of instructions or protocol to have two applications talk to each other to complete a set of actions. I would call APIs the middleman and connector between the front end and back end client to perform the specific task a customer gets value out of when using your product.
    1. There are many other types (SOAP, JSON-RPC, etc.). REST apis are commonly used. They are essentially contracts that communicate the terms between two entities, the front and the back end. Think of it like a real estate contract where it communicates instructions with terms applied that is communicated from buyers to sellers. The same applies where there must be inputs entered in the front end and those inputs such as price, closing date or contingencies, must be communicated to the seller to generate a response back to the buyer. 
  3. Back end (Server side)
    1. This includes the servers, database, and programming that makes it all work together. The back end is everything that happens when you take an action on page. So when you sign in, you send your username and password to the server. The server is the back end. On that server, your credentials are checked against a database (Database is the back end). A response is sent back to the front end which tells the app to perform the action. In this case, whether it lets you log in or not. This is the job of the back end.
    2. Same thing happens with the photos–once you hit “share”, the photos and whatever caption you enter are uploaded to the server (back end). They’re stored in the database (back end). When you or others view your photos, you send a request to the server (back end) to serve up whatever photos you want to see.

Each ‘end’ has coding languages that are used to program each ‘end’ or API – Python Web framework, Django. To learn more about frameworks and why they exist check out Why Frameworks. In this case, Instagram’s mobile applications for both IOS and Android were built using React Native. React Native is a hybrid mobile development framework made by Facebook. Each product has different languages that they use to build their front/back end and APIs. 

So we’ve covered the following:

Why and the benefits to learn technical concepts, every product may be comprised one or multiple types of applications (web or mobile), every application essentially has 3 layers, each layer is programmed with different languages, and we provided an example using Instagram. The first of the series to prime your confidence in technical concepts. What would you like to learn more of? 

about author

Patricia

 

Patricia is a product manager based in Seattle. One of her many missions is to help enable aspiring or existing product managers without a technical background to feel confident in their technical competence when landing and performing a product role. Outside of that she's a personal finance, real estate, and fitness fanatic.

4 Comments on "Tech Concepts for the Non-technical PDM: Product Infrastructure"

Leave a Reply

Your email address will not be published. Required fields are marked *