Bitbucket Analytics: Why, What and How to Use

October 4, 2022
#Reporting#Analytics#Bitbucket
7 min

It’s no secret that the business world has adapted to making decisions based on data. We analyze conversion and churn rates, track the number of active users and average revenue. We know how much we spend on advertising and how it correlates with web traffic growth.

But what about software development? In contrast to sales and marketing, the world of software engineering is less familiar with the same approaches, and all project development data remains hidden within repository management tools like Github, Gitlab, Bitbucket. It is widespread for software development decisions to be based on theory, instincts, experiments, or gut feelings. Sometimes they are backed up by a few numbers on commits or pull requests, but it is always tedious and time-consuming. Besides, it sometimes causes data errors due to manual work.

A combination of all of these factors can negatively impact the development of any product, leading to:

  • Hidden inefficiencies and costs as invisible bottlenecks hamper team performance and productivity
  • Inability to determine if everyone is on the right track due to lack of transparency and visibility in projects and teams
  • Investing time in manual work instead of new ideas, core tasks, or favorite activities
  • Slow development velocity, missed deadlines, and disappointed stakeholders

And it is up to everyone to decide how long this list should continue.

To simplify work and make processes of software development more transparent many organizations rely on a data-driven approach and comprehensive analytics of commits and pull requests.


64% of companies mark that improved efficiency and productivity as the top benefit of data analytics, while 56% say about faster, more effective decision-making

Source: Finance Online


What is a data-driven approach in software engineering?

Data-driven development means using and analyzing commits and pull request data as a primary source of information for decision-making. In this approach, engineering processes are viewed from a transparent, accurate, and unbiased perspective by defining and using metrics such as KPIs or OKRs. It lets everyone know where the business is moving and how personal work contributes to its success.

However, despite focusing on raw numbers and statistics, data-driven development also relies on people. It is not enough to count lines of code, the number of commits and pull requests, or to determine how long it takes to resolve pull requests. To be successful, metrics-based approaches need individuals and teams to understand the data, analyze it, and use it for continuous learning and improvement.

What are the pros of using data in software development management?

1) Processes transparency and optimization

Collecting and analyzing commits and pull request data on an ongoing basis gives engineering managers a clear view of what is going on in projects and within their teams. It helps to explore similar patterns and find ways to improve them.

2) Predictability of development and time-to-market

Graphs and reports empower teams to find hidden inefficiencies, resolve everyday challenges, and speed up the development process without affecting code quality. It helps reduce time-to-market and deliver on promises.

3) Informed decision-making based on well-rounded insights

Analyzing real-time data with past patterns and getting deeper insights across project development can confirm a new strategy’s success or force you to revisit your choices.

4) Keeping everyone on the same page

Providing greater visibility into in-progress work and enabling developers to see the impact of their efforts on overall project success ensures the commitment of team members as well as keeps them motivated and moving in the right direction.

How to implement a data-driven approach in Bitbucket?

Bitbucket is a real storehouse of information on everything happening inside engineering processes. Unlocking it is all that is required to identify bottlenecks, understand why things go wrong, and find solutions. Unfortunately, Bitbucket does not provide any functionality that allows getting a quick overview of what is happening on projects and within teams.

Here come data-driven apps like Awesome Graphs for Bitbucket that automatically pull data from Git repositories and empower data-driven software management.

Awesome Graphs for Bitbucket helps engineering managers to monitor and measure the activity of the projects and developers from the whole Bitbucket by transforming invisible development activities into easy-to-understand insights and reports. Apart from this, the app:

  • seamlessly integrates into Bitbucket and displays data on the client’s side. No need to expose your source code outside Bitbucket or worry about security issues
  • gives a lot of out-of-the-box reports without requiring complex configuration and additional analytics knowledge
  • exports data to a CSV file or via REST API to create custom graphs or dashboards and merge them with the data from other apps

