Adam Colson: What an API Product Manager does

Adam Colson is a product manager I’ve worked with, and he works as a product manager that manages mostly APIs. Great User Experience designers should understand how APIs work and how to consume them. I personally love them, because once I understand an API I want to think of great ways to use it.

Great technical companies now create APIs for all of their data so front end engineers can consume it. It requires foresight, but enables much more flexibility. There was a famous post about Amazon’s services on this that’s also worth reading.  

He wrote this post to describe what he does. Cheers.

Often times I’m asked what it is I do. I usually answer with a short response like “I sit behind a computer most of the day and send emails” or “I help build Web sites and apps”. You see, describing what a product manager does to someone not in technology isn’t easy. You want to tell them in intricate detail what it is you do but you don’t want to bore them or tell them something that will just go right over their heads, like “I write product specifications for RESTful APIs”.

Recently, a VP of Engineering where I work reached out to me to help understand what I did, so that they could better identify a candidate for an API/SOA product role that they were looking to fill. The questions were:

  • What are the responsibilities of this product manager?
  • How do you define what is done by product and what is done by an engineer?
  • What type of documentation is produced by this product manager?

An API product manager’s responsibilities

An API PM is a fairly specialized product role. My experience in job searches is that there simply are not a lot of these types of roles out there. Hence, there is probably also not a lot of product candidates with explicit API experience.

It seems most organizations see APIs as a feature or bi-product of a larger feature. Organizations that take the distribution of their data and services seriously realize that making APIs a product and applying product management disciplines is key to success. So don't despair if the field is small or the perfect candidate doesn't surface.

That said, here is a quick summary of my role as the Product Manager responsible for APIs. Maybe finding candidates with this skill set and experience, plus the necessary technical understanding, will work.

Product  Manager Responsibilities

  • Subject matter expert and product expert for API or other products that are managed
  • Deep understanding of client needs and market trends, through client interaction and other market research
  • Owning and creating the product strategy and roadmap
  • Reviewing the roadmap with key stakeholders
  • Determining product priorities, including new features and bug fixes
  • Owning and creating the business/product requirements documentation
  • Managing feature iteration throughout the product lifecycle
  • Management of client API integrations and pipeline
  • Ownership of API documentation (ie – developer's site)

API  Engineer Deliverables

  • The product manager defines the "what", while the engineer defines the "how"
  • API architecture
  • Development of API features and functionality
  • Documentation of how specific methods work
  • Description of how to test specific methods (for QA – if applicable)

 API  PM Deliverables

This is using developing a new Web service for an existing system as an example.

  • Black box use cases (or user stories in Agile development methodology)
  • Description of services needed
  • Description of functions (ie – method calls) needed for each service and what they should do
  • Specific requirements for each method call:
    • Is it for Creating, Reading, Updating or Deleting data?
    • What are the data or input parameters?
    • What business rules or conditions should be respected or created?
    • What data inputs should be validated and how?
    • What should be returned in the response?
    • What data should be validated in the response?
    • What exceptions should be handled? If a business rule, condition, validation or other logic didn't pass, what error response should be returned?

You can read the rest of his blog here.