The Signal platform is built on top of the Ruby on Rails web application framework. To get a glimpse of why we love Rails so much, just take a look at the first paragraph of this blog post announcing the 3.0 release: “We’ve brought the work of more than 1,600 contributors together to make everything better, faster, cleaner, and more beautiful”. Sounds like a pretty awesome framework to be aligned with, right?
At the tail end of last year we were running version 2.3 of the framework, released nearly two years earlier. We knew that a lot had changed with the 3.0 version (the biggest release to date), and that the upgrade would be a significant amount of work. We also knew that this upgrade would provide improved application stability, performance improvements, increased developer productivity and a bundle of new feature to take advantage of. To add, many of the open source plugins and gems (code libraries) we use were also abandoning support for Rails 2.x, which would potentially leave us stuck with older, buggy, unmaintained versions of these libraries. It was clear there was obvious upside to upgrading, and after five years of building Signal we also were excited to spend time removing and rewriting some old code that was weighing us down. Win all around.
We chose to kick this effort off at the beginning of January and estimated that it’d take us three months to work through all of the project tasks. We thought it made sense to slot this ahead of any new feature development and enhancements since we’d likely have to rewrite any of that new code to work with the new version of Rails.
It’s true, this puppy wiped out our whole team. It was a huge effort.
We wrapped up all development and testing tasks at the end of March and successfully deployed the upgrade to production earlier this month. With the whole team stepping up to help with the project, I really felt like we did a good job finding, fixing, resolving and closing bugs in a timely manner. Customers are now experiencing the benefits of a cleaner, faster Signal, and also able to take advantage of some design improvements to aid in usability including mobile optimization throughout product.
Now that we (thankfully) have this project out of the way, we’re focusing on the next set of features and enhancements that will add a ton of value for customers…things like a redesigned dashboard, introduction of true CRM style contact management and a series of projects to improve analytics and reporting. We’ve also taken an opportunity to take a step back and put rework how we plan, prioritize and execute product development efforts. Lots of good mojo going right now!