Benefits of Joining and Staying in a Developer Program

More than 80 percent of developers tell Evans Data, in the Developer Relations Program Survey 2017, that they belong to one or more developer programs (free and/or paid). A majority of developers have consistently told Evans Data that they won’t use a product, service, platform, API, device, framework, library and other technologies if there isn’t an associated active developer community. The top reasons for joining and staying with a technology and a developer community are included in “The Four T’s”: technical support, technical information, training and tools. Being a part of a thriving developer community, developers tell Evans Data that there are three primary benefits that they report to their executives and managers: time saved, increased productivity and improved quality.

DRPInfographic2017

Time Saved

When your developer program provides great documentation, getting started guides, step by step tutorials, sample template projects, pre-built client and server libraries, videos, and code snippets programmers can save time learning your APIs, building applications and reusing code. In the Evans Data Developer Relations Survey 2017,  more than three quarters of developers report that they save time because of their membership. The savings amount to being able to get more work done each week. Being able to access latest updates, bug fixes, and workarounds allows developers to avoid wasting time trying to track down a known problem. Talking with other developers in program forums and newsgroups can also save hours of wasted time that others have already incurred.

stopwatch-1749080_640

 

Increased Productivity

Using great tools, SDKs and content helps developers streamline their design, development, testing and deployment work. Leveraging the work done by your R&D team and developer advocates to help community members results in increased productivity for themselves and their teams. In my years of experience and with feedback from community members, it always helps to have someone show you the best practices and how to(s) for a technology allowing you to focus on what makes your solution unique to your company’s business. Copying sample code and reusing libraries and frameworks also saves time that can be used to work on other development projects.

stopwatch-2061851_640

 

Improved Quality

One of the best measures of developer program membership, according to developers in the recent Evans Data Developer Relations Program survey, is the improvement in the quality of their code. We know that developers write code. At the same time, developers also read code. Being a part of a developer program allows developers to avoid worst practices, talk with other developers about how to performance tune code, find and create workarounds for issues, write unit and system tests, use audits and metrics tools to identify code smells, and more. Hearing about development problems and solutions from other developers in community forums, in articles and on webinars helps another developer avoid the same problems, traps and pitfalls. Being able to access a bug tracking database on  a developer program site will lead to better quality products being built by your customers and your own R&D teams.

feedback-1978036_640

 

Additional Benefits Heard from your Community Members?

Do you have additional developer benefits that you’ve heard from your developer community members? Send me an email with your list.

David I Facebook Avatar

David Intersimone “David I”
Vice President of Developer Communities
Evans Data Corporation
davidi@evansdata.com
Blog: https://www.devrelate.com/blog/
Skype: davidi99
Twitter: @davidi99
LinkedIn: https://www.linkedin.com/in/davidi99/

 

Providing a Systems and Services Status Page and API for your Developers

When a developer’s app is built using one or more remote services and a problem occurs, users will start reporting a problem. Users will not necessarily know what is causing the problem. It could be issues with a cloud based service’s API, a cloud storage system or a bug in the software. How can your app know what the problem? Developer programs that provides services and APIs should also provide a live, frequently updated status page.  Providing status APIs and pages allows the software, developers, partners, ISVs and even end users to track down problems. Ultimately the solution to any problem is the responsibility of the app developer (and company) regardless of where the fault is. Well designed and implemented developer programs should provide an API to check status and receive notifications for apps to fail-over, recover, fail gracefully and display problem information and solutions to users.

symbol-2480163_640

Developer System Status Pages

Here are a few developer program system status pages that I’ve found in my research and assessments. Some sites also provide APIs, feeds and subscriptions to program and API status information.

Status Page Hosting and API services

Altassian, for example, provides to customers a status page hosting service and API. You can find details of the developer service at https://www.statuspage.io/. Here is a list of some of the companies that use the hosting and API service:

 

3rd Party Status Check Sites

There are several 3rd party status check sites that monitor popular sites and provide an edit box to input a URL. You can use these services to see if another site/service is up or down. Some, like DownDetector, provide APIs (for a fee) to check on service status.

 

Do you provide a service status page and status API as part of your developer program?

If you have your developer service status and API, send me an email with additional information and the links to the status page and API.

David I Facebook Avatar

David Intersimone “David I”
Vice President of Developer Communities
Evans Data Corporation
davidi@evansdata.com
Blog: https://www.devrelate.com/blog/
Skype: davidi99
Twitter: @davidi99
LinkedIn: https://www.linkedin.com/in/davidi99/

 

 

 

 

