Platform engineering principles

Developers should be able to control their entire cycle in a way that conforms to business standards and security while maintaining a high speed of deployment. The back and forth between developers and the IT team should be minimized. Developers also want a solution that allows them to easily deploy their app with as little as a single button click. - John, Software Engineer, Biotechnology Company

Modern organizations at any scale - startups to large enterprises - all have the same time-to-market sensitivity. And all share the same goals of getting their developers started quickly, enabling them to deploy code fast, and decreasing their time to value. As organizations grow, a general pattern is to establish more governance to ensure quality and security, control costs through increased standardization, and scale effortlessly through improved standardization. However, many of these governance processes start out as manual controls. For example, creating a cloud computing environment in a new region might be managed through a manual request process to ensure proper controls.

Whether driven through service desk requests, review meetings, or periodic manual audits, manual steps introduce friction into the software delivery lifecycle. Introducing friction decreases team velocity, and worse, increases developer and operations team frustration.

Here are a set of principles that can guide the design and implementation of your platform engineering practice to resolve these problems: