The Power of Progress

As I mentioned recently, we've started a project recently that is being built on top of the Play Framework. I'm going to blog about it in more technical detail at a later date, as phase 1 of the project comes to an end, but it  has really got me thinking about the feeling of progression as a developer. 

One of the core features of Play (it's the first thing they mention on their homepage) is that you don't need to restart your application to view the effect of code changes. In the Java world, this is a pretty big deal. Restarting your application server for Solid State Group projects can take anything from 10 seconds to maybe 30 seconds depending on your machine, the project in question and the wind direction at the time. Although it doesn't sound like much, even a 10 second restart can be a killer for productivity. 

10 seconds is about the length of time that most developers will get bored and start fiddling with something. In fact, it's more like 2 seconds. Instead of staring at a progress meter, for most people that means checking email, twitter or whatever the social network du jour is or loading up another song on the office jukebox. 

The problem is that generally those activities will end up taking more than 10 seconds. Replying to an email, viewing an interesting twitter link or delving through Led Zeppelin bootlegs will almost never take less than 10 seconds, and will almost always take longer. So that 10 second restart just cost a couple of minutes of developer time. 

That's the conventional way of looking at the problem. Then you multiply the number of restarts by the number of developers, multiply that by the number of days and blah blah blah suddenly those restarts have cost your business 18 trillion pounds in lost productivity every single day. Or something like that. Whatever. It costs you money in lost time. 

The claim that you don't need to restart Play is pretty much true. I don't know how it works (and frankly don't care), but it's utterly awesome. Suddenly developing Java feels like developing a scripting language like Ruby or Python. No barriers, no stalling, just a smooth two-step jog of code, browser, code, browser, code, browser. 

And that's where I have found a golden, hidden benefit; one that is much more valuable than the 18 trillion pounds you lost yesterday waiting for your application to restart. It's in the private, gut-feeling of satisfaction  you get when you are creating something without impediment. It feels incredibly liberating, and made me realise that developers really don't want to be spending their time listening to dogs singing Gwen Stefani. They want to spend their time writing code that does stuff. They want leave the office, load up Oasis on their iPods and walk down the cold London street feeling like they achieved more that day, and that they will achieve more tomorrow. 

You can't put a price on that feeling. 

I had to fire up a 'legacy' project yesterday to analyse an issue, and the feeling of suffocating weight when I started up the app server was really surprising. We're building these apps on best-of-breed Java frameworks like Spring, Hibernate and Struts, yet it still felt desperate. Suddenly I was back in the irritating groove of checking my email in frustration of Tomcat taking another. 30. seconds. to. start. up.

So for now, glasses raised to play and to progress. Oh, and if you clicked that singing dog link, shame on you, and get back to work. 

Tagged in: New Technologies , Productivity , Rant

Comments

  1. The Play framework isn't necessarily responsible for this kind of productivity increase. A similar hot redeploy can be achieved simply with Jetty - see http://www.devx.com/Java/Article/42315/1954 This is good too: http://www.youtube.com/watch?v=qXo3NFqkaRM&feature=related
    Posted on February 23, 2010

Have your say

* Required Field
Blog results loading