The Tooling Landscape for Developer Programs
Join the DZone community and get the full member experience.Join For Free
This article by G. Ryan Spain comes to you from the DZone Guide to Developer Programs. For more information—including in-depth articles from industry experts, profiles over 40 developer programs, and more—click the link below to download your free copy of the guide.
I’ll go ahead and say it: a developer program is only as good as the tools it provides. A developer can’t develop without them. Without the tools required for a developer to succeed, a developer program becomes nothing more than an invitation to make something out of nothing, working on an unfamiliar platform.
The DZone survey of technology experts asked what the most important components of a developer program were. The top four—APIs, Documentation, SDKs, and code examples — are all tools that assist developers in integrating their technologies with the developer program’s or building their own applications. These tools provide the foundation on which the rest of the developer program should be built.
Developer programs started taking off in the early 2000s, as web-based companies began searching for ways to integrate their applications with other web portals to increase the visibility of their services. In early 2000, Salesforce.com launched, and from the get-go the site had an API (Application Programming Interface) available for developers to integrate Salesforce.com services into other platforms . Soon after, the popularity of APIs began to surge across the web. eBay helped to pave the way for commerce-based developer programs with the launch of its API, which allowed developers to integrate eBay’s data and tools into their own sites and platforms. As commercial developer programs became increasingly popular, social media sites began to explode; social APIs not only helped to reinforce the impact of sites like Flickr, Facebook, and Twitter, but also allowed these platforms to better serve their main function—to connect people via the web.
While APIs played a key role in emerging dev program communities, they are not the only tools available from developer programs. Every dev program is unique, and each has its own rationale behind the tools provided. Beyond APIs, some programs offer sample code, SDKs (Software Development Kits), or IDEs (Integrated Development Environments) to help developers become acquainted with new coding environments. Support tools like extensive documentation, lists of frequently asked questions, knowledge bases, and developer forums can also be useful resources for developers.
In the end, developer program tools—and, by extension, developer programs themselves—are all about allowing developers to create and maintain connections between services, platforms, and people. The tools provided by developer programs vary widely, but a good developer program consists of tools that simplify the connection process and let developers move onward and upward with their projects rather than spending time reinventing the wheel.
APIs are the most basic building blocks a developer program can offer. Put simply, an API enables an enterprise’s products and services to communicate with other products and services. By giving outside developers access to resources through APIs, enterprises open up the possibility of integration with third-party applications.
In this relationship, an enterprise does n’t have to use resources to develop new applications and systems that would otherwise be outside its domain, and the developer doesn’t have to start from scratch and reinvent systems that are already available from another service.
Take for example Spothero, an app that allows users to search for available parking near them. The app uses a map to show users various options for parking locations. Rather than building a mapping platform from the ground up, Spothero utilizes the Google Maps API to connect their data and application with Google’s mature mapping platform. That’s just a single example, though. The Google Maps API alone has been implemented on over one million websites (as of Spring 2013) .
Programmableweb.com, a website “known as the Web’s de facto journal of the API economy,” currently lists over 12,000 APIs on the web. According to their research, this constitutes a 21.6% growth since October 2013, and an incredible 710% growth in the last five years . While not all of these APIs are part of broader developer programs, DZone’s survey of developers and other IT professionals found that 72% of API users prefer APIs within developer programs for their quality and maintenance. APIs are a key building block in developer programs, but there are many other tools developer programs provide to assist developers with integrating those APIs in their own development projects.
A software development kit is more like a set of tools rather than a tool itself, but it packages these tools together in a way that should allow developers intuitive access to them. SDKs often include API implementations, other libraries, code examples, definitions, specifications, debugging tools, and other utilities.
An SDK allows a developer program to keep their API lightweight, simple, and hopefully RESTful. Tools within an SDK can allow developers to configure APIs to their own specific needs for the platforms they are working on, rather than having APIs overpacked with materials that not all developers need.
The key features to look for in an SDK include simplicity and ease of use. Specifically, you should look for programs with SDKs that are:
- Built for easy initial integration
- Open source or highly customizable
- Flexible for a wide array of development scenarios
Once implemented, an SDK can serve many purposes. A quality SDK can assist a developer in adopting a platform they are not familiar with, or easing the introduction to a new development language or environment. An SDK can simplify the integration process by providing examples and other tools that help the developer connect their own applications with the API. And these examples and tools can help developers avoid coding mistakes or bad practices.
In addition to APIs and SDKs, developers also value quality documentation to back up these tools.
After APIs, the most important dev program tool for developers is good documentation. Documentation is what really allows developers to become acquainted with new systems and integrate applications into their own systems. It’s the tool that allows developers to learn to use the rest of the tools.
Good documentation helps to minimize the learning curve for getting started with new systems. It contains references, guides, and tutorials that help the developer know everything there is to know about the new interfaces they are working with. It contains quick-start guides to get the developer up and running in their new environment without too much stress. It provides concrete examples so the developer can more easily understand the core concepts, and it is easy to navigate by minimizing clicks needed to go from one area to another and maintaining logical organization.
A dev program can increase the quality of documentation by providing the space for developers to discuss how the documentation is provided, implemented, and supported. Tools for communication are vital in a developer program, and documentation is no exception.
There are so many tools that a developer program can provide to help developers become productive in the program’s ecosystem. APIs and documentation are standards in the developer program world, and SDKs have become quite popular packages to provide.
Some programs go even further, though. Examples of code, blogs, FAQs, knowledge bases, and even forums can be leveraged as tools to assist developers within these programs. There are even certain programs that provide their own IDEs to make development even more streamlined. Apple’s developer program provides the Xcode IDE and Google’s Android program provides Android Studio.
The point is, developer programs will often have an array of tools to help developers become more comfortable in the new development space where they will be working, and these tools enable the foundational goal of any developer program: to have developers be able to quickly and easily access and utilize the program’s technologies to advance the utility of the technology.
No matter what type of developer program you choose, or whatever your reason is for adopting a developer program, there are certain to be tools in place to assist you with your development endeavors. Whether you go for a massive “Mobile Moneymaker” like Apple or Android, or even a minimal “Drop-In” API program, you’ll find tools to help you integrate into new systems so you won’t have to start from scratch with your own development.
Opinions expressed by DZone contributors are their own.