The Colour of Production

Most places I’ve worked at allocate red as the “colour of production,” i.e. the colour use for banners, badges, shell prompts, etc. Pretty suitable when viewed from a Western culture’s perspective: red traditionally means stop or danger, and one should always conduct their tasks in production with care.

But what about the other environments? I’ve not seen such a strong convention here. Maybe you could say that staging/pre-production is typically amber or orange, and dev is usually something like green; but this is not universal, and I’ve worked places that deviate quite a bit from this.

Whenever I have the choice, tend to follow this convention for these environments:

  • Production is red: naturally. Caution, stop-to-think, etc. All sorts of things that come to mind when I see red.
  • Pre-production/staging is yellow: you’re not dealing with live systems like you would be in production, but you do want to be careful. Ideally you should treat staging as if it were production, for no other reason than to rehearse what you’re about to do in production. And yellow’s a good colour for this.
  • Development is green: green as in “go nuts.” Do what you need to do to get your work done. You’re sort of expecting things to break here.
  • Testing is blue: since red, yellow, and green are used, I tend to allocate blue for the environment set aside for QA. It’s expected to be somewhat stable, so you’re not as free to do things here as you would in Dev. Yet you are expected to make changes here for QA to test, and not all changes will succeed. That doesn’t necessarily shout “blue” but it works.

Other colours, like purple or cyan, are reserved for the more auxiliary environments I may have to deal with. There’s no real semantic meaning to any of these, other than to tell them apart. I tend not to use the neutral colours like black, white, and grey, as they tend to blend into the UI and aren’t distinctive enough.