master vs main

A lot has been written on this topic, more eloquently and with greater perspective that mine. But I have been thinking more about how my team can be more inclusive recently and this is one change we’re making.

The team I have managed for the last few years doesn’t have, in its agile ceremonies, a backlog grooming session. Instead, the name given to that time of the week during which they review and curate the tickets on the backlog that amass like detritus on the banks of the River Leam, is ticket estimation.

My wife works with teenage girls, mentoring them towards a more stable existence. Some of those girls have been subject to child sexual exploitation, so the word grooming to me means something very different to the two older ladies who live on the corner of my road who receive regular visits from the doggy wash van. Grooming, to them, means pet care. To me it is a much darker and more horrific word.

We cannot always know what impact our words will have on our colleagues. Not should we be afraid of naming things lest we make a mistake. It is, after all, one of the two hardest things in computer science. But we can and should be considerate where possible.

Many in this world have been significantly and negatively affected by slavery and colonial rule. I’m sure there are other contexts and backgrounds in which the word master can have negative connotations. By choosing to use main instead of master we achieve a few objectives: awareness of the potential impact of this specific word; willing to change our behaviour and decisions based on others experiences.

What should you do? Consider others experiences and perspectives and let them shape future you.

PS it turns out that git allows you to specify, per repo, what the default branch is called, and you can combine that with git aliases to create a command that will always check out the default branch regardless of what is used in each repo: cm = "!f() { PB=$(git config --default master --get init.defaultBranch); git checkout \"${PB}\"; }; f"