<?xml version="1.0" encoding="windows-1252"?>
<node id="560835" title="Re^2: Migrating Code From Test to Production: How to do it right, how to set up an environment that leaves nothing to chance" created="2006-07-12 18:01:45" updated="2006-07-12 14:01:45">
<type id="11">
note</type>
<author id="258459">
freddo411</author>
<data>
<field name="doctext">
&lt;blockquote&gt;
When it comes down to it, I would argue that there is no substitute for actually trying your software in production. For that reason, I try to write my code in a partitioned manner so that I can migrate nearly all of my code to a production environment without actually going 'live'. This may require a database switch that causes the 'write' portions of your code to point to a test database, or even (as may be the case with some major online retailers) require you to partition off a redundant portion of your production environment for a 'one box test'.
&lt;/blockquote&gt;
I really like this design, and I employ it myself.  I find it very, very handy to be able to "go live" after I have tested the system in production (but not generally seen by everyone).
&lt;p&gt;

An "on" switch has other benefits:  I value the ability to "launch" at a particular time that meets the customers expectation.  This would be otherwise difficult to do because installations take time. "On" switches are virtually instantaneous
&lt;p&gt;
Conversely, this implies an "off" switch which can be useful in some circumstances.
&lt;code&gt;
&lt;/code&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-258459"&gt;
&lt;P&gt;-------------------------------------&lt;br&gt;
Nothing is too wonderful to be true  &lt;br&gt;
-- Michael Faraday  
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
560384</field>
<field name="parent_node">
560489</field>
</data>
</node>
