One of the main goals we set for 2021 is to become more efficient as an agile team. And one of the challenges we addressed was how to minimize the decision-making bottleneck. To confront that we decided to take some actions that I'm listing below.
We split into teams
Over the last couple of years, our team almost doubled in size, and all decisions were still the responsibility of the CEO. Starting 2021, we decided to split our team into several small independent departments. Each department would handle a different area of the business autonomously: Recruitment, Sales, Marketing, Open Source and learning, Dev-tooling, and Operations.
Some tasks overlap and would require cooperation between teams. Recruitment and Sales, for example, would work together to ensure that there are enough development capacity to take on new projects. This is an area that we are still working to improve since sometimes teams get isolated and don't interact with each other.
Nevertheless, there still was a bottleneck. Since the teams may need to cover some costs (like marketing campaigns, job board articles, tools to improve internal operations), one issue that came-up was the approval and handling of these expenses. In general, the last decision was taken by the CEO, so each team would ask for approval after exposing the nature of the expense. This resulted in a problem to both the teams, that experienced downtimes until the approval for the expense was granted and to the CEO, that had to invest time to analyze it and make the decision.
Assigned independent budgets to each team
To solve this issue and enforce team independence, we decided to provide each team with their own budget, that they can manage according to their needs and consideration. They would need to reach out just in case they need to increase the budget permanently or make an extraordinary expense. This should both save the teams the waiting-for-approval downtime and also help the CEO focus on other relevant tasks.
The way we implemented this was by creating a budget spreadsheet for each team. Each spreadsheet would import the funds assigned to each team from another main spreadsheet managed by the Operations team. Then the teams would be able to track their expenses there. If a team registers an expense, it is subtracted from the total funds assigned. Then, the remaining amount is tracked at the Operations team main budget sheet. This way the Operations team can check the balance for each team and assign funds accordingly.
We are certain that more challenges are to come in the incoming months, but we are eager to find agile solutions that enforce the teams' autonomy. We will keep you posted about how we do it.