Ever attempted to deploy your software in your user’s environment only to discover that you were using a different version of the operating system, database, or application server? The Scorched Earth pattern is about reducing assumptions in your build and testing environments. A “scorch” is removing and reapplying software, scripts, and configuration values to ensure the environment is operating as expected.
When you are building our software, you want to be sure that there are no left over files or configuration settings that may make the software fail (or to receive a false positive). A full “scorch” means to start with nothing on the computer and apply a “layer” at a time until the complete system is applied. This may typically be performed on a testing or staging machine. Ideally, a Scorched Earth implementation that uses a Robot (automated process) to apply each layer makes this process more efficient. For example, remove everything from a machine and then apply the following layers to it:

  • Operating System
  • Operating System Configuration (network connectivity, users, firewall)
  • Server components for the software (e.g. application server, database server, messaging server)
  • Server configuration
  • Applying third-party tools (such as web frameworks, ORM, etc.)
  • Custom software (software you are writing for user)

You may apply a “scorch” to only one layer, such as the custom software components only. In this case, you remove all associated files and build and test the software in this environment. Which layer you scorch to will depend upon your level of risk. If your software relies upon various operating system files, then you may choose to scorch the entire system more often. In any case, a full scorch is recommended a few times before releasing the software to your users.