Developer Relations and your Company’s APIs – webinar info and links

This week, I am presenting a DevRelate webinar, “Developer Relations and your Company’s APIs” on Wednesday (May 31) and Thursday (June 1). This blog post contains additional information and links covered in the webinar.

APIs and Your Company

 

Developer Relations and APIs

 

API Documentation Examples

 

API Versioning – Overview

 

REST

  • URI
  • Request parameter
  • Media type (aka content negotiation & accept header)
  • Date
  • Custom request header
  • Domain name

 

SOAP

  • XML namespaces and XML comments
  • UDDI version aware service registry

 

Shared Code Files

  • Filename
  • Version resource

 

API Resource Links

 

API Documentation Generation Tools

 

Additional Swagger Resources

The following Swagger related links were provided by SmartBear Software (thank you Keshav and Tracy)

  1. [Blog] API Design Best Practices – https://swaggerhub.com/blog/api-design/api-design-best-practices/
  2. [Blog] What is API Design, and Why it Matters – https://swaggerhub.com/blog/api-design/what-is-api-design/
  3. [Webinar] Scaling your API Design Process – https://swaggerhub.com/blog/api-design/scaling-your-api-design/
  4. [eBook] Optimizing the Swagger collaborative workflow using SwaggerHub – https://swaggerhub.com/blog/api-resources/optimize-your-swagger-api-workflow/
  5. [Blog] Design first or Code first approach to APIs – https://swaggerhub.com/blog/api-design/design-first-or-code-first-api-development/
  6. [Webinar] API Developer Experience (DX), and good documentation practices for good DX – https://swaggerhub.com/blog/api-documentation/api-documentation-and-developer-experience/

 

API Versioning – Examples

 

Facebook / Parse (BaaS) API Shutdown Example

 

Evans Data Developer Program Workshops and Assessments

 

If you have additional API links, best practices, tools, tips, tricks, thoughts and questions, send me an email.

 

David I - Developer Relations Conference

David Intersimone “David I”
Vice President of Developer Communities
Evans Data Corporation
davidi@evansdata.com
Blog: https://www.devrelate.com/blog/
Skype: davidi99
Twitter: @davidi99
LinkedIn: https://www.linkedin.com/in/davidi99/

Developer Programs and APIs in the News – Volume 2, Number 5

In today’s interconnected world, companies in all industries need to publish APIs and cultivate a developer community to access and use them. To be competitive today, attracting and supporting developers is essential. The key to cultivating a vibrant developer community that uses your APIs and supports your platform is a good developer relations program. “Developer Programs and APIs in the News” is a series of news items from developer programs around the world.

Developer Programs and APIs in the News

