All Change in the Webstrong House

When a company doubles in size in a single day (from one to two!) some major changes need to be made. The way I run every aspect of my business has been turned on its head. Now you would think that all this change would be tough and stressful, and… you’d be right. But it has also forced me out of my comfort zone and I’ve had to completely redesign how I develop code for client projects.

When I was a one-man-band, it was all very simple. It was just me, the client and my pc. All the code I wrote was saved on my hard disk and when a project was finished I’d simply upload it to either a test site or a live site via FTP. Perfectly simply, but, not anymore. Now that I’m developing projects in collaboration with others, I need a new system.

Source Code Control Built In

So, with the help of the ever patient Adrian Skehill, I have completely changed how I manage my code. Out with Dreamweaver, Filezilla and Register365, and in with Aptana, Subversion, Ant, Hudson, and VPS Hosting (care of Blacknight).

The introduction of version control has made an immediate difference. No more risk of overwriting each other’s code and with the added advantage of being able to roll back to any previous state makes version control a must-have for development teams, and highly desirable for lone developers.

Forcing Myself to Change

I’ve dabbled with version control before, but found it failed to catch on for two main reasons. The first problem was that I setup a local repository which meant that I could only commit from that machine and it also prevented others from collaborating on the code. The second reason it didn’t last was because committing to the repository was a separate action from uploading changes to the web server. The result was that I often forgot to use the version control system.

So, to tackle this I’ve found a way to force myself and my team to use version control. Here’s what I did:

I stopped using Dreamweaver and adopted Aptana instead. Aptana is built on the well known Eclipse IDE and has been created with the web developer in mind. It has a strong emphasis on providing support for web technologies such as CSS, XHTML, PHP and Javascript (including jQuery). These features make Aptana a very real alternative to the ubiquitous Dreamweaver, but where it really comes into it’s own is in it’s integrated Subversion support. Using a plugin called Subversive, I can commit to the repository directly from Aptana.

I setup hosted version control. Using my new VPS account on Blacknight, I installed a hosted Subversion system. Now I can commit updates from any machine with an Internet connection. Also, a nice side effect of this is that my valuable source code is backed up multiple times a day to a remote location.

I integrated Subversion with my deployment process. Rather then committing separately to version control and then uploading the same code to the web server through FTP, I installed a continuous integration system called Hudson. This is a fantastic tool that monitors all my repositories for changes and automatically uploads the newly committed code to the test server (and lets me deploy to a live server with a single click).

The Finishing Touch

I’ve been using this new development environment now for a few days and so far it’s been a dream to work with. Everytime I commit my changes on my development box to version control, Hudson picks it up and updates the test site so the client can review them. It also shoots off an email to me and my team, so that everyone’s kept in the loop.

As a finishing touch to this new system, I took advantage of the available plugins in Hudson and setup automatic Twitter notifications every time a new project is built. For this, I setup a dedicated Twitter account at So now, every time one of my projects is updated I can read about it through Twhirl!

Overall I’m delighted with how these changes have affected my daily work. My code is easier to manage, and more secure. Plus it’s collaborator friendly and most importantly it’s setup in a way that will ensure I maintain this new approach for years to come.

I always love hearing how other developers and designers work day to day, so if your approach differs from mine please let me know!


2 Comments added. Add comment?

  1. MicroAngelo says:

    Hi Iarfhlaith,

    We’ve been using a custom system, with the SVN hosted on Dreamhosts utilising the hooks to deploy commits to our dev server, and scripts to deploy to our staging and live servers. It all works, but recently I’ve been looking at Springloops and thinking it might be a worthwhile investment for the amount of work it would remove from us.

    I know you’re cynical on SoaS due to the reality of “it all adding up”, but if it saves you time, time=money, then it should pay for itself.

    Anyway, I was just wondering, now you’re a couple of months in, how are you finding your setup?

    Wishing you a good 2009.

    Dec 23, 2008
  2. Iarfhlaith says:

    Hey Chris,

    I looked at Springloops a number of months ago, but eventually decided not to run with it. But despite my reasons it really does look like a great service and if I had to choose between using it or not using a hosted version control solution at all then I would definitely choose Springloops.

    However, after using Hudson/Ant for the last couple of months combined with hosted SVN on my own servers I have to say I’m delighted with the decision I made to invest the initial time and energy it took to get it setup.

    Dec 23, 2008

Sorry, comments for this entry are closed at this time.