Poland
From legacy web application to highly scalable SaaS in 2 years
Software supplier
Product
Website
Story of a branch leader, successful SaaS, which growth was blocked by technical debt. Nobody is proud of his past debts, so we won’t share the project name here, but it is all gone now and we see the product flourish.
Technology Stack
- Legacy PHP
- Wordpress
- New PHP
- Symfony
- MySQL
- Legacy JavaScript
- jQuery
- New Typescript
- Angular
- Docker
- GitLab CI/CD
- PHPUnit
- PHPStan
- Sentry
Challenge
After over 8 years in the market, it was a mature and profitable digital product that struggled with aging software. The company Product Manager reached us at a moment when their software became difficult to maintain and time-to-market for new features increased to an unacceptable level.
Also scaling it to new markets was almost impossible due to the significant costs of such a project escalated by technical debt.
Goals
- Decrease time-to-market for new features
- Make the SaaS product highly scalable
- Deal with the legacy code & technical debt
- Significantly reduce maintenance costs
Solution
- From a technical point of view, the easiest way to get rid of technical debt is to start from scratch and create completely new software. But we know too many stories of companies that failed while following this shortcut that we strongly discourage taking. To help them we used an approach that took into account both the importance of existing platform improvement and the urge to deliver new features to end users. Thanks to our unique development process we were able to focus on both needs at the same time.
- After addressing the most urgent problems in the first few weeks (like security issues and performance blockers) we started our parallel work. We were able to slowly rewrite the platform part by part in small chunks while delivering new features to end users at the same time - without having to wait for a full rewrite.
- All of that was supported by the automation of important development processes that helped to reduce the time-to-market, development time, cost and risk.
Outcomes
We managed to fix all the important bugs, performance defects and potential security issues while working on releasing new features at the same time. As a result, we cut the release time for new features by almost 90% and the cost of new development by 70%. Moreover, their technical debt started to decrease by approx. 35% each year and the number of problems reported by the end users fell down significantly.
Our approach gave the product manager full flexibility in deciding how much he wanted to invest in removing the technical debt and how much in the delivery of new features.
After 2 years we managed to reduce technical debt in core elements of the platform to a minimum, which made it highly scalable. At the same time lots of new features were introduced, delivering real value to end users.
worked on this project
Piotr
CEO
No image available