Are you making your machine work for you? 2

Posted by Neil on October 18, 2007

Have a little think for a moment about the end of your work day…you might well get in your car, drive home and put your feet up.

Now think about the machine you were using all day. What’s that doing while you have your feet up? Is it also putting it’s silicon slippers on for the evening? If so, you’re missing a trick. You are not making your machine work for you. You have spent out the money for a virtual employee who does exactly what he’s told all day long, every day, but yet you are only making him work, say, 8 hours a day? What about the other 16 hours in the day (and the 48 hours at the weekend)? There is hours a week that you could be making use of all the technology that you have purchased.

So, what to do? Well, think about what you would do if you had another 128 hours a week. Think about what could get done. Now, take out anything from that list that is something requires thought - leave only the tasks that are repetitive. What’s left? Test cycles, source control administration tasks, creating new builds of applications?

Typically, these are the things people find are left over, all of which take a long amount of your time when carrying them out during your working day. So, don’t do them while you are at work - do them when you aren’t, or more specifically, make your computer do them. Computers are experts are menial repetitive tasks - and more specifically, they never complain, and never get it wrong.

So what can we do? Well typically this is described as continuous integration/continuous testing. This is the concept of employing a computer to do the boring stuff that a computer loves. Sit back and look at your code for a few minutes. Hopefully you have some unit tests lying around, as well as possibly some UI web tests via Selenium or similar. I would also guess there’s some source control work that needs to be done on a regular basis to aid testing etc, as well as some other miscellaneous tasks. All these are ripe for automation using Continuous integration and ANT.

Now I’m not going to delve into what continuous integration is, because many many people have done it before, and have done it better than I could, most notably Martin Fowler. The benefits are endless. While you are sat around watching TV in the evening, a machine at work can be sat doing FULL unit test cycles of your software, FULL UI test cycles etc etc. How cool is that?

During the day, by writing a few simple scripts in key places you can also have your machine work for you during the day too. Just done some scary low level changes to some software? Well kick off the same processes that run overnight, go make a cup of coffee and come back to your machine (hopefully) telling you that your software is still working perfectly. Additionally you can use scripting to simplify some common tasks. Regularly branching/merging/tagging your source control over the command line or via a tool like TortoiseSVN? Well, write some scripts, whack together a page containing a load of buttons to do the tasks, and then you can do the menial repetitive branches etc at the press of a button while you are sat there possibly eating a donut.

Whth all these mechanisms in place, which incidentally can be done for free, you can save your time during the day, and do more stuff at night that you previously wouldn’t have thoughy logistically possible. It will give you more time to do the stuff that web developers enjoy - thinking through problems, and cracking out new code.

Trackbacks

Use this link to trackback from your own site.

Comments

Leave a response

  1. Mike Thu, 18 Oct 2007 14:52:02 EDT

    Here are some good starting resources for selenium. http://www.thecrumb.com/wiki/Selenium

  2. Jim Thu, 18 Oct 2007 16:45:48 EDT
Comments