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!
Impressive number of features, introduced in a first few years, increased code complexity and added undesirable dependencies. This made 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 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.
- 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), 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 beta version), and then, based on the feedback, release a second, upgraded version to all users.
"Placker would not be in the good shape it is in today without Accesto. They have been critical to the client's continuous growth and success. In addition to technical expertise, their communication and reliability are both top-notch. Their team takes a pragmatic approach to problem-solving."
Our agile process of architecture refactoring resulted in a steady, 24% 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%.
- GitLab CI/CD