User:PickingUserNamesIsHard/sandbox

= Production Engineering (software) = Production Engineering (PE) is a software engineering practice used to balance software feature development with software reliability, efficiency, scalability, and security.

Production Engineering stems from the belief that operational problems should be solved through software solutions and that the engineers who are actually building the software are the best people to operate that software in production.

History
The Production Engineering model was developed in 2012 by Facebook in response to challenges operating Site Reliability Engineering (SRE) : implementation:


 * Knowledge silos had developed between Software Engineering (SWE) teams and the SRE teams.  SWE teams’ knowledge specialized in the product feature development, while SRE teams specialized in the production reliability of the product.  Knowledge was not shared between the SWE and SRE teams.
 * Imbalances manifested in the effort spent on feature development and software reliability.  This can result in product roadmaps being too focused on reliable operation or, conversely, product feature development.

Philosophy
A small number of tenets have been established for Production Engineering :


 * 1) Strong Production Engineer and Software Engineer relationships with technical credibility.
 * 2) Shared on-call between Software Engineers and Production Engineers, with an embedded and collaborative model.
 * 3) Balanced focus between operations and features.
 * 4) Production Engineer and Software Engineer leadership accountable to delivering a feature-rich and stable system.

Shared Accountability
A principal of Production Engineering is partnership. SWE and PE teams form partnerships to share responsibility for balancing software reliability and feature development work.

As an example, SWE teams and PE teams collaborate to develop objectives and product roadmaps.

DevOps and Production Engineering
Coined in 2009, DevOps defines a set of practices that span sets of tools, or “toolchains” relating to the software development lifecycle.

Production Engineering scope spans DevOps toolchains. Production Engineering applies a specific philosophy to this set of practices.

Model Adoption
The Production Engineering model has been adopted by multiple companies, including OVO and Shopify.

General

 * SREcon15 - Notes from Production Engineering, 2015, Pedro Canahuati, Director, Production Engineering, Facebook