About the discussion count issues we've been having
Hi all. This is an update on all of the issues we've been having about discussion counts. There are a lot of open tickets that have been lingering for a long time and I now understand that this has been an increasing pain for support agents, CSMs, and especially customers.
This is a complex issue so I thought I would share our current strategy and status so that you are all aware of where developers are on this issue and hopefully give you good information that you can share with customers where you see fit.
The current problem with discussion counts
We store various counts and other aggregates in the database in order to show those numbers in the user interface, drive functionality, and improve user experience. These counts must be updated in a lot of different and complex ways. These calculations have never been very robust, but we tolerated the bugs because many of the counts would either fix themselves over time or we could fix counts manually via support tickets.
Over the years a few things happened as far as I can tell:
- The automatic count fixes slowly got removed in order for us to scale our sites to the largest communities.
- The manual recounts themselves did no scale to our largest communities.
- As we get more customers we also get more people using our application in new and different ways. In this case, many edge cases have started to become more common.
For these reasons I think our count tech debt has started to really escalate in severity.
The problem...
The problem we have is that there are a tonne of different counts and different ways they can be recalculated. That's all I'm going to say about that because we aren't about problems here at Vanilla. We are about solutions.
The plan
As with everything, we just need to break this problem up, prioritize those bits, and then pick away at them.
To this end we've identified the highest priority count issues. These occur when:
Mass deleting discussions.Fixed! ?- Mass moving discussions between categories.
- Merging discussions.
Our goal is to get these issues dealt with this month. Once those issues are done we then need to reassess the problem. We might want to pick off another pain point. We might want to optimize our count self healing. We might want to optimize our recounts and automate full site recalculation. There are lots of possibilities. The point of agile development is not committing to something that is likely to change in the future. We are well aware of our strategy though.
Testing
As we fix these count issues we are making sure that each fix has automated testing on it. This will ensure the issue will not regress.
Automated tests are something that usually only developers pay attention to, but I want to say that we won't compromise on writing tests for these issues. I would rather we complete these fixes slower with tests, then to rush through them without tests. This is the mindset we have to have to ensure the quality of our product improves. Without tests we will just cause more bugs than we fix. And the worst kind of bug is one that the customer already thought you fixed.
I'm hoping that as we add more tests then we all can gain more confidence in our product's quality and that will ultimately have a positive impact on other parts of our company too.