When using Awesome Graphs for Bitbucket, project planning becomes more accurate since it provides an overview of the project’s dynamics and helps to identify bottlenecks that hold teams back. Apart from this, it is possible to track how your team’s productivity increases compared to the previous period, view the engineering contribution for each repository and project, or recognize hidden talents.

Start a 30-day free trial to discover analytics’s benefits to your projects and teams.

 

Get Even Awesomer Graphs for Your Bitbucket Cloud

September 6, 2022
#News#Bitbucket
4 min

In Bitbucket Cloud, behavior of apps is defined by the app context. There are two app contexts: personal and workspace.

  • With the personal context, you can use the app in all repositories to which you have access, but other users can’t use the app installed by you.
  • With the workspace context, you can use the app only in repositories in a specific workspace the app was installed in, so all users who have access to the workspace can use the app without installing it.

It’s time to move to something new

At the moment, the Awesome Graphs for Bitbucket Cloud has separate versions of the app for each of the contexts.

We’ve been working hard on the development of both versions, but have decided to focus solely on the workspace context version, as it provides us with more opportunities to make an overall better app for the users.

It’s a bit different, but much better

The new version is installed to a particular workspace and available to everyone who’s got access to it.

The transition of the app context allowed us to extend the app’s capabilities and add new features, improve security and an overall experience.

Just to name a few, here’s what’s already in the new version:

  • Graphs and Reports are available for whole workspaces as well as individual repos
  • Lines of code statistics in addition to commits stats
  • New approach to the rate limits resulting in better app stability
  • Bug fixes and minor improvements here and there

Should you do anything at all?

If you’re not sure, which version of the app you’ve been using and if you need to do anything at all, you can check it the Workspace settings → Manage Installed apps:

  • The old one has the old three-color logo and the installation context is personal. If that’s what you have, then read further, and we’ll show you what to do.
  • If you have an orange and white logo app with workspace context, then you are using “the right” version already — good for you!

manage installed Awesome Graphs for Bitbucket

How to get the “right one”?

Rather than going through a complex migration scheme, you just need to install the new app to your workspace — one click, and you’re all set.

P.S. Don’t forget to uninstall the old one. (smile)

What’ll happen to the old version?

The personal context version of the app will be deprecated and no longer maintained after November 1, 2022, so hurry up and install the new app to your workspace now!

In case you need assistance or have any questions, please feel free to contact us.

Analyze How Code Review is Going in Bitbucket Data Center

September 27, 2021
#Analytics#How To#Bitbucket
9 min

Awesome Graphs is one of our most popular apps. It’s a solution that extends Bitbucket, a platform that teams use to host Git repositories and collaborate on code.

Awesome Graphs helps engineering leaders and software teams improve their own processes and deliver products faster by transforming invisible development activities into easy-to-understand insights and reports.

One of the keys focuses of the app is the code review processes analytics. We would like to tell you which features support this use case and how you can benefit from the app. Keep reading if you are interested in:

  • Seeing how actively your team members review code
  • Analyzing what developers may need to improve their work patterns and who’s doing a great job
  • Learning what reviewers are most active and diligent
  • Knowing the average time taken to resolve pull requests.

Code review analysis

code review analysis in bitbucket

The Contributions Report analyzes activity in pull requests (tasks, comments, needs work/approved/declined statuses). It helps you understand:

  • What developers create high-quality code and who might need to improve their approach to work. E.g. when an engineer has fewer taskscomments, and needs work flags in their pull requests, it suggests his work is approved as it is or with minor changes and he creates code of high quality.
  • What reviewers are thorough when they review the work of developers. E.g. diligent reviewers come up with suggestions and improvements, so they have more tasks and comments than others.
  • How the dynamics of code review changes over time. E.g. you can see if the number of pull requests with Needs work flags is getting bigger or smaller if the number of tasks in pull requests is increasing or decreasing over time.

Learn more

The average time taken to resolve pull requests

pull requests resolution time report in bitbucket