Twilio – May 25, 2017 – Twilio Announces Proxy — Next Generation API for Building Private and Moderated Conversations with Customers – “Twilio, the leading cloud communications platform for developers, today announced Twilio Proxy, a new API to power private text and voice conversations between a customer and a mobile worker. Any business with a mobile workforce can now enable workers to connect with customers using their own device, while providing a layer of privacy and security to both the worker and the customer.”
Microsoft – May 24, 2017 – Microsoft R Open: The Enhanced R Distribution v3.4.0 is now available – “Microsoft R Open, formerly known as Revolution R Open (RRO), is the enhanced distribution of R from Microsoft Corporation. The current release, Microsoft R Open 3.4.0, is based the statistical language R-3.4.0 and includes additional capabilities for improved performance, reproducibility and platform support. Just like R, Microsoft R Open 3.4.0 is open source and free to download, use, and share.”
Google, IBM, Lyft – May 24 2017 – Introducing Istio: A robust service mesh for microservices – “Google, IBM, and Lyft are proud to announce the first public release of Istio: an open source project that provides a uniform way to connect, secure, manage and monitor microservices. Our current release is targeted at the Kubernetes environment; we intend to add support for other environments such as virtual machines and Cloud Foundry in the coming months.”
Amazon AWS – May 22, 2017 – New AWS Training and Certification Portal – “The new AWS Training and Certification Portal allows you to access and manage your training and certification activities, progress, and benefits – all in one place. Previously, you had to rely on multiple websites to find and manage training and certification offerings. Now you have a central place where you can find and enroll in AWS Training, register for AWS Certification exams, track your learning progress, and access benefits based on the AWS Certifications you have achieved.”
Google – May 18, 2017 – What’s next for Google payment and loyalty experiences – “Yesterday, we announced the Google Payment API, which lets people pay in app or online with any verified credit or debit card saved to their Google Account, via products like Google Play, Chrome and YouTube.”
JetBrains – May 17, 2017 – Kotlin on Android. Now official – “Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin. We believe this is a great step for Kotlin, and fantastic news for Android developers as well as the rest of our community. We’re thrilled with the opportunities this opens up. For Android developers, Kotlin support is a chance to use a modern and powerful language, helping solve common headaches such as runtime exceptions and source code verbosity.”
Google – May 17, 2017 – Build and train machine learning models on our new Google Cloud TPUs – “We’re excited to announce that our second-generation Tensor Processing Units (TPUs) are coming to Google Cloud to accelerate a wide range of machine learning workloads, including both training and inference. We call them Cloud TPUs, and they will initially be available via Google Compute Engine. Each of these new TPU devices delivers up to 180 teraflops of floating-point performance. As powerful as these TPUs are on their own, though, we designed them to work even better together.”
Silver Spring Networks – May 16, 2017 – Silver Spring Networks Expands IoT Developer Program – “Silver Spring Networks, Inc. announced the extension of its developer program with the introduction of a new developer portal, developer kits and a simulation tool for application development. Silver Spring aims to accelerate innovation for the Internet of Important Things. Support for the Arduino developer environment, the simplification of software tools, and the new developer portal will broaden the potential devices and applications that can integrate Silver Spring’s IoT technology into solutions for utilities, cities and industrial companies.”
Google – May 16, 2017 – Introducing Google Cloud IoT Core: for securely connecting and managing IoT devices at scale – “Announcing a new fully-managed Google Cloud Platform (GCP) service called Google Cloud IoT Core. Cloud IoT Core makes it easy for you to securely connect your globally distributed devices to GCP, centrally manage them and build rich applications by integrating with our data analytics services. When used as part of a broader Google Cloud IoT solution, Cloud IoT Core gives you access to new operational insights that can help your business react to, and optimize for, change in real time.”
Microsoft – May 10, 2017 – Azure Cosmos DB: The industry’s first globally-distributed, multi-model database service – “Today, we’re excited to announce the general availability of Azure Cosmos DB. Azure Cosmos DB is the first globally-distributed data service that lets you to elastically scale throughput and storage across any number of geographical regions while guaranteeing low latency, high availability and consistency – backed by the most comprehensive SLAs in the industry. Azure Cosmos DB is built to power today’s IoT and mobile apps, and tomorrow’s AI-hungry future.”
Oracle – May 10, 2017 – Oracle API Platform Cloud Enables Customers to Drive Business Transformation and API-First Thinking – “Oracle today expanded Oracle Cloud Platform’s integration offerings with the availability of Oracle API Platform Cloud Service. Bringing together leading API-first design and governance capabilities from recently acquired Apiary and API management from Oracle, the new cloud service delivers end-to-end capabilities for designing, prototyping, documenting, testing, and managing the proliferation of critical APIs.”
Unsplash – May 9, 2017 – The Unsplash API is now open & free – “It’s never been easier to make something awesome with Unsplash photos. Oh boy. The moment you’ve been waiting for is finally here. Assuming you’ve been waiting for us to make an announcement about the Unsplash API… Or were you expecting something else? A .gif perhaps? Have we satisfied your .gif cravings? Good, now let’s get down to business: the Unsplash API is now 100% open and free to outside developers.”
NVIDIA – May 8, 2017 – NVIDIA Releases VRWorks Audio and 360 Video SDKs at GTC – “NVIDIA is making VR more immersive, and VR development easier, with the release of VR audio and 360-degree video stitching as part of our VRWorks software development kit. The VRWorks Audio SDK provides real-time ray tracing of audio in virtual environments, and is supported in Epic’s Unreal Engine 4. The VRWorks 360 Video SDK addresses the complex challenge of real-time video stitching.”
Google – April 27, 2017 – Introducing the Google Assistant SDK – “With this SDK you can now start building your own hardware prototypes that include the Google Assistant, like a self-built robot or a voice-enabled smart mirror. This allows you to interact with the Google Assistant from any platform.”
Shopify – April 20, 2017 – Building for Developer Success with Shopify’s Newest APIs – “In building more paths to more entrepreneurs, we hope you can use these new APIs to help pave the road for entrepreneurial success. To make marketing better for merchants, and to improve how these apps show their strength, we’re introducing the Marketing Events API. With the new Reporting API, we’re giving all developers the ability to generate customized, app-specific reports.”
Apple – April 20, 2017 – Introducing LivePhotosKit JS – “This new JavaScript-based API makes it easy to embed Live Photos on your websites. In addition to enabling Live Photos on iOS and macOS, you can now let users display their Live Photos on the web.”
Facebook – April 18, 2017 – Messenger Platform 2.0 Debuts at F8 – “Today at F8, we introduced Messenger Platform 2.0, a new suite of tools that gives you the ability to build richer experiences, get discovered, and extend the conversational, visual and social capabilities of your bots. With more than 1.2 billion monthly users and over 100,000 monthly active bots, we are focused on learning and building for our developers.”
TeleSign – April 18, 2017 – Taking on the $8B Communications Platform as a Service Market – “Today we open our premium global network, proprietary data intelligence and innovative communications and security APIs, enjoyed by 20 of the 25 largest brands in the world, to a wider developer audience for the first time via a new self-service portal at www.telesign.com/go”
Apple – April 11, 2017 – What’s New in TestFlight – “TestFlight in iTunes Connect now provides multiple build support, enhanced group capabilities, and improved tester management—making it even easier to test your apps. TestFlight now lets you distribute and test multiple builds at the same time, so testers can choose from a number of builds to test.”

 

