Default to Development Settings

LMAX Exchange

Most systems have multiple configuration profiles one for
production, one for development and often other profiles for staging,
testing etc.  Minimising differences between these configurations
is critical but there are inevitably some things that just have to be
different. This then leaves the question, what should the default
settings be?

There are three main options:

  • Default to production values
  • Default to development values
  • Refuse to start unless an environment has been explicitly chosen

My preference is to default to development values. Why?

Development
values should be “safe” in terms of any external integrations. So a
developer isn’t going to accidentally start sending real buy or sell
instructions to your stock broker.

There are more developers than
production systems. If you default to production systems, every
developer needs to remember to switch to development mode whenever they
setup a new checkout. Defaulting to development mode means it just works
for the most common case.

Checking authentication credentials for
external systems into your source control system is generally
considered a bad security practice, so the default values are unlikely
to actually work in production anyway.

The down side with
defaulting to development is it’s possible to accidentally deploy to
production with development values causing an outage. This can be pretty
easily prevented with automated deployments or using tools like RPM
where files can be marked as config and thus avoid overwriting them when
doing updates.

Refusing to start is the worst of all worlds every developer has to specify a configuration mode and you still risk production outages by not specifying a mode.

Any opinions, news, research, analyses, prices or other information ("information") contained on this Blog, constitutes marketing communication and it has not been prepared in accordance with legal requirements designed to promote the independence of investment research. Further, the information contained within this Blog does not contain (and should not be construed as containing) investment advice or an investment recommendation, or an offer of, or solicitation for, a transaction in any financial instrument. LMAX Group has not verified the accuracy or basis-in-fact of any claim or statement made by any third parties as comments for every Blog entry.

LMAX Group will not accept liability for any loss or damage, including without limitation to, any loss of profit, which may arise directly or indirectly from use of or reliance on such information. No representation or warranty is given as to the accuracy or completeness of the above information. While the produced information was obtained from sources deemed to be reliable, LMAX Group does not provide any guarantees about the reliability of such sources. Consequently any person acting on it does so entirely at his or her own risk. It is not a place to slander, use unacceptable language or to promote LMAX Group or any other FX and CFD provider and any such postings, excessive or unjust comments and attacks will not be allowed and will be removed from the site immediately.