How to strengthen your development team with IBM DevOps Insights

Share this post:

Complex systems require developers to work together and problem-solve together. To achieve this goal, developers must be able to easily read, understand, edit, or rewrite each others code. The introduction to this series “How to strengthen your dev team with insights on social coding” explained how today’s DevOps practices rely heavily on social coding. In this post, I’ll explain in more detail how social coding interactions affect your development team dynamic and how your team can achieve greater output and respond faster by adapting your development processes based on these insights. IBM DevOps Insights can help answer questions like:

  • Are team members comfortable changing each others’ code?
  • Are development responsibilities distributed equitably?
  • Who would be a good candidate mentor? Who could benefit from mentoring?
  • Are there signs that the project is at risk of being abandoned in the future?

With the help of the Social Coding graph in IBM Cloud DevOps Insights, you can assess the dynamics of your software engineering team.

To set it up, follow the instructions in Create a toolchain from the Developer Insights and Team Dynamics with GitHub and JIRA template. After your toolchain is configured, DevOps Insights mines and analyzes your project. To track the progress of the mining and analysis, from your toolchain, click DevOps Insights and click Developer Insights to see its status as shown below:

Social Coding graph

With the setup complete, let’s look at some typical Social Coding graphs.

Exploring the Social Coding graph

After the mining is completed, expand Team Dynamics and click Social Coding to view the Social Coding graph. The graph below shows how well team members understand each others code and how comfortable they are with changing each others code:

Social Coding graph - understanding and comfort with each others code

The layout of the graph indicates the most central developers. In this example, Tammi is the most central developer. Developers on the outside of the graph are usually new team members. Those developers become more central as they interact with more team members.

You can see information about social coding during a specific time period by selecting a period from the time menu.

Select time period for the data

Each developer on the team is represented as a node on the graph. The size of the node correlates with the amount of code that the developer changed through social coding. The pie chart in the node captures the types of interactions with other developers.

Juana's social coding pie chart

Blue indicates how many lines of code a contributor added as a portion of the total number of lines that the contributor touched. Red indicates how many lines of code a contributor removed. The nodes are scaled, so the size differences are larger than they appear.

The lines between developers represent social coding interactions between those developers. The thickness of a line represents how much code those developers edited together. If a line returns to a developer, the thickness of that line indicates how much that developer edited his or her own code.

Line thickness indicates cooperation

You can click developers to explore their interactions and view their social coding neighborhoods. In this example, look at Louise:

Louise's social coding stats

The nodes and lines are filtered to include only Louise’s social coding interactions. To return to the full graph, click white space anywhere on the graph.

Recognizing a well-connected vs. poorly connected team

On an outstanding social coding team, the developers work together. In the following example, the excerpted graph on the left shows a connected social coding team. Contrast that team with one that has a “heroic programmer”, who for some reason does most of the work. In the excerpted graph on the right, Zoe is a heroic programmer.

Connected social coding team vs. splintered team

Among the other developers, few social coding interactions are occurring. Most of the interactions are Zoe changing her own code. If Zoe moves to another project, this project will suffer.

It’s important and valuable to track when one person is doing most of the work. It can be a symptom of overlooked or unknown issues. The project might be planned poorly, requiring one developer to handle all of the requirements. The code might be hard for newcomers to understand. Zoe might be territorial and reject changes. After the symptom is recognized, the cause can be found and mediated.

Align your team to achieve a social coding transformation. With the Social Coding graph, your team has the data that it needs to understand where it must improve.

Driving more effective retrospectives

The end-of-week retrospective is a useful way for developers to reflect on their work. Generally, this meeting is either driven by memory or an issue-tracking system. These methods have little or no visibility into the team coding dynamics.

You can drive the conversation by showing the code interactions during the week on the graph. From the time menu, select Past week.

Code interactions

Before a developer provides input in the retrospective, click that developer in the graph to load his or her social coding interactions. In this example, Navya is selected. Navya can drive the conversation by showing her coding interactions.

Navya's Social Coding interactions

Navya fixed a major bug this week. Most of those changes were to Dunn’s code. This view surfaces that relationship so that knowledge sharing can occur between Navya and Dunn.

In the next example, the graph presents a developer who edited only her own code. If that behavior becomes a long-term trend, it might need to be addressed.

Angelique's social coding chart

In the final example, the left graph presents a team that whose workload is fairly well distributed and whose interactions are frequent. In contrast, in the graph on the right, the social coding is sparse. A team might consider the potential of the project eventually being abandoned.

Comparing social coding charts

Tailor DevOps Insights to your team goals

The Social Coding graph in IBM Cloud DevOps Insights can be tailored to each team’s goals. Whether your goal is like one of the use cases in this blog post or another goal, such as choosing new team members, the graph is a flexible and powerful tool in your DevOps tool belt.

Stay tuned as DevOps Insights expands! To learn more, check out the tutorial video.


More DevOps stories
May 7, 2019

We’ve Moved! The IBM Cloud Blog Has a New URL

In an effort better integrate the IBM Cloud Blog with the IBM Cloud web experience, we have migrated the blog to a new URL:

Continue reading

May 6, 2019

Use IBM Cloud Certificate Manager to Obtain Let’s Encrypt TLS Certificates for Your Public Domains

IBM Cloud Certificate Manager now lets you obtain TLS certificates signed by Let’s Encrypt. Let’s Encrypt is an automated, ACME-protocol-based CA that issues free certificates valid for 90 days.

Continue reading

May 6, 2019

Are You Ready for SAP S/4HANA Running on Cloud?

Our clients tell us SAP applications are central to their success and strategy for cloud, with a deadline to refresh the business processes and move to SAP S/4HANA by 2025. Now is the time to assess, plan and execute the journey to cloud and SAP S/4HANA

Continue reading