Foundations of a Successful Developer Platform - DeveloperWeek 2015
-
Upload
kamyar-mohager -
Category
Technology
-
view
252 -
download
1
Transcript of Foundations of a Successful Developer Platform - DeveloperWeek 2015
Foundations of a Successful Developer
Platform
Kamyar Mohager (@kamyarsayshello)Staff Engineer, Partner Engineering Lead
What We’ll Cover
• Platform Strategy• API Architecture &
Development• Documentation & Support• Monitoring & Operability
Define what your platform offers
• How do you define success for your business?
• Decide what you want your developers to do in order to contribute to the success of your business
• Try to determine this early on but be nimble if your market changes
Now you can determine the who of your platform
• How do you get your developers to engage?
• Best case scenario: Your product already has enough pull on its own to get devs to start building apps
• Otherwise…– Business Development team = Partnerships– Evangelism (e.g. Hackathons) = Hackers /
Organic Ecosystem
Lessons Learned @ LinkedIn
• 2009:– Build it and they will come!– Let “professional apps” flourish; no focus on the
what and the who of our platform
• 2015– Primary focus on partnerships that align with
LinkedIn’s product and business goals– Continue to support broader developer community
but give more guidance on use cases that our platform supports
– Bloomed new partnerships and use cases beyond supporting “professional apps”
Eating Your Own Dog FoodWrite API Once
Practice What You PreachI’m not only the Hair Club president; I’m also a
client
No matter how you say it, ideally you should consume the same APIs internally as you expose externally
Lessons Learned @ LinkedIn
• Domain knowledge belongs to product teams, not platform team
• Difficult to maintain a platform codebase separate from the core stack– Getting buy-in from other teams to
maintain their APIs was critical
• A growing disparity between what the core LinkedIn products offered and what our platform offered
Some Challenges to Consider
• Your API Gateway should be configurable to modify access control for external vs internal consumption• API management tool – Build vs Buy?
Treat Your API as a Product
• Write the API doc before building the API
• Gain valuable insights and developer feedback
• This influences both API development and the product itself
• Letting your developers sandbox the APIs while still in development = faster iterations
Goal: Decrease Time to First API Call
• Regardless of how well your APIs are designed, poor docs discourage developers
• Focus on decreasing time to first API call with clear & concise documentation
Clear Communication On The Do’s and Don’ts
• Communicate supported use cases clearly in context of the API documentation
• Provide a separate FAQ if necessary• Write your Terms of Use clearly to avoid
any confusion on what is/isn’t supported– Developer empathy: wasted time,
annoyance, anger b/c of confusion on unsupported use cases
– Try to avoid too much legalese if you can
SDKs and Libraries
• Pros:– Easily handle authentication and API
requests– Especially important for mobile
developers if you’re implementing web-based auth (OAuth)
• Cons:– Engineering investment is costly– Harder to maintain the more
languages/frameworks you support
Giving Developers the Support They Need
• Provide channels of support for your developers– Developer forums– Stack Overflow– Support Ticketing Systems
• Clearly define your support SLAs to set expectations
• If you have an open platform, be prepared for a wide variety of technical questions
• Staff your team appropriately to answer these questions on a timely manner
LinkedIn Developer Support
• Open developers: Stack Overflow• Partners: Zendesk• Our partner engineers cover all
support channels• SLAs vary
Always Have a Pulse On Your Platform
• Internally: Always have the operational metrics and instrumentation on the health of your APIs. Know when your APIs are down before developers do
• Internally: Be able to solve the key business questions of your platform
• Externally: If possible, provide some level of monitoring / alerting to developers so they’re not left in the dark
Partner Monitoring Dashboards
• We can monitor by:– API Endpoint– Application– Partner Program (set of applications)
• Alerted of any issues based on a given dashboard
• Optionally have our NOC alerted when necessary
InSummary
• Strategy decisions have a lasting impact
• Treat Your API as a Product• Developer communication is critical• Platform uptime and monitoring is a
priority• Remember to always be nimble