Reflections on building developer-centric products

Ashwin Krishnamurthy explains why boundaries, protocols, and community are three key pillars for successful adoption of a developer-centric platform

4 min read
Share on

As a product manager for developer-centric platforms (such as APIs, application platforms, scripting engines), I’ve found that boundaries, protocols, and community are three key pillars for successful adoption of the platform.

Boundaries define the limits of a platform. In programmatic platforms, developers write code that is executed on the platform. A boundary ensures the separation between the user’s code and the provider’s code. This boundary helps to prevent the user’s code from accessing sensitive data or abusing resources on the platform owner’s servers. From my experience, good documentation, clear guides, and helpful error messages help developers understand the boundaries of a platform. As a product manager or platform owner, it is important to invest in these areas.

Protocols are the rules that govern how data is exchanged between different parts of a platform and how interoperable the platform is with other systems. Protocols define rules that would make the data exchange consistent, coherent and consumable, thereby making the platform more user-friendly. I have observed that the more idiomatic the protocols are, the easier it will be for developers to understand and use them. For instance, in JavaScript, an idiomatic protocol for interacting with an object would be to use getters and setters to get and set the properties of the object. Mandating any other approach in the protocol would result in frustration and a learning curve for the developer.

Community ensures that platforms are user-friendly and innovative. I have had very positive results from building communities that facilitate two-way interactions:

  • User-user interactions: Users can discuss ideas and overcome challenges with each other in a forum.
  • Owner-user interactions: Owners can collect user feedback, defects, and share the roadmap of the platform in a forum.

Identifying and rewarding users who help others ensures that the community is always engaged. A great example of rewarding community champions, is the Microsoft MVP (Most Valuable Professional) program. This is a community program that recognizes and rewards individuals who demonstrate exceptional technical expertise and community leadership. MVPs are selected by Microsoft based on their contributions to the Microsoft community, such as writing blog posts, answering questions on forums, and developing training material.

With these definitions in place, here are a few questions to ponder:

Boundary
  • What are the specific limitations of the platform?
  • Are we able to reduce developer’s costs when using our platform?
  • Are we able to calculate the cost to serve?
  • Are there any sensitive data or resources that should be protected from user code?
  • What kind of guardrails should be established to prevent platform abuse?
  • Is the platform documentation comprehensive ?
  • Is the platform documentation easy to understand?
  • Are there clear examples that illustrate the use of the platform within its boundaries?
  • How are users notified about errors?
  • Is the error messaging helpful and actionable?
  • How are developers encouraged to report issues and provide feedback?
Protocols
  • Are the protocols well-defined and consistent?
  • Do the protocols adhere to industry standards?
  • Do the platform’s protocols align with the conventions of the chosen programming languages?
  • Are there existing 3rd-party tools and libraries that can be leveraged for interacting with the protocol?
  • Are the protocols intuitive and easy to use?
  • Is there a versioning strategy in place to ensure backward compatibility?
  • How are breaking changes communicated and managed?
Community
  • Is there an online community platform for developers to interact with each other?
  • What channel (Discord, Slack, in-house community etc.) should be used for owner-user and user-user interactions?
  • How are questions on Stack Overflow or Reddit communities related to your project handled?
  • Are there community managers or moderators to maintain a healthy environment?
  • How is user behavior managed to ensure a supportive and respectful community?
  • Is there a recognition program for active community members?
  • What incentives or rewards are provided to encourage community engagement?
  • How is user feedback collected and utilized to improve the platform?
  • Is the platform roadmap shared with the community, and how often is it updated?

Ultimately, to create a successful developer-centric platform, you need to carefully consider the interplay between boundaries, protocols, and community. There is no one-size-fits-all solution, as your specific needs and the broader industry landscape will play a role. However, by keeping these three key concepts in mind, you can create a platform that is both secure and welcoming to developers