Here’s how we saved Shortlister from a costly rewrite
Shortlister is an online interview platform providing recruitment services to business and education. Their clients include Kraft Heinz, Merlin Entertainments, Sky and a number of Universities. Due to growth, their technical team needed to stay focussed on product enhancement so we were brought into handle the core software under the hood. When they first approached us they were resigned to a complete re-write of their core Python based platform, believing their ageing systems would be too difficult to upgrade effectively. Core components were going out of support and with that, vital security patches. Obviously, security is important to everyone on the web these days but companies like Shortlister live and die by their software’s certification. Security it is critical.
So, we talked to their team, we examined their software, and we felt strongly that starting again would be unnecessary. What was required was insight, analysis and planning. This would allow us to perform an upgrade that would keep Shortlister’s product not only running, but fit, secure and with a bright future ahead. Having invested so much time and money into the software, Shortlister’s management leaned in.
The crux of our approach was automated tests
Tests are important to any modern software system and thankfully Shortlister had a good suite of tests. Step one of our plan was to update all the tests within the current system so they passed. While this may seem slightly counter-intuitive, we reasoned that if the software was fit for production, any failures must be due to faulty tests, not faulty code. By fixing tests we gained insight. This was part of the plan.
Armed with what we had learned and a working test suite, we got to work upgrading. It can be tempting to try to jump straight to the end but experience has taught us that it’s far better to take smaller, well considered steps than to rush. The Tortoise and the Hare is not a bad analogy because, honestly, it was hard going. Progress felt slow at times but we never doubted our approach and steadily, we advanced, package by package, reading documentation, examining change logs, fixing code.
And, guess what? It paid off. Within six months we had a release candidate, a healthy system and a very happy client. Our upgraded system was released to the world without a hiccup and very bright future ahead of it.