Send me your Developer Programs News!

If you have news about your Developer Relations Program, send me an email about the news.

David I - Developer Relations Conference

David Intersimone “David I”
Vice President of Developer Communities
Evans Data Corporation
davidi@evansdata.com
Blog: https://www.devrelate.com/blog/
Skype: davidi99
Twitter: @davidi99
LinkedIn: https://www.linkedin.com/in/davidi99/

Do you provide Swagger YAML and JSON files with your APIs?

Every developer has their own swagger based on their background, education, coding style, programming language used, etc. In this blog post I am talking about a different kind/type of Swagger.

When developers are interested in using an API provided by a operating system, platform, service, cloud, or device vendor, I’ll bet that one of the first things they will search for is to see if there is an API binding for their favorite programming language. Or, maybe your developer program members are the type of developers who just need the REST/JSON calling information? Where possible, I like to use client and server language bindings, components or frameworks for my development projects. Wouldn’t it be great if all APIs included great documentation and also YAML and/or JSON files for the APIs?

Swagger to the Rescue

With the Swagger YAML and/or JSON files I could use Swagger’s CodeGen tool to create bindings for more than 20 server side languages and more than 40 client side languages. That would be awesome. With Swagger supporting a range of tools, both the API developer creator can build their APIs using their programming language of choice and the API developer consumer can use their favorite programming language.

My one simple statement is “If your API supports REST and JSON then you can Reach out to Every Developer“. The text statement on the Swagger site say it succinctly – “Swagger is the world’s largest framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the entire API lifecycle, from design and documentation, to test and deployment.” While most developer program APIs support some common languages including Java, C++, C, C#, JavaScript, PHP, Ruby and Python, there are many other programming languages that also support REST and JSON web services. Why would you intentionally make it harder for developers that use other programming languages?

REST/JSON based APIs work with just about every programming language

My REST/JSON and APIs blog post on the Evans Data DevRelate community site includes links to REST/JSON supporting information for additional programming languages. It’s time for more developer program APIs to make it easier for developers,  using all programming languages, to build applications.

The statement on the Swagger CodeGen tool site says it so well – “Build APIs quicker and improve consumption of your Swagger-defined APIs in every popular language with Swagger Codegen. Swagger Codegen can simplify your build process by generating server stubs and client SDKs from your Swagger specification, so your team can focus on your API’s implementation and adoption.”

Do your Developer Program APIs include Swagger support?

Do you provide you developer program APIs with Swagger YAML and/or JSON files? Send me an email if you do and I’ll be very happy to pass along the word to developers.

 

David I

David Intersimone “David I”
Vice President of Developer Communities
Evans Data Corporation
davidi@evansdata.com
Blog: https://devnet.evansdata.org/
Skype: davidi99
Twitter: @davidi99

 

Developer Personas I Have Known

In the forty-seven years since I wrote my first program, I can honestly say that I’ve never met a developer that I didn’t like. In all those years I have created many different types of applications and met tens of thousands of programmers in buildings, in cities and at conferences across the planet Earth. While source code and hardware are two of the things that most developers have in common, there are many other tangible differences that uniquely identify each of the more than twenty-one million professional developers building cool systems and apps. Beyond programming professionals, there is a greater number of humans (and bots) that are also creating solutions using automation – sometimes called citizen programmers, solution developers, occupational programmers, and other non-traditional software engineering designations.

mask-1306181_640

Of course, there are popular platforms and programming languages that bring developers together. And, the Internet has helped bring us even closer together. Yet, the global developer population is very diverse in many ways. One of the key aspects of building a robust developer community is to identify your developers.

