Exploring the trends of your software team with Sigmetic

Simon Høiberg
ITNEXT
Published in
9 min readMay 11, 2020

--

In the world of modern software development, the expectations of the software products we use are getting increasingly higher, and the demands on the team’s software development process are increasing proportionally.

It is more important now than ever that we ship faster, continuously while securing a high standard of the code that goes into production.

As a consequence, it cannot come as a surprise that modern software development teams monitor and track a lot!
We have Datadog, Prometheus, Kibana, Elastic Search, Log Rocket, Track.js, and a series of other useful tools for monitoring the performance of our software.

But another incredibly important aspect of a software team is us! Humans. The engineers, managers, and product owners on the team.
If we really want to secure the quality of the products we ship, we need to start applying the same effort on the team’s development processes as we do on monitoring the performance of our software.

In a world where distributed teams and remote work is here to stay, it is also of crucial importance to keep the development cycle open, transparent, and allowing more close collaboration on the team.

Continuous improvement starts with the insight

Allow me to present: Sigmetic.io

In my career in software development, I’ve noticed how teams seem to struggle with the same recurring issues: Code reviews that are taking forever, PRs that cannot get merged due to missing dependencies from other branches, an almost grotesque meantime to restore a bug and a missing overview of the lead time it takes to ship a new feature.
Generally, a complete lack of understanding of why it takes forever to ship even small, supposedly simple new features and bugfixes.

These issues are exactly what inspired me to create Sigmetic.io
To gain insight into these processes. Because, essentially, that is the only way we can start improving!

A new productivity tool has been born

As if we didn’t have enough already, am I right? 😜

However, I sincerely believe that this tool can make an incredible difference for a lot of software teams.

Sigmetic.io is still in beta. But I will use this article to present the core features of the platform so far.

Sigmetic.io

Let’s start by logging in to the platform on app.sigmetic.io.
If you don’t have an account already, go and sign up.

Next, you need to link with your GitHub account.
At this moment, Sigmetic only integrates with GitHub, but it is of course in the pipeline, that Sigmetic will integrate with Jira and GitLab as well.

Sigmetic KPI Widgets

The building blocks that make up Sigmetic, are the various KPI Widgets that you find in the Widget Library.

You can use these widgets to compose your own dashboards exactly the way it makes sense to you and your team.

The first thing we will see after logging in is a dashboard.
When creating a user, Sigmetic will create a Sample Dashboard for us, including three widgets.

This may not look like a lot, but we can easily add new widgets to the dashboard by clicking ‘Add widgets’ in the top right corner.

And with just a couple of clicks, we now have a fully populated dashboard 😎

We can configure each individual widget by clicking on the little ‘gear’ icon in the top right corner of each widget.
This will prompt us with the settings for the widget.

And with a little bit of adding widgets and configuring, we will soon have a fully-fledged, functional dashboard full of useful data 🤩

Don’t worry, we’ll go through each individual widget, how they work, and how to configure them in a moment.

But first, let’s try to create a new dashboard from scratch.

Let’s go and click on the ‘Create dashboard’ button in the menu.

This will take us to a new page where we can create a new dashboard.

We will be guided through a flow of three steps.

  • A name for the dashboard
  • Choosing a dashboard plan
  • Configuring the dashboard plan

Let’s do it! 😎

The first thing we need to do is to put a name for our new dashboard.
It can be anything you want.

Next up, we need to choose a dashboard plan.

A dashboard plan defines how we provide data to the dashboard.

Currently, there are 3 dashboard plans to choose between, but the ‘Project’ plan is still under development, so we get to choose between ‘Repositories’ or ‘Organization’.

Repositories dashboard plan

Let’s say you have a project that has 3 repositories that are associated.
A repository for the front-end, one for the back-end, and one for some cloud functions.
In this case, the ‘Repositories’ dashboard plan would be an obvious choice.

With this plan, we can select a set of repositories that we will receive feedback from. We can then configure a widget to observe any of the repositories in the set, or we can choose to aggregate data from all of them.

Organization dashboard plan

The ‘Organization’ dashboard plan is equivalent to the ‘Repositories’ dashboard plan. The set of repositories simply become all repositories that are owned by that organization.

