We stand with Ukraine and our team members from Ukraine.

The Community Of Over 578,000

Home ›› Effective Developer Experience (DX)

Effective Developer Experience (DX)

by Jeremiah Lee Cohick
Share this post on
Share on twitter
Tweet
Share on linkedin
Share
Share on facebook
Post
Share on reddit
Share
Share on email
Email
Share on print
Print

Save

Facilitating better user experiences by making app development easier for developers.

When Apple introduced the iPhone, the device captured the imaginations of its users. Its features satisfied basic needs and also inspired ideas of what could be done when the Internet was always in your pocket. Eight months later, Apple made the iOS SDK available, transforming the iPhone from a product into a platform.

A platform is a product that can be extended by a user for the benefit of other users. Platforms are not new; the concept is as old as the computer. Any product can become a platform by providing methods for people to extend it, and the Internet has enabled products to become platforms more easily by lowering the communication barrier between products.

When a product transitions into being a platform, it takes on a new type of user: the third-party developer. When developers build their own products on a platform, they are in effect users of that platform. But they are a special type of user, one that behaves as an intermediary between end users and the platform product.

An end user’s experience with a platform product, such as the iPhone, includes the experience of using third-party apps. Every app is a use case that should reflect the user experience of the principal product. Platform product owners must be concerned with assisting developers in accomplishing this if end users are to have a good user experience overall. Attention to these details is called developer experience (DX), and enabling app developers to be successful through better DX will create a more successful UX for the platform product.

Trust & Communication

Effective DX begins with a relationship of trust between app developers and the platform product company. Communication is the foundation for building this trust.

Developers will be spending significant time and resources building their own products with a dependency they cannot control: the platform product. To assuage concerns about this dependency, a platform company’s internal discussions must be communicated externally. Developers need to know where the platform is going so they can adequately prepare for changes that may affect their business and product strategies. This look ahead to plans and changes is commonly referred to as a roadmap, and should include changes to terms of service, backwards incompatibilities, and new features from which app users could benefit. More importantly, app developers should be included in a platform’s long term strategy when possible.

Appropriate channels for developers to submit concerns and suggestions should be established to reach platform decision-makers. Developers will be able to identify problems for end users before the problems affect UX, and they will often be able to suggest solutions. Acknowledging and responding to developer concerns in a timely manner encourages productive communication that will improve the quality of apps and the platform.

DX can be thought of as an ecosystem—an interconnected web of relationships that benefit all participants. Within this ecosystem is a virtuous cycle. Third-party developers expand the appeal of the platform product by adding features. These features often involve discovery of more optimal methods for accomplishing a task technically, and sometimes create a user experience that could benefit the entire platform. These improvements are then incorporated into the platform product, bringing new users and encouraging additional app development.

Education

Documentation is essential to easing developers into a platform’s app development process. Unlike many end users, developers actually want to read about how to use the platform product. Documentation should explain the reasoning behind design decisions and the platform should lead by example when explaining functionality, policy expectations, and user interface conventions. This reasoning will allow developers to better understand the UX expectations of the platform so that they can build on it in a consistent manner.

Tutorials and example projects should accompany documentation. Like end users, app developers want to know how to accomplish a task. Merely providing a dictionary of API methods and properties is not enough. Demonstrations of best practices for code organization and platform integration better illustrate these concepts.

Documentation is also an opportunity for peer education. Commenting systems and wiki-style editing allow for contextualized assistance that enhances the value of the documentation as the primary resource for answering a developer’s questions. Allowing developers to clarify details and provide common solutions helps build a community while identifying areas of improvement for the platform. Collectively, these reduce the effort and time required for a developer to research problems and allow for more time to be spent creating and designing a better UX.

Tools

Many development tools for a platform are products and sometimes platforms themselves, such as Apple Xcode, Microsoft Visual Studio, and Apigee.com. The quality of these tools can by judged by their effectiveness in assisting developers to create products that are natural extensions of the platform. If the organization that created the platform has created apps for the platform as well, those apps should be produceable using the tools provided to app developers. This standard is known as “dogfooding.” Even if the platform company does not plan on releasing its own apps built on the platform, it should produce sample apps as an exercise in evaluating the quality of the development tools, as well as for identification of potential problems with the platform itself.

