The NS International Planner, the official Dutch railway app, was originally built with AngularJS. As it usually happens, time turned the original AngularJS into a bug-prone, sickly old ‘grandpa’ and it became increasingly obvious that a major update was required.
Flock. was invited to be part of the NSI team of experts in charge of the migration towards Angular 6 (and all the subsequent versions). While every version higher than AngularJS makes such transitions easy, back in the times of AngularJS the upgrade meant the whole app had to be rebuilt from scratch. The differences were irreconcilable.
Rather than choosing the ‘usual’, test-driven development method, this time we relied on Specification by Example as described by Gojko Adzic. It was a bit of a challenge at the start, as we had to get used to a novel way of working, but soon the benefits of this new approach became paramount: it streamlined the communication between the parties and was a major time-saving factor. In addition, Gojko Adzic’s method ensures that the business rules are clear from the very start (First Time Right principle). As our examples were written in Cucumber everybody – including people with no affinity with programming – could understand and validate them. Last but not least, the automatically generated test reports meant we were able to avoid the very time-consuming test phase.
In the course of the project we encountered a number of challenges, the most complex ones being the local travel regulations and the various discount types applicable across Europe. They all had to be translated into proper test examples with a considerable number of variables, including number and age of the travellers, departure, destination as well as countries crossed. As a side effect, we discovered that travelling with minors across Europe can be massively complex.
All in all, it was a thrilling project with tangible results and a great learning curve. Not only is the new version of the app developer-friendly and secure, other teams within NS International followed our lead: nowadays virtually everybody in the company is using Specification by Example for their new projects.