<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VeerWest.com &#187; Experience</title>
	<atom:link href="http://www.veerwest.com/blog/category/experience/feed" rel="self" type="application/rss+xml" />
	<link>http://www.veerwest.com</link>
	<description>Web 2.0 Startup Blog - Notes on web development, software as a service and entrepreneurship.</description>
	<lastBuildDate>Tue, 16 Nov 2010 20:19:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>I must confess, I used to be a sloppy programmer.</title>
		<link>http://www.veerwest.com/blog/experience/i-must-confess-i-used-to-be-a-sloppy-programmer</link>
		<comments>http://www.veerwest.com/blog/experience/i-must-confess-i-used-to-be-a-sloppy-programmer#comments</comments>
		<pubDate>Wed, 09 Aug 2006 02:14:27 +0000</pubDate>
		<dc:creator>Cedric Savarese</dc:creator>
				<category><![CDATA[Experience]]></category>

		<guid isPermaLink="false">http://www.veerwest.com/blog/uncategorized/i-must-confess-i-used-to-be-a-sloppy-programmer</guid>
		<description><![CDATA[There is something exilharating about speeding on a Vespa through the boulevards of Paris at 3 in the morning. The thrill of speed, the empty streets, the cold wind &#8211; but most of all, that fact that you are on a rescue mission. Well, not the glamorous type of rescue. Just the kind that can [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" style="margin: 10px 30px 10px 0pt" alt="Vespa" id="image9" src="http://www.veerwest.com/blog/wp-content/uploads/2006/08/vespa.thumbnail.png" />There is something exilharating about speeding on a Vespa through the boulevards of Paris at 3 in the morning. The thrill of speed, the empty streets, the cold wind &#8211; but most of all, that fact that you are on a rescue mission.</p>
<p>Well, not the glamorous type of rescue. Just the kind that can only fall on the shoulder of a geek: Saving your fellow collegues from the mishaps of a buggy mission-critical application.</p>
<p>I did more than my fair share of it and it was fun. That was probably as close as I will ever get to feeling what a fireman must feel on his way to a fire.</p>
<p>Except I was the pyromaniac too.</p>
<p>For a long time, I considered a test environment some sort of superfluous luxury reserved to engineers with too much time on their hands. I fixed &#8211; and created &#8211; bugs directly on production applications because it was easy and fast. I designed systems that were like ticking time-bombs (who knew hard-drives had limited capacity?)</p>
<p>I didn&#8217;t know better and I learned the hard way.</p>
<p>Now I am running a commercial web-based service and I am not looking forward to middle-of-the-night emergencies.</p>
<p>The truth is that I am still a sloppy programmer, but I have taken steps to protect my business from myself.</p>
<ul>
<li>First, the whole site is under a <a title="Subversion" href="http://subversion.tigris.org/">version control system</a> (subversion).</li>
</ul>
<ul>
<li>The production site is checked out of the repository and never modified directly.</li>
</ul>
<ul>
<li>The development site is also checked out. It is the working copy.</li>
</ul>
<p>A typical update of the site works like this:</p>
<ol>
<li>FTP changes to the development site.</li>
<li>Tests in the development environment.</li>
<li>Commit changes to the repository.</li>
<li>Update production site from the repository.</li>
</ol>
<p>The commit operation is neither quick nor easy &#8211; intentionally. I use subversion clients like <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> for other projects, but not for my work on the Form Assembly. To commit I first need to establish a <a href="http://en.wikipedia.org/wiki/Vpn">VPN</a> to the server, then open a terminal session and enter the command line to commit the changes.</p>
<p>It takes long enough that I am not tempted to commit changes prematurely. I get to think twice about what I&#8217;m doing.</p>
<p>Then I can update the production site from the repository. That is just one more command, and one more chance to reconsider what I&#8217;m doing. I purposely removed the FTP access to the site to force me to go through the version control system.</p>
<p>Bugs still manage to find their way in the application, but I feel much more productive and empowered knowing that I have a safety net, a log of all my changes and a safe environment to develop.</p>
<p>I am still looking for ways to improve my procedures, so feel free to chime in if you want to share your own experiences and setup.</p>
<p>I know of something else that only engineers with too much time on their hands use &#8211; Test Cases. One day it will strike me as the new indispensable tool, hopefully before another emergency ride on a Vespa is needed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.veerwest.com/blog/experience/i-must-confess-i-used-to-be-a-sloppy-programmer/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