Another report, Resolution Time Report, shows the average time taken to resolve pull requests. This is helpful to capture trends in resolution time. It displays resolution times of merged and declined pull requests separately. With this report you can:

  • Notice spikes in resolution time and then dive in to see what went wrong
  • See if an average resolution time is high for a long period of time – it can be a signal to look into your code review process and determine what causes delays
  • Monitor how changes in your processes affect the speed of code review.

Learn more

Knowledge sharing indicators

reviewers of pull requests report in bitbucket

The Pie Chart Report is a handy way to check if all developers in your team are involved in the code review. This report shows the breakdown of pull requests by different statistics types.

Grouped by reviewer, the Pie Chart Report shows the following:

  • How many pull requests each person reviewed. These metrics help understand how much everyone contributes to the project.
  • Whether all people review code or there are one or two who are doing all job. This is an indicator of poor knowledge sharing.
  • Who is too busy reviewing all pull requests of their team. These people can become a bottleneck that slows the delivery time, because they’re not available for immediate review.

Learn more

Pull requests with a too long or too short resolution time

pull requests resolution time report in bitbucket

The Resolution Time Distribution Report visualizes pull requests grouped by the time taken to merge or decline them and gives an idea of the most frequent resolution times on your project. Using this report. you can easily:

  • find pull requests with the longest resolution time to check the reasons for the delay
  • see pull requests with the shortest time to resolve them to investigate whether they were checked as appropriate
  • predict the resolution time for the future pull requests.

Learn more

Exporting pull requests for the future processing

With Awesome Graphs, the historical data can be exported to a CSV file right on the People page.

exporting pull requests from bitbucket

As a result of the exporting, you receive the CSV file with the list of pull requests (alternatively, the list of commits) with their details about the author, reviewers, state, the date they were created and last updated. The files can be processed in Excel or integrated with analytics tools like Tableau, Power BI, etc. to create custom graphs and dashboards and merge with the data from other apps.

Learn more

What other reports do you need?

Awesome Graphs already has a wide range of graphs and reports that help you answer various questions about project development and the work of your team in Bitbucket. We are open to your feedback and appreciate hearing about what you need. So if you have a problem that you think Awesome Graphs can help you with, contact us – we actually listen.

Try Awesome Graphs for free

 

Related posts

Announcing New Stiltsoft Partner Program

March 22, 2021
#News
2 min

At Stiltsoft, we recognize how important both our partners and customers are, so we decided to launch our new Partner Program that will affect only the Awesome Graphs for Bitbucket app.

We are building a new Partner Program to provide you with comprehensive training materials and resources, free app licenses, promo codes, and more. If you apply, you save time and effort of your sales team with the help of our training course and demos on demand.

We want to inform you that Awesome Graphs for Bitbucket has Standard Atlassian Partner Discount until March 21st, 2021. From March 22nd, a 20% discount will only be available for Stiltsoft Partners.

Other Stiltsoft apps participate in the Standard Discount scheme for Atlassian Marketplace Products.

To get a 20% discount, you will need to become our partner. Moreover, you will get other partnership perks:

  • Free licenses
  • Demo on demand
  • Promo codes
  • Enablement materials
  • App training
  • Co-marketing activities

To join, simply drop an email at partner@stiltsoft.com, and we will get you set up as soon as possible. For more details, please visit our website.

We look forward to continued collaboration!

