Want a free comprehensive digital product evaluation? Find out more

Activity graphs for software engineers: more harm than good?



tl;dr I'd like to see services like GitHub and GitLab give users the option to hide their contribution activity to help foster a healthier environment.

Activity (or contribution) graphs provide a visual representation of someone's contributions to something over time. They're popular in the engineering scene, with services like GitHub and GitLab using them to display a user's repository activity such as opening a pull/merge request, committing code and participating in discussions.

An example of a GitHub user's activity graph.

For most people they're a fun, interesting way to display their work over the past year. But are they a healthy way of doing this for everyone? In my experience they have the potential to do more harm than good, so I think they should be optional.

Healthy working

Having a healthy work/life balance is extremely important for our mental wellbeing. Stories of burnout and fatigue are all too common, especially within the engineering community where the line between day job and leisure can be blurry and difficult to navigate for some people.

But what's this got to do with activity graphs?

In the past, I've often felt guilty or self-conscious when I haven't been able to keep my graph looking full with regular code contributions. When you're feeling like this, it's very easy to compare yourself with more prominent people in your community or even your friends/colleagues, but you can lose sight of the fact that they may be in entirely different circumstances to you. Perhaps they don't have the same commitments as you do, or maybe they're paid to work on Open Source projects as part of their job.

I've also heard countless stories of people faking their contributions by doing things like modifying their commit dates, or committing tiny changes across a number of days to make their graph look more full. The fact that some people feel compelled to go out of their way to do these things in order to be perceived as a "better" or "more productive" engineer is concerning. It's worth remembering that some of the best engineers in the world have little in the way of public contributions. There are plenty of articles around this subject, including Why GitHub is not your CV.

Activity graphs have the potential to encourage some people to embrace overworking purely in the hope of recognition or self-promotion, and this may be damaging to their mental health in the long term.

If you're feeling low about your level of contributions, it can be a constant reminder that you're not where you want to be, and as an industry I think we should be doing whatever we can to promote a healthy attitude to work.

What could be done?

I don't think activity graphs should necessarily be replaced or removed entirely. There are lots of people who enjoy the challenge of filling them in a healthy way, and for some it's just a fun way to showcase their work.

I just want people to have the choice.

I'd like to see GitHub (and others) add an option to allow people to disable activity graphs, both publicly and privately. Any data relating to them should be disabled from their APIs too. That's all; nothing fancy, just a checkbox in your account settings. It might make sense to hide the activity graphs for other user profiles too, in the interest of reducing potential comparisons (although this could be a separate option).

It's worth noting that GitLab has a feature called private profiles that goes some way to helping this issue, but enabling this feature seems to hide other useful information from your profile such as repository lists and starred projects.

I'm also not alone in asking for this. There are multiple, well-commented issues that propose similar ideas, showing that others have similar concerns or have had issues with their working patterns themselves.


Although many people find activity graphs useful and playful, there will be some who would rather not have yet another way to compare their work to others'.

Making them optional could be a small but important step towards promoting a healthy work/life balance in the engineering community.