The 12-Factor App is a widely known best-practice for building software-as-a-service applications. However, even if you aren’t building software-as-a-service applications, there are a lot of benefits.
In fact, we are seeing huge benefits from applying 12-Factor principles to almost all of our applications, even applications that still run as services installed to Linux or Windows virtual machines. In a few conversations we’ve had with other developers lately, it has seemed a bit surprising that we are applying these principles to non-SaaS apps.
In thinking through what has made this beneficial for us, one thing stands out: the 12-Factor methodology helps you produce an app that is better-designed to handle change.
Designing for change is not a new concept, but often times when we think about designing software for change, it is probably most obvious to think about the internal structure of the application and how well it can be adapted to changing business needs.
But in this series, I would like to highlight a few other types of changes that may be less obvious, but are supported well by 12-Factor Apps:
- Human and Organizational Changes: Changes in the People and Organization that make or use the app.
- Technology Changes: Changes in the Technology used to build or execute the app.
- Run-time Changes: Changes in the Run-Time environment in which the app is executing.
I’ll discuss each of these more below and we’ll dive deeper later in this series.
This post is part of an ongoing series. Subscribe below to join our mailing list and never miss a post!