Placker | Accelerating SaaS growth via architecture refactor

Software supplier

clogo.svg

Poland

Product

placker-logo.svg

Website

Placker is a project management SaaS from the Netherlands. A comprehensive tool for managing work across teams and projects. Used globally by 130k users including companies like Accenture and Expedia.

Technology Stack

  • PHP
  • Symfony
  • MySQL
  • RabbitMQ
  • Redis
  • JavaScript
  • AngularJS
  • RxJS
  • Docker
  • DigitalOcean
  • DataDog
  • GitLab CI/CD
  • PHPUnit
  • Cypress
  • PHPStan
  • Sentry

Challenge

Placker was already a mature SaaS product used by thousands of teams in over 40 countries around the world. Users love it because of the large feature set and tremendous flexibility. When we first saw it, we were impressed as well. Almost any option you imagine for a project/task management software - Placker has it!

An impressive number of features, introduced in the first few years, increased code complexity and added undesirable dependencies. This made the development of further features difficult and time-consuming. It also increased the effort required for maintenance and raised the entry threshold for new developers. Placker's architecture enabled a quick integration with Trello but at the same time closed it for further integrations.

Our challenge was to introduce an agile process of architecture refactoring to restore the product growth and make it extremely open to extending the feature and further integrations.

Goals

  • Make SaaS open for multiple integrations
  • Reduce time-to-market for new features
  • Make the platform easier to maintain

Solution

  • Maintaining a high speed of introducing new features and integrations required to implement a flexible, and easily extendible architecture. We also did not want to rewrite the application from scratch as the existing codebase was relatively new and complex. We have started with the introduction of an event-based architecture, that allowed us to decouple different parts of the codebase one by one.
  • After having the initial message-driven architecture in place, we started to extend it by introducing a concept we called extensions. Extensions react to changes that happened in the system and can add reactions to that changes. Example: Trello extension listens for card changes and if it knows the card is also on Trello - it updates Trello with the new state.
  • Thanks to the message-driven architecture we were able to introduce more improvements: queues and processing computing heavy changes asynchronously, monitoring of the changes (metrics with change types, customers involved etc) and adding new integrations (Google Calendar, Zapier, Slack).
  • We have introduced an approach that is based on releasing features soon, gathering feedback from ourselves and initial users (features available as a beta version), and then, based on the feedback, we released a second, upgraded version to all users.

Outcomes

Our agile process of architecture refactoring resulted in a steady, 4% yearly decrease in software complexity. New architecture was introduced step by step, making Placker easier to maintain, develop and integrate with every iteration. After 18 months we managed to reduce the maintenance effort and development time for new features by 40%.

michalkurzeja.jpg

worked on this project

Michał

CTO

21-4-1.png 21-4-2.png 21-4-3.png 21-4-4.png 21-4-5.png

Do you want to kickstart your software project? Use our free Kickstarter service

right-blue.svg

Free and independent software advise

right-blue.svg

Global network of 30.400+ software development companies

right-blue.svg

Our consultants possess expertise in over 4.800+ software projects

© 2019 - 2024 Your Software Supplier. All Rights Reserved.