Often, the development process involves testing code in an environment different from where the product eventually will be used. Emulators, simulators, sandboxes, and similar tools must be dependable—meaning that their results should match the production environment’s actual behavior reliably. Additionally, production environments should allow for some manner of final testing before apps are released to end users to ensure developers can test precisely the product they are delivering.

Platform Usability

All of the considerations prior to this section have been about supporting the development process. An effective DX cannot exist without that support. However, the quality and usability of the features provided by the platform that the third-party apps depend upon are of even greater importance. If a platform does not allow a developer to utilize its capabilities and resources effectively, the other considerations are irrelevant.

The method by which a platform product enables third-party development commonly is referred to as an Application Programming Interface (API). As GUIs are to end users, APIs are to developers. Like GUIs, usability is the top consideration for APIs because they are how the platform’s capabilities are exposed to the platform user (the app developer).

The usability of an API can be determined by how easily a developer achieve a goal on behalf of an end user. Developers should be able to intuit the correct manner by which to interact with the platform. Best practices for code organization, design patterns, and naming conventions should be consistent and communicated. Usability also extends to error and status messages. When errors do occur, developers need to be able to easily identify where the problem occurred and what specifically was unexpected.

Developers should be able to to create a natural extension of the platform product’s capabilities for the end user. Any capability utilized by the platform product should be offered to app developers so end users have a consistent user experience. While some precautions may be necessary to prevent abuse, app developers will be able to create the best user experience when trusted with a platform’s full capabilities.

Together, We Can Do So Much

From social games on Facebook to business intelligence apps on Salesforce.com to thousands of “apps for that” on smartphones, platforms represent a significant opportunity for UX. Platforms allow end users to obtain more value from a product. By focusing on core strengths, platform owners can create products with broad appeal while app developers extend the product’s usefulness to more people. Successful DX leads to a more successful UX by the creation of value greater than two products independent of each other.

post authorJeremiah Lee Cohick

Jeremiah Lee Cohick,

Jeremiah Lee Cohick is a software developer with a design and product background. He currently works at Fitbit helping developers make the world a healthier, happier place. He can be reached on Twitter @JeremiahLee.

Share on twitter
Tweet
Share on linkedin
Share
Share on facebook
Post
Share on reddit
Share
Share on email
Email
Share on print
Print

Related Articles

Artificial intelligence (AI) could soon surpass human intelligence. Having both advantages and disadvantages, it still creates powerful opportunities and produces more accurate customer-behavior models.

Time to reflect on my future in the age of AI
  • Since AI-driven processes can create powerful opportunities to improve producing more accurate customer-behavior models, many traditional businesses will soon transform their core processes and business models to take advantage of ML.
  • Sonia P., People-Centric Design Enthusiast, brigs up such questions related to the role of AI in the future:
    • What’s exciting about AI?
    • What’s worrying?
    • How will we work with machines?
  • In order to make machines that behave better for humans is for UX designers to take all factors into considerations, bridge the gap and merge the knowledge from all sides to define the best solution.
Share:Time to reflect on my future in the age of AI
Time-to-reflect-my-future-in-the-age-of-AI.-article-image.png

There are numerous qualitative methods with students as users. Finding the right AAC system and implementing it effectively is essential to give every student access to communication.

How I Use UX Research in Speech Therapy
  • Kate Paolini, UX Researcher, and Speech-Language Pathologist digs deeper into how her students using augmentative and alternative communication (AAC) can benefit from a UX research approach.
  • Communication is much more than speech; therefore, finding the right AAC system and implementing it effectively is essential to give every student access to communication.
  • Kate Paolini conducted the research with the help of the following methods:
    • Buy-In & Initial Methods
    • Designing the AAC System for the User
    • Access & Education
    • Observations & Data Tracking
    • Heuristic Evaluation
    • Assess, Adapt, Repeat
Share:How I Use UX Research in Speech Therapy

This website uses cookies to ensure you get the best experience on our website. Check our privacy policy and