New clients often ask to see the kind of work that we’ve done. You can see some examples in our portfolio. But it’s also pretty important how we do the work. This really gets down to process (and coffee). By process we don’t mean a pretty diagram with lots of arrows or a Powerpoint presentation, but a way of doing something the right way (hopefully the first time).

Some of the processes we automate – in particular the ones that are fiddly and involve getting lots of detail right. Like updating a website to a current version or migrating a database. Very easy to miss a step and some little but important thing won’t work. So we use a tool which automates this.

Other tasks involve explaining ideas and getting feedback, and we need to make sure everyone sees the designs and can post feedback or discussion. Again, we use tools and a clearly defined process to manage this.

Having all these processes doesn’t mean that we’re a bunch of faceless robots. It’s more that having good processes that work well mean projects run smoothly. Not only do they save time, they reduce the chance of human error on repetitive tasks.

Story Driven Development

Project dashboard

You can read more about our wiki ways here: How we Wiki

Keeping track of issues

Version control

Deploying code

One of the challenges with modern sites is deploying them properly. With a simple site, you can get away with just copying up some files. The worst that can happen is that you might miss a page or image. As a web site becomes more complex, you get more moving parts. Miss something and you might lose a finger. Typical steps are:

  1. Grab the most recent version from version control. You might also need to check for updates to plugins
  2. make a snapshot of the current site, just in case things don’t work out. Snapshot the database too.
  3. Create a new folder, set up all the linked folders, and set up the right permissions. Copy the files in.
  4. Restart the web or application servers

Once we’re ready to publish, we press the magic button, the lights fade, the curtains part and the right bits are pulled together and delivered to the server. If there is a problem, Capistrano can roll back to an earlier version.

We use Jenkins and Capistrano to manage the deploy process, update our blog with awesome articles, fill out our timesheets and to make coffees for everyone.