hexagon

Twelve Expectations for Developer Platforms

Introduction

In today’s digital landscape, making software increasingly benefits from architectural flexibility and accelerated feedback for developers. Software architecture naturally evolves with customer needs, organizational growth, and technological change necessitating flexibility. However, the rate at which you can make new features, fix bugs, and resolve incidents is throttled by how fast developers can receive actionable feedback. Tensions between these two objectives are often exacerbated by limitations inherent in the ways we're used to running software.

Developer Platforms offer a unified solution for running software with greater architectural flexibility and accelerated feedback for developers. These expectations represent the aspirational capabilities and experience for developers from a mature Developer Platform. While specific implementations may differ across industries and technologies, the overarching goals and benefits remain consistent. A successful Developer Platform increases development velocity, lowers cost, and boosts developer satisfaction.

Audience

Developers, including anyone involved in making software, particularly in technical roles. Engineers and leaders involved with the running of software.

The Twelve Expectations

I - Declarative Architecture

Application architecture is expressed and evolved directly in source code

II - Code Neutral

Developers have the freedom to choose code languages, frameworks, and libraries

III - Infrastructure Abstracted

Infrastructure is an implementation detail and should not be exposed in raw form

IV - Local/Cloud Parity

Developers can iterate and collaborate with consistent local runtime environments

V - Easily Automatable

Automatic workflows for feedback and deployments on code repository events

VI - Cost Conscious

Developers can make informed decisions with cost estimation and reporting

VII - Dynamically Scalable

Platforms can scale from infrequent dev usage through major events in production

VIII - Inherently Secure

Deploy with confidence knowing that your application is instrumented with best security practices

IX - Realtime Inspectability

Developers can inspect running state with terminals, debuggers, and database clients

X - Unified Observability

Developers can get valuable insights into how everything has been running with a unified experience

XI - Discoverable Problems

Proactive detection and collection of problems like alarms, concerns, and user reports

XII - Inclusive Incidents

Incidents can be swiftly identifed, triaged, and resolved while engaging all stakeholders

Background

The ideas in this document represent the collective insights from our team at Noop while pursing the next generation of running software. We've all dedicated years to improving the delivery of software at companies ranging from startups to enterprises while closely collaborating with developers. We believe that every substantial improvement in running software has fundamentally come through the further empowerment of developers.

In this document, we hope to instigate a conversation about the future of running software along with a shared set of goals and vocabulary. We drew inspiration from the 12 Factor App for the format of this document and applaud the collective impact their ideas have had on software.