Appearance
What is it?
Originally published in 2011 by Adam Wiggins (epub, web), "it is a methodology for building software-as-a-service apps" that aims to:
- Minimize the time and cost for new developers to join the project by using declarative formats for setup automation
- Maximize portability between environments by having a clean contract with operating systems
- Be suitable for deployment in cloud platforms, preventing the need for server provisioning and system administration
- Enable continuous deployment by minimizing differences between development and production environments
- Provide scalability (scale up) without significant changes to tooling, architecture, or development practices
It can be applied to any programming language using any combination of backing services.
The creators of the document "have been directly involved in the development and deployment of hundreds of apps". The document gathers "ideal practices for app development, paying particular attention to the dynamics of the organic growth of an app over time, the dynamics of collaboration between developers working on the app’s codebase, and avoiding the cost of software erosion."
It aims to server as a reference for "any developer building applications which run as a service" and "ops engineers who deploy or manage such applications."