Thursday, June 6, 2019

Config versus Code - what's the difference?

I have worked on a few projects lately where the the conversation typically went as follows:
"We aren't coding anything, we are simply changing the configuration within the product"
or "We don't need to deploy our changes to Subversion/CVS/BitBucket/GitHUb as it is config not actual code" (and sometimes the word "actual" is stressed).

Sound familiar?

So I thought I would define what I thought are the traits and differences between config and and code:

Config is:

  1. Customisation of mature code, without affecting that code
  2. Held in a source control system, wherever possible
  3. Setting and changing parameters via simple instructions
  4. Carried out using a visual tool or interface
  5. Limited in scope (to what the developer wanted to expose)
  6. Best suited to making changes to SaaS (Software-as-a-service) products

Code is:
  1. Scripted or compiled
  2. Always held in a source control system
  3. Carried out using an IDE (Integrated Developer Environment) such as Visual Studio or Eclipse
  4. Far less limiting in scope (to what the developer wants to do)
  5. Where repeatable functionality is held
  6. Best suited to the creation of bespoke applications

Or put another way:
If you need a developer to make a code deployment once a configuration change has been made (to implement that config).... it is not config!


No comments: