It’s good to share! (Code)

May 3, 2010

Many of our dedicated blog followers have noticed that we’ve been a bit quiet recently and there hasn’t been the usual steady stream of updates. But don’t worry, we haven’t been taking it easy, on the contrary it’s been a hugely busy time for the whole team as we’ve been working on some massive changes to ProWorkflow that will bring some awesome long term benefits to all of our customers. We don’t like to keep secrets so we wanted to share what we’ve been up to.

Changes under the hood

ProWorkflow is developed in ColdFusion and has been for many years, during that time there have been some great new features added by Adobe and wherever possible we look to take advantage of these. Most of the time these require just small changes but this time around we had to think a bit more deeply (and by “we”, I mean our overworked developers).

Previously, each of our customers had an entirely separate set of files that provide the logic for ProWorkflow. So when a user added a new task they would be using the “add_task.cfm” file that was stored in a folder dedicated to their account. Every account would have its own copy of this “add_task.cfm” file even though they were all identical.

This approach has worked really well but had a few key drawbacks that we wanted to overcome:

  • Performance – having every customer requesting copies of the same file meant more load on our servers because we couldn’t cache effectively.
  • Updates – with several thousand customers, the process of rolling out updates was time-consuming, server intensive and generally quite difficult to manage.
  • New accounts – each new customer required a lengthy setup process.
  • Storage – every file was small but several thousand are needed to power ProWorkflow, having copies for each customer was eating away at our hard drives.

It’s been just over 6 weeks of early mornings and late nights but we are thrilled to say that with a mix of ingenuity, persistence and caffeine we completed the final testing phase late last week. Every member of the ProWorkflow team has been involved in testing every feature, button, link and setting within ProWorkflow across multiple browsers. I feel it is a real credit to everyone that we are not only still talking to each other but remain good friends afterwards!

We have already been using this new “Shared Code” approach for new trial accounts and it is going very well, it’s a bit too early to start giving performance figures but we will produce those in coming weeks. We will be rolling out to existing accounts over the next 1-2 weeks, carefully monitoring to ensure there are no issues.

What’s next?

The new shared code model will bring performance improvements to all of our customers but more importantly it will dramatically shorten our update rollout time. This means our developers spend more time making ProWorkflow even better and everyone gets the changes at the same time! It also opens up the door for some fantastic new features and you’ll be hearing about those in the coming weeks.