When I’m asked about developer sizes, I usually smile and reply with something like “small, medium, large, extra-large, and massive”. When I was focused on building developer tools, my elevator pitch was “I work for a company that makes the software that developers use to make the software that humans use.”

We can use demographics, psychographics and firmographics to place some developers into manageable buckets. Yet, there are so many other ways to categorize, quantize, and organize developers based on who they are, what they do, and what they create. Some developer qualities can be defined by the types of apps they create, the computer languages they use, the type of devices they target, the social media they are active in, and so on.

A developer program is only as strong as its community. No matter the industry, to have a thriving business you need to reach out to developers who can benefit your product, platform, service, device, etc. Drawing developers into your community with world class resources, tools and activities will create a win-win environment that benefits their careers and your business. A good way to focus your efforts on a target developer audience is by categorizing developers into several, quantifiable “personas” or groups based on social characteristics, tech adoption, industry, and other characteristics.

identity-795260_640

Developer Personas I have Known – a top 10 list

Here is my top ten list of developer personas for people I have worked with over my career (names have been removed to protect the tech fanatics – you know who you are):

  • Machine Language Developer – will only use assembly language and machine code to create fast running reusable functions.
  • Just Give Me the Spec Architect – can take any product design concept (detailed on the back of a napkin or in a complete requirements specification) and create an elegant app solution.
  • Tool Chain Engineer – lives to integrate disparate development tools into a cohesive build environment.
  • Compiler Jockey – loves to create new programming languages and work with the back end code optimizer to make target processors smile (and computer fans turn on).
  • Extreme Hacker – able to dig deep into any device, bios or application code to find a problem and create a patch to fix it.
  • Weekend Maker – in under 40 hours with no sleep can create  a truly wondrous child’s toy using an Arduino or RaspberryPi board and some tiny-C code.
  • Old School Coder – creates multi-device reusable libraries using C and inline assembler that can be consumed by any programming language.
  • Service Modernization Engineer – can quickly create a new REST/JSON based service API based on any older distributed computing APIs (RPC, DCE, CORBA, SOAP, etc.)
  • Cloud Seeder – can quickly migrate an internal application to a public/private/hybrid cloud based infrastructure for every available, industry leading cloud service.
  • Hyper Productive Software Engineer – able to produce thousands of lines of production C++ code each week for multi-year projects.

library-74038_640

Does the Software Development Industry have a “Library of Developer Personas”?

I have found many sources of developer personas but have yet to find a complete library, compendium, database, list, etc. Maybe this is because there are so many identifiable and not so definable developers. Developer personas can often be specific for an industry, company, architecture, platform, device, service, and other characteristics that align with a company’s offerings. Just as our industry has “body of knowledge” collections like the SWEBOK, wouldn’t it be great to have a Developer Persona Body of Knowledge (DPBOK)? Who wants to help create one?

 

Discovering Developer Personas Specific to Your Technology – Evans Data Can Help

The value of segmenting your target audience is well known to marketers across industries. Populations don’t exist as a homogenous group but always have variations that color their perceptions and their adoption of product offerings. The same is true for developers.

Software developers can be divided in segments based on many factors. These might be how they make their money, who their users are, which technologies they use, or what their motivations are for selecting a particular technology. They may be discovered as they naturally occur through cluster analysis, or they may be pre-defined to fit categories.

Once developer segments are defined, the value in any persona study comes from profiling those segments. Profiling allows you to recognize distinct personas so you can make targeted appeals to each group. Understanding the personas of your targeted developer segments allows you to:

  • Communicate more clearly with each persona
  • Provide the tools and technologies each persona uses
  • Provide the level and type of support each expects
  • Find developers that match the personas for effective outreach
  • Understand where each persona can be reached

Today, marketing is becoming a science and setting personas is the first step to applying modern marketing techniques in a world that is more and more individualized. Don’t try to lump all your developers together in a group when there are many differences that can be seen and addressed through identifying personas. Evans Data can help deliver the insights you need to really target each of the segments you need.

What are some of your Developer Personas?

I’m continually putting together a growing list of developer personas across multiple industries, technologies, products and services. If you’d like to share some of our target developer personas, send me an email.

 

David I Facebook Avatar


David Intersimone “David I”
Vice President of Developer Communities
Evans Data Corporation
davidi@evansdata.com
Blog: https://www.devrelate.com/blog/
Skype: davidi99
Twitter: @davidi99
LinkedIn: https://www.linkedin.com/in/davidi99/