Related posts

    Top 5 Reports from Jira and Bitbucket to Get the Most of Your Sprint Retrospective

    August 25, 2020
    #Jira#Bitbucket#How To#Confluence Tutorial#Reporting#Confluence
    11 min

    In the previous post How Project Managers and Scrum Masters Use Confluence for Project Monitoring, we showed how management professionals use Confluence to build a dashboard based on data from Jira and Bitbucket for project monitoring. In the present article, we move on to the second part of the dashboard. It contains reports showing what went well during the sprint and what needs to be worked on. The dashboard provides you with the visualized data for analysis during the sprint retrospective when the team can inspect itself and plan the improvements to be enacted in the following sprints. 

    Analyze what’s been done: Pull Request Activities charts

    The Pull Request Activities chart shows the number of pull requests by state and comes in two variants: pull requests grouped by a repository or by a user. 

    By looking at these charts, you can identify if there were any problems in teams working in the same repos, see how much each person managed to do, and use these insights in future sprint planning. For example, if you see there were a lot of declined pull requests during the sprint, there could be some problems in the teams’ arrangements, so this is a perfect occasion to discuss and resolve them.

    The Pull Request Activities chart shows the number of open, merged, and declined pull requests in a particular repository.

    The Pull Request Activities chart shows the number of open, merged, and declined pull requests in a particular repository.

    Grouped like this, the Pull Request Activities chart shows the number of pull requests made by a particular user around the whole project.

    One more point to consider is the number of open pull requests at the end of the sprint — you need to count them in if you want to predict whether you’ll be able to complete work on time in the next sprint.

    Follow the instructions to build these charts.

    Learn, plan and improve: Pull Requests Gantt chart

    The following chart can give your team an understanding of how long the pull requests take to resolve. It can help you predict using historical Git data if your team can finish the tasks by the end of the sprint.

    The Pull Requests Gantt chart helps you see the tendencies in pull request resolution time for each user. 

    To make realistic predictions, you need to look at the average age of PRs created by the author. If a developer is junior or new to a particular repository or project, they tend to make more mistakes, or they are subjected to more thorough reviews and testing, which potentially delays their PRs, which you need to consider in your planning. Your ideal models will be the users with sets of “colorful bricks” of almost the same size, as they will probably tend to follow the accepted practice.

    One more thing that you can pay attention to is the case when a pull request or a few are closed by the very end of the sprint. It could be a sign that the author was hurrying to meet the deadline, which might be the result of review delays or just carelessness, so keep that in mind.

    Check out the guide to learn how to build this chart.

    Find out who did what: Activity graph

    Activity Graph is made to help you know what everybody was doing during the sprint in terms of commits, pull requests, Jira issues, and meetings.

    The Activity graph helps you visually compare the distribution of the workload.

    The Activity graph helps you visually compare the distribution of the workload.

    The idea behind it is that predictions based on engineering metrics are great, but even a few calls or meetings can slow down the processes. In research by Harvard Business Review, 65% of senior managers said that meetings keep their teams from completing their work. That’s why you need to look at who does what, identify bottlenecks, and manage the processes so that there are no obstacles nor reasons for delays. You can determine who is spreading themselves too thin and find those who are not actively involved. It’s evident that if you expect active development from your engineers and they are stuck in a series of meetings, it won’t work. 

    Using these metrics, you can understand why the team is moving with such speed and how the changes in the processes affect the team dynamics.

    Learn how to build Radar (Spider) chart type.

    Count it up: Velocity graph

    And the last, but not the least thing when we look back on the finished iteration, is calculating velocity. 

    The Velocity graph shows the ratio of story points committed vs. story points completed during the sprint.The Velocity graph shows the ratio of story points committed vs. story points completed during the sprint.

    When we plan a new sprint, we should consider the information about story points performance in the previous sprints. This way, we can observe the trends, make some conclusions, and change the planning approach if needed. For example, we can calculate the average number of story points completed within one sprint (velocity) and stick to this value in the following sprints. And after that, as more data about finished sprints is accumulated, you can plan much more accurately.

    See a full guide on how to work with this graph.

    Put it all together

    The graphs and charts illustrated in this and the previous article make up the multifunctional dashboard for project management, aimed to give you reporting insights based on data from Jira and Bitbucket, which we presented in the Project Management Dashboards in Confluence webinar.

    If you would like to build similar charts and graphs on your own, try the Table Filter and Charts for Confluence and Awesome Graphs for Bitbucket apps for free.

    How Project Managers and Scrum Masters Use Confluence for Project Monitoring

    July 28, 2020
    #How To#Confluence Tutorial#Confluence#Jira#Reporting#Analytics#Bitbucket
    10 min

    In the Project Management Dashboards in Confluence webinar, we talked about the tools that project managers and scrum masters use, and that help them make data-driven decisions based on the data from Jira and Bitbucket. We showed how you could enhance Confluence’s default functionality to create easy-to-understand reports for management and stakeholders with all the technical and business metrics visualized on Confluence pages.

    Here we bring this information back together and provide you with the guides on how to build a dashboard where you can ensure that projects remain on track and see the actual progress compared to the project objectives stated in the plans.

    Visualize the backlog: open vs resolved issues graph

    As new tasks, features, and bugs are added continuously during the project implementation, the visualization of the dynamics in the project backlog helps spot the bottlenecks in the processes timely. Using it, you’ll be able to find inefficiencies and support the teams, whose backlogs contain more work to do than they could possibly perform.

    The Created vs Resolved Issues report shows the difference between the number of created and resolved issues over a given period and whether the overall backlog is moving towards resolution.

    Open vs Resolved Issues graph

    This chart is built using the Jira Issues macro, which pulls the data from Jira according to a JQL or a link to a filter. 

    Check out a full guide on how to build the graph.

    See the advancement in the project: Gantt chart

    Gantt chart is a tool that visualizes the development process, helps to schedule your work and track the progress. In a nutshell, it is a timeline that’s used to illustrate how the project will run. You can see:

    • what tasks are included in a project or a sprint
    • start and end dates of a project or a sprint
    • tasks duration — project schedule, i.e., start and end dates
    • who works on a particular task.
    Gantt chart

    Using this chart, you can visualize all the tasks and phases of the project to optimize task planning and distribution, so you can predict when you will deliver the product. By visualizing the dependencies and parallel processes, you’ll also be able to find critical points, such as when the tasks depending on each other are planned at the same time slot.

    We have prepared detailed instructions on how to build this kind of chart and recommend you look through the 5 Tips to Become a Gantt Chart Expert Using Atlassian Confluence article to get the most out of it.

    Track the sprint progress: burndown chart

    A burndown chart is often used in Agile project management to visualize the amount of work completed during the sprint compared to the total work, so a team can keep track of the time remaining to complete that work.

    Burndown chart

    Based on the data exported from Jira, this chart displays the total amount of work in story points that a team should complete during the sprint. An orange line is the amount of work left. A purple line displays how the sprint should run in the ideal world where the efforts are distributed equally. 

    The tasks burn down as they are marked as completed and on the last day of a sprint, no significant tasks should remain. If you see that your teams tend to fail to complete the tasks in time, you need to investigate the reasons for this issue and reduce the workload.

    Learn how to build this chart.

    Make the development process transparent: engineering metrics

    While monitoring the progress of the project, it’s necessary to see the actual change over time. Here we offer you the chart that will show the dynamics of contributions in terms of commits made by users over the chosen period. You can build a similar chart showing the pull requests dynamics and other charts based on the data from Bitbucket by feeding in the corresponding CSV file, which you can get via the Awesome Graphs for Bitbucket’s Export to CSV feature.

    Using these, you’ll be able to see the trends in pull requests and commits and find out if your team is committing more code now than before.

    Commits Dynamics chart

    During the daily meetings, teams try to spot the difficulties that appear in the processes, and these charts can bring more transparency to them. For example, if you keep your tasks between a day or two and see that one of the developers hasn’t committed in a few days, maybe it’s time to talk and find out what difficulties they might have.

    Follow the guide to build these charts.

    There’s more coming

    The graphs and charts described in this article will help you gain more visibility into the current state of the processes and make project monitoring easier. Using the Awesome Graphs for Bitbucket app as a data provider, and the Table Filter and Charts for Confluence app to aggregate and visualize the data from Bitbucket and Jira, you will get the functionality comparable to BI platforms in Confluence.

    In the next article in the series, we’ll tell you how to build the dashboard, which can be used by any agile team for a sprint retrospective.

    Watch the webinar’s recording on our YouTube channel while waiting for our next post and tell us what you think in the comment section.