Everything you need to know about setting up your Investment Balance and configuring your organization's categories.
- How it Works
- Configuring your Investment Categories
- Common Problems with Balancing Engineering Investment
There's a lot going on all the time in most organizations. But are you spending your time on things that matter? Swarmia's Investment Balance helps you find out.
How it Works
The Investment Balance shows activity on pull requests and issues grouped by the configured investment categories and includes both completed issues and merged pull requests. Over a longer period of time, we've seen that these activities are a reliable proxy for understanding development time.
Activities shown in the report are based on the team members
If your team members have contributed towards issues belonging to other teams, those issues will also show up. Think of this as not a bug, but a feature: the team is investing its time somewhere, and the report shows you where that investment goes, even if it's not for the things you might've expected.
How work is grouped by category
We start by looking at all contributions by all team members of the selected team, then determine the investment category based on the rules you've set up.
Then work is grouped by investment category (these categories are mutually exclusive and collectively exhaustive).
If multiple tasks belong to a bigger project, it's possible to have different investment categories assigned to each task and the project as a whole. In this case, we'll show each task in its respective category of work.
Each issue or pull request can link to only one category. All work not linked to a category will show up as uncategorized.
In other words, categories are mutually exclusive and collectively exhaustive.
Determining the category
When an issue is categorized, all its uncategorized child issues are assigned the same category by default. Furthermore, these children's child issues also inherit the category by default, and so forth.
For instance, if we have the following issue hierarchy with issues uncategorized, with the exception of one bug:
If the top epic would then be categorized as New Things, all the uncategorized children of the epic would also get categorized as New Things. Bug 1 (and any children it might have) would not be automatically categorized as New Things.
Automated filters can be configured in a way that makes an issue match multiple categories. In this case, we'll assign it the first category that matches. You can re-order categories in settings to influence that.
If there are no investment category matches of any kind, the issue is considered uncategorized.
The logic for determining pull request category is the same:
- Linking PRs to categories takes precedence over everything else.
- If the PR is linked to an issue that's categorized, the PR is assigned the same category.
- If the PR matches one or more investment category filters, it will be linked to the first matching category.
- If there are no category matches, it will show up as uncategorized.
Configuring your Investment Categories
You will configure a set of Investment Categories for you organization in the Organizational Settings. There are different ways to think of investment categories. Some of our customers use this framework by Dropbox for balancing engineering investments. Other approaches to grouping work include:
- Company initiatives
- Product focus areas
- R&D Capitalization / R&D expenditure
- Releases, or a company level roadmap (e.g. "Q3")
Setting up your filters
Using our automated filters, you can assign work to categories based on certain criteria.
We support a variety of filter options for both Pull Request data and Issue data.
Your filter might be as simple as this:
But reality is often a bit messier. In a large organization, each team might have their own little quirks in how they track their work. For instance, let's say most teams use Epics and Stories for Roadmap work... but some also use specific labels for that purpose, and one team stubbornly wants to use their custom Jira issue type.
Categorizing work items one by one
In addition to being able to categorize work items with automated filters, it is possible to directly choose the category of an issue or pull request. To do that, select an individual work item in one of the many views in Swarmia, then click on Categorize in the popup if the issue is uncategorized or the issue type dropdown if it is currently categorized, then select the desired category.
Common problems with Balancing Engineering Investment
When organizations mature and grow, more things start to compete for teams' attention. This can result in teams spreading their focus too thin, and not being able to spend enough time on their top priorities.
It's easy to imagine the difference between a team spending 20% of their time towards a goal versus one that spends 40%: the time to deliver a solution at least doubles. This isn't good news for the team or the organization – but there's a massive opportunity on the flip side: teams who can improve roadmap focus can drastically improve their impact.
Here are some questions Investment Balance can help you answer:
- Are you spending less than 50% of your time on high priorities? Little time spent on the most important category might mean your team has too many things to focus on, or that it's not clear how to progress further with the important projects.
- Is a majority of your time going to bug fixing and maintenance work? An increasing trend in the amount of bug fixing and maintenance work can indicate a problem with the team health. This might require an action such as investing into infrastructure, or addressing some of the technical debt the team has accrued.
- Are you spending an increasing amount of time with ad hoc tasks? When organizations and systems grow, complexity grows with them. It's sometimes easy to get overwhelmed by the amount of goals, opportunities and the difficulty of getting complex problems solved. This can cause teams and individuals to fall back to simple, reactive tasks which are easy to complete, but time spent on them might not maximize the impact of the team.
- Do you have a lot of unlinked work? Drawing good conclusions without transparency to a major share of the work can be difficult. Creating routines to link issues and pull requests, and categorizing ad hoc work, pays off and enables the team to make well-informed decisions to improve their performance.
- Look out for decreasing trends in the most important work. This increases your odds of catching a problem early and correcting course before it becomes a real problem.