When developing our collaboration tool, Favro, we have two teams with developers based in Sweden, Vietnam and Ukraine. The distributed nature of our teams represents a great reason for using a collaboration app like Favro — put simply, we need something real-time, always on and always up to date to minimise communication loss and make sure everyone is in sync regardless of time zone.
We’re biased, naturally, but we love using Favro. However, we also love programming, designing and testing even more. Time spent in Favro manually dragging and updating cards is time spent away from our true passions. This is where Favro’s apps and integrations enter the picture.
So now let’s take a look at the Favro Core App team board:
Here’s a breakdown of the columns:
As you are probably thinking, this process is extremely simple and could easily be handled by the team without the use of any apps or integrations. However, the whole experience for the team can be heavily optimised and improved by turning on some apps and integrations. So here’s the full list we use and why:
The defined workflow app allows us to ensure cards are only created in the Selected column and then pass through each gate in the process. Since QA are so integral to our process when it comes to determining if a feature is fit for public consumption, we also apply rules through the defined workflows app to ensure that only QA can pull cards into TEST and so on.
The Slack integration posts whenever cards are moved into the Done column, which notifies our QA team when work is ready to be pulled into TEST.
Previously our process for commiting changes to our Git repository consisted of these six steps:
Whilst these steps are fine and generally worked well, they would often fail because of the need for a lot of human input. Sometimes the team boards wouldn’t reflect reality because someone would commit code changes without remembering to move a card to Done. Now with the Git source control integrations, we can streamline this process into just four steps:
Pretty neat. Once you pick up a card from Selected and move it to Doing, you can focus solely on development until you need to take the next card to work on, safe in the knowledge that the card will automatically travel through the process. In addition, given the distributed nature of our teams, we benefit from being able to collaborate and review code from developers on different time zones without needing to manually track down which card to move to Done to notify QA that code has hit master that is ready for testing.
With all of the automation tricks we employ above, we could easily get ourselves into a position where developers start taking on work before their existing cards have gone through review. This is where we enable the WIP limits app to set a strict WIP limit of one card per developer in the Ready for Review column. We value finishing stories before taking on new ones.
By taking advantage of Favro’s apps and integrations, we are able to automate and streamline a number of previously manual steps in our development processes. This help us improve the accuracy of the data in our planning tool of choice and reinforces the benefits of using it in the first place — improved collaboration and communication between our distributed developers, which in turn increases the velocity at which we can continously deliver improvements to our users.
I hope this post has provided an interesting insight into how we develop Favro.