Let’s go ahead and choose the ‘Repositories’ plan, and we will be taken to the last step where we will configure the plan. In this case, we will choose which repositories to use.

To add repositories to the set, simply select the repository from the dropdown, and press the ‘Add repository’ button.

Do this for as many repositories you need for your new dashboard.

That’s it! Go ahead and press the ‘Create dashboard’ button on the left.
You will be taken to the ‘My Dashboards’ page, and your new dashboard should appear. Easy, right? ✌️

Alright, so now that we know how to create a dashboard and how to add widgets to it, let’s quickly go through the current widgets, and how they work.

Head over to the ‘Library’ page.

Here, we will be presented with all the available widgets.

They will be populated with demo-data so we can see how they look.

‘Issues’ and ‘Pull Requests’ widgets

The first two widgets we see are ‘Issues’ and ‘Pull Request’.
These widgets are status widgets and they provide an insight into the current status of a repository (or set of repositories).

More specifically, these widgets will show us the number of issues / pull requests that are currently present in our repository (or set of repositories).

When we configure these status widgets, we can choose a repository to get feedback from, or we can choose to aggregate data from all of the repositories in the set. If we have chosen more than one repository in our dashboard plan, we will see an ‘Aggregate’ toggle next to the repositories dropdown.

You can also choose to filter the data based on state: ‘Open’, ‘Closed’, or ‘All.
For the ‘Pull Requests’ widget, you can also choose to filter by status: ‘Mergeable’, ‘Blocked’, or ‘All.

For both widgets, we can filter by labels. The labels on the list are the labels that are available on your repository (or set of repositories).

‘Commit Trend’ widget

The next widget we can choose is the ‘Commit Trend’ widget.
This is a trend widget, and for these types of widgets, we have to specify a range in time that we want to observe. We do that by specifying a date range.

The ‘Commit Trend’ widget gives us an overview of the commits given in the specified range of time.
We can see the breakdown of widgets over the different repositories and branches, and we can see how much was committed on a day-by-day progression.
We also get some quick information about the total number of commits, which branch has received the most commits, and which committer who has committed the most.

As with the status widgets, we can choose a repository to get feedback from, or we can choose to aggregate data from all of the repositories.
With the trend widgets, we can also choose to compare the given range in time with the period prior to the one specified.
We do that by checking the ‘Compare to past’ checkbox.

‘Issue Burnup’ widget

The ‘Issue Burnup’ widget is also a trend widget, and the configuration is similar to the ‘Commit Trend’ widget.

With the ‘Issue Burnup’ widget we can see how the opening and closing of issues accumulate over time, which makes it easy to identify the progress in the given range in time.

‘Top Contributor’ widget

The last widget we can choose is the ‘Top Contributor’ widget.
These are activity widgets, and for these types of widgets, we need to specify a range in time, just as we did with the trend widgets.

The activity widgets tell us something about the activities on our repository (or set of repositories), and the ‘Top Contributor’ widgets can show us the top contributors on various parameters.

When configuring this widget, we notice that there is a pagination on the bottom of the settings window (the blue dots).
The first page of the settings will be similar to the ones of the trend widgets, but if we navigate to the second page, we will see that there are some additional settings here.

On this page, we can specify how many of the top-n contributors we want to see in the list, and we can specify which type of contributions we want to observe.

Currently supported are the contribution types:

  • Commits
  • Created Issues
  • Merged PRs
  • Reviews
  • Lines of code

More widgets coming up

This was all the widgets that are currently available in Widget Library, but many more widgets will come soon!

As mentioned, Sigmetic is currently in beta, and we are more than eager to listen to your feedback!

If you see that there is a specific widget that would be perfect for your team, or if you just have a general curiosity about this product, then now is the perfect time to influence Sigmetic and help to shape it into a better product!

You can sign up completely free of charge on sigmetic.io, and please — if you have any feedback, anything at all, don’t hesitate to reach out on Twitter.

That’s all for now!
I wish you a productive and efficient development cycle with a lot of quality code shipped into prod 😎✌️

--

--