How we migrated a pro cycling management system and supported future demands
With this year’s cycling season being open I thought it would be a good idea to share with you a story of a solution Goyello developed for Cycling Service. The experienced international organisation, mediating and operating between professional cyclists, teams and race organisers approached us with a challenging task. They needed to have their old HTML 4 web app revamped to make it compliant with modern standards and mobile devices. The result of the cooperation is Cyclotivity – a web application used by world’s top cycling teams. Professional riders and cycling race organisers benefit from it every day.
How does the cycling business work anyway?
If someone is not into professional cycling they may be unaware of how the business actually operates. Pro cyclists are supposed to take part in a number of races in each racing season. Every week they head for a different location where a race is currently taking place. Thus the race contracting and logistics around their trips can be quite a challenge.
Winning teams are granted prize money. The sooner the money is transferred by the race organiser, the quicker it can be divided among the team.
Someone has to take care of all those issues on behalf of riders and cycling event organisers – register riders to a race, book hotel rooms, make sure that both cyclists and their equipment arrive safely and that money is transferred on time. Cyclotivity supports it all.
What does an online system do for this business?
Cycling Service’s core activities include rider/team acquisition for international cycling events. They manage the acquisition of individual cyclists for among other after Tour criterions. They also organise administrative and financial handling with regards to prize money, premiums and bonuses.
To be able to operate smoothly and ensure great service to all the parties involved in the racing business, riders, team managers and race organisers, Cycling Service provided them with a dedicated online system. It enabled contacting riders collecting, distributing and administrating the prize money on behalf of international cyclists as well as managing other financial projects.
A migration was essential
The solution in question was an old style HTML 4 web application. Not only was it difficult to manage. More importantly, introducing modifications and adding new features to it proved really troublesome. Moreover the software did not work on mobile devices. It did not work with other systems either, which we were going to learn very soon. Knowing the challenges ahead, only one solution seemed applicable – a step by step migration of the system.
Always checking: Do you really need that?
When we are about to start cooperating with a new client or working on a new project, we often invite the client to a kick-off workshop combined with a brainstorming session. What is the aim of the meeting? Our experience shows that such an initial consultancy workshop helps identify and define the client’s actual needs. And the word “actual” should be emphasised here as it quite often turns out the list of requirements is long but most of them have to be reconsidered due to limitations imposed on by time, budget or technology. The question that should be asked then is “Which of them do you REALLY need?”
It was also the case this time. So, you say you need a robust app – we said. Let’s then sit and have a look at the features you think you need in it.
Migrating an existing system is hardly ever easy. At the beginning the functionality seems rather straightforward, up to the moment all the exceptions are being discussed. This one turned out to be a demanding one due to several issues we had to take into consideration:
- Learning and understanding the complex (financial) business logic.
- Accounting for different fiscal regulations in different countries as the solution was supposed to deal with money transfers and tax issues.
- Building a new solution but meanwhile having to integrate with the existing one. The architecture of the old app was not easily made to cooperate with the new software.
- Convincing all members of the client’s team that it is vital to concentrate on the core features and to leave the less significant aside till after the mobile version is complete.
- Convincing the client to show demos to the end-users to validate ideas as soon as possible.
With the Agile approach we adopted we could deal with the above mentioned challenges, be ready for any unexpected changes and quickly react.
Mobile First to focus on the core needs
First and foremost, Cycling Service wanted the solution to be compatible with mobile devices, with the iPad being the tool they pointed at as the most important. That is why we decided the Mobile First approach would be the best in that case. It is a method of designing projects with mobile functions in mind in the first place. You leave the complex, multi-function desktop version aside for a while. You concentrate on the mobile one.
Which features are absolutely essential for the solution to serve its purpose? Let’s make a list of them. Which features are not that necessary and will not work well with mobile devices? Can we resign from them for the moment and come back to the idea of developing them when we will be working on the desktop version? If so, let’s stick to that plan – that’s basically how we approached the task.
The advantage of such an approach is a shorter time-to-market. If you concentrate on the core features you don’t waste time on developing ones that might cause problems (e.g. on mobile devices) so will definitely slow down the development process. In addition, it allowed us to build a separate application to serve the mobile devices, without touching the existing one.
Can there be a better confirmation Goyello have done a great job than the fact that world’ 50 top racing teams use the app to manage their professional activity? Creating the new, modern face of Cyclotivity was neither an easy nor a quick process, but it was for sure real fun. The app went live in September 2014 and has recently fully replaced the old solution. Cyclotivity features all cycling events in the racing season and is used by cycling pros from all over the world. The technologies used to develop the app were Java Spring Framework for the back-end and HTML5 for the front-end. We are currently working on new features that will further enhance the platform’s functionality to even better support the professional cycling world.