For more than two years, the Wise mobile team worked closely with the Accelo team on code improvements and delivering new functionality using specific technologies for iOS and Android platforms. The key results of the collaboration were two native applications that evolved in parallel with the web application version. Besides, the team successfully adopted the Test-Driven Development approach and achieved some automated end-to-end testing.
Service businesses have all been through it: multiple clients, schedules, massive team workload, invoicing, reports, and more. Organizing effective client management isn’t always the easiest task. A handy cloud-based platform that organizes all aspects of this work, therefore, can be of great help.
The Australia-based company, Accelo was started in 2009. Since then, the company helps businesses to:
Accelo was not a mobile-first platform, and at the start, customers only needed a web application to improve business performance and profitability. Yet, as approaches to client management started to evolve, the company noticed the customers' need to have all the information when staying outside the office.
Before the Wise Engineering team onboarded the project, the separate apps for Android and iOS already existed and had some basic functionality. Still, to ensure the full lifecycle of client work, including prospecting and payments, some more features were to be added. The main hurdles the Accello team faced were related to insufficient code quality, outdated technologies, and lack of human resources to implement any improvements.
We needed the flexibility to scale resources as the need to support new features on mobile ebbed and flowed with our product feature timeline. We also had a need to continue to migrate from Java and Objective-C on Android and iOS.
Wise Engineering impressed us during the selection process by quickly building a prototype feature, and with the right people, making it easy to select them for our needs.
Right from the start, the companies agreed that this would be a long-term collaboration contract. Accelo team looked for experts to empower their existing mobile app development team which consisted of 3 mobile developers, a mobile lead, and a QA engineer at that time. Initially, two Android developers and one iOS developer joined the Australian team from the Wise side. Also, a local dedicated account manager worked with the Wise team and provided systematic performance reviews to ensure the professional growth of everyone on the team.
Before this project, the Wise mobile team worked on several short-term initiatives and was happy to join a native mobile app development team for a significantly longer period. This allowed them to dive deeply into the product and industry specifics, suggest improvements, and contribute to the overall product development.
Ukraine is nine hours behind Australian time. Such a significant time difference was one of the key challenges both Ukrainian and Australian teams met. To minimize its impact on the mobile team performance, the Wise engineers started their workday two hours earlier than the other teams in Ukraine. This allowed them to have more overlapping working hours with the Australian team.
Though teams worked mostly asynchronously, daily scrums and weekly demos helped everyone stay on the same tune. Mutual meetings allowed a tech lead on the Accelo side and an account manager on the Wise side to effectively orchestrate teamwork spanning across continents.
Developer-driven time was a great idea by the Accelo team that allowed engineers on the Wise side to be more involved in the product development process and suggest improvements for the mobile applications. For three days every three sprints, engineers could work on the optimizations they considered significant and work more deeply on their ideas on how to improve the value the apps brought to the Accelo end-users.
Besides, at Wise Engineering, there is a popular book club initiative: colleagues come together to read some professional literature, meet once a week to discuss chapters, and decide how to implement the insights from the book. The Ukrainian team suggested the idea to Australian colleagues, and it turned out to be a pleasant and productive experience for sharing knowledge.
Test-Driven Development is an approach to software development that relies on the creation of automated tests before writing any code that is to be tested. TDD helps to turn requirements into very specific test cases and ensures written code is covered by at least one test.
Always focussing on code quality, the Accelo tech team decided to adopt this approach to native mobile app development in collaboration with the Wise team. This was a complex process and required additional workload and high expertise from both the Wise and Accelo engineers. The united mobile team successfully coped with the task, and the results were all worth the effort.
For over two years, the Wise team has grown to know our product and our applications and processes like they were part of our local mobile team, and we’ve been able to scale to meet our needs on two native app platforms. The Wise team has been key to enabling us to develop new features on Kotlin and Swift while continuing to migrate existing features from the legacy syntax.
Before the Wise Engineering mobile team joined the Accelo mobile team, they already had two native applications for iOS and Android platforms. When the teams started to collaborate they evaluated the old projects in Objective-C and Java and decided that new functionality will be created using more up-to-date programming languages – Swift and Kotlin, and the tech stack was to be modernized.
Besides, the engineers from the Wise side took an active part in the optimization of the overall mobile development process at Accelo and suggested ideas that helped to deliver faster. For example, each task in the Accelo mobile sprint was split into seven and more subtasks. With a separate review for each pull request, it took too much time to process. So mobile engineers from Wise suggested uniting some small subtasks into one and dividing a task into up to 3 subtasks. With the new approach, both teams could release updates and new functionality quicker without compromising the code quality.
After a thorough evaluation of both programming languages’ specifics, it was decided to switch to a more approachable, full-featured Swift. The decision was made due to its clean syntax, improved security, and speed advantages. The transition was rather challenging for the iOS development team as Objective-C and Swift are incompatible programming languages and most of the code had to be written from scratch. Nevertheless, the new language allowed developers to write more reliable code, avoid repetitive work, and keep the focus on more high-level tasks.
Converting from Java to Kotlin was less daunting for the Android team, as the two programming languages are compatible and the code is converted more easily. Kotlin was selected by the Android team as it is a statically-typed language that is very easy to read and write. It has a much simpler and shorter code than Java’s code for the same problem. Because the language is more human-readable, it is easier to debug. Compared to Java, Kotlin’s code is more concise and this helped to streamline the programming process significantly.
Both iOS and Android development teams worked iteratively to make mobile apps as robust as the web application and allow Accelo users to perform the following activities when being out of the office.