How to scale a monolithic MVP application without losing business?
The Client had already tested his MVP on real users and wanted to scale the product, however due to technological and business limitation he was unable to do it in-house. Acting as solution and process consultants as well as development experts, Boldare team guided the client through the transition, while keeping the app fully operational.
The Client approached Boldare with an MVP of their SaaS app. The product had been tested on real users and proven to be a valuable. However, it was unscalable, needed stabilizing, and required a few new key features. The Client were ready to take it to another level but at the same time they wanted the app to be fully operational during the development. Realising they were unable to expand their inhouse development capacity in time, the Client turned to Boldare for help. Acting as solution and process consultants, an Boldare team of developers, Scrum Master, designer and QA have helped the Client to achieve its business and technological goals. The improvements made to the SaaS app have helped the Client raise $3 million in investment and the B2B users of the product have reported a 10-fold growth thanks to their web apps. What’s more, the Client's development team has grown significantly throughout the collaboration and Boldare continues to collaborate with them on the app.
The Client is an online marketplace for housekeeping services. The company operates in UAE, the Kingdom of Saudi Arabia and Lebanon. Apart from serving homeowners in search of help, the company also offers a SaaS product, web and mobile app for commercial and residential cleaning companies.
The product allows B2B users to carry out bookings, scheduling, logistics routing, payment and accounting for their cleaning business - a fully-integrated solution to manage the client’s housekeeping staff, drivers, and dispatchers.
When the Client approached Boldare, their SaaS MVP had been tested on real users and responded well to the market needs. The CTO at Client's side knew that in order to take the app to the next level, they need to scale the app without losing revenue in the process. The transition needed to be seamless for SaaS users.
Problem: scaling a monolithic app and keeping the business running
The core of the app was built in the Yii framework and was not scalable. The CTO decided to move the app to a more scalable framework, and chose Symfony. The app needed stabilizing - every time a new functionality was deployed, it affected the rest of the app and caused problems for end users. The lack of stability was a threat to business and a major obstacle in growing the company and the SaaS product.
The product also needed new features critical to the further development of the business, such as selling cleaning packages, as requested by their B2B clients.
Business and operational challenges
During the development work, the product needed to be usable 24/7 to allow normal operations using the app.
The Client had a small development team in-house working on the SaaS product, which they wanted to scale but they knew that sourcing development talent in the UAE would be time-consuming and expensive. They needed a team to start working on the app as soon as possible. Outsourcing was their only viable option. However, the Client had had poor experiences with cheap software development outsourcing, mostly due to the quality of coding.
Finding the right partner
The Client also wanted to learn more about effective web development processes and code quality. Hence they wanted to find a partner who could help them improve their own work - a consulting company with rigorous in-house development processes and a solid track record of working in the Scrum framework.
The Client's CTO researched the software development companies specialising in Symfony via Clutch.co, a B2B research agency. They selected companies from countries with reasonable development prices: India, Pakistan, Hungary, Romania and Poland.
The selection criteria included a portfolio of clients, technical expertise, an experienced development team, and prompt availability.
When selecting Boldare, the CTO was impressed with the portfolio (including well-known brands such as Bla Bla Car). He also interviewed all members of the Boldare dev team selected for the project to assess their technical knowledge and looked into the company’s development processes and Scrum experience. The team chosen for for the product had also worked together in the past, which guaranteed they would reach a high performance level quickly. Finally, the Boldare team were available to start working on the SaaS app within 10 days.
A self-organizing development team with all the skills for the job
Boldare started the project with a team of six, including backend and frontend developers, a graphic designer and a Scrum Master. The team composition took into account the client's priorities as well as the upcoming product development.
The main goal was to extend the Client's in-house development team, joining forces and working together on one backlog.
The size of the Boldare team was flexible during development (from 5 to 15 members) adjusting to The Client’s needs and workload.
Scaling the app
The very first task for the team was to determine the quality of the current solution and identify the most dangerous flaws, those which might affect the implementation of the planned features.
The developers also enabled and fixed all legacy unit and functional tests, prepared continuous integration, moved the development environment to containers, and aligned their configuration with the production servers. In parallel, the team also worked on fixing the major bugs blocking the app’s end users.
In the meantime, Boldare’s graphic designer was able to redesign some crucial parts of the system to improve the UX.
After the initial stabilization of the application, the development team was ready to start implementing the first functionalities, still within the legacy codebase.
Simultaneously, the Boldare team began researching options for migrating the legacy solution to supported versions of programming languages and more up-to-date frameworks.
Bearing in mind the application had to remain up and running 24/7, the team decided to bootstrap the legacy code inside the new Symfony2 application and implement a "strangler pattern" - incrementally replacing the functionalities written in the legacy system with new, high quality implementations, covered by unit tests and compliant with current coding standards.
After replacing the core framework functionalities, the team were able to move the product to a cloud solution with a load balancer at the front and many instances of the application.
Moreover, to speed up the process of improving the quality and the performance, implementations of some of the crucial business processes were moved from the monolith application to microservices. The process is still ongoing and soon the team expects the new applications to be released on production.
From the start of the project, the team was working in the Scrum framework. With a Scrum Master on board, helping to the team to stick to the process, the Client's in-house team has soon started to follow it by the book.
Boldare also provided complimentary consulting support for the Client to help them strengthen their Scrum processes. Boldare’s Scrum Master held regular 1-to-1 sessions with the Client’s Product Owner, helping him to better understand the framework and use its full potential in product development.
The Boldare team became an extension of the the Client's development team and the Scrum framework helped with the team’s velocity. The whole team, based in Gliwice, Warsaw and Dubai, has attend joint retrospectives to smooth out any tensions, improve performance, and strengthen good practices.
The team communicated via Slack or quick Google Hangout calls. Jira provided transparency for the whole team, including the Product Owner and external stakeholders.
The Product Owner was on the client side and was very responsive to the team’s questions and feedback requests. The backlog was well prioritized and the team knew the product road map and the end goals. This allowed to significantly speed up the development process.
The Boldare team introduced the Client to quality code standards such as GitFlow and S.O.L.I.D. Boldare started off with proposing a code review of everything merged to a repository. The next step was to acquaint the Client with the CI process, enable tests that were commented out of the code, and enable static code analysis. In the end, the whole development team agreed to follow “The Boy Scout Rule” that every new change in code should have tests written to cover that change.
Through collaboration, the team managed to stabilize the app, introduce Continuous Integration, improve the UX, and shift the monolith application to microservices.
New features developed to date include “incidents” ( helping the operations team to report problem occurring during a cleaning session), “generating automatic invoices” (saving B2B users time and better managing relationships with customers) and “packages” (to sell cleaning services in multi-session packages, drastically increasing the revenue for the Clients’s B2B customers).
The improvements made to the product have helped the Client raise $3 million in a Series A investment and roll out the product to more markets in MENA.
The product successfully served clients throughout the development process, facilitating more than 500,000 bookings for over 2,000 maids and drivers.
Cleaning companies partnering with the Client and using the SaaS product report growing their business ten times thanks to the Client’s products.
Thanks to the collaboration and knowledge exchange with Boldare, the Client development team has a better understanding of the Scrum framework, standardized processes for development, and better code standards.
During the collaboration, the Client managed to grow its in-house development team but continues to collaborate with Boldare on further development of the product.
The team is currently working on new features, including a payment module to provide cleaning companies with a payment gateway solution.
Share this article: