Here’s a bold statement: Using acronyms is hurting people.
Elon Musk already declared a company rule effective for all employees in 2010, effectively ending the use of acronyms and appreviations for the entire company:
“Individually, a few acronyms here and there may not seem so bad, but if a thousand people are making these up, over time the result will be a huge glossary that we have to issue to new employees. No one can actually remember all these acronyms and people don’t want to seem dumb in a meeting, so they just sit there in ignorance. This is particularly tough on new employees.”
And it’s true. I cannot count the times where I felt extremely dumb because people wrote an acronym to me and I had no clue what it means. It felt like I had missed out something, that I’m not part of some inner circle that clearly knows what this means.
I also had this vice-versa: Me writing LGTM in a Pull Request only to receive a private message by the creator of the patch asking what this actually means. This felt extremely odd to me, making me the one creating exclusitvity.
As developers we tend to apply abbreviations everywhere:
const f = 'foo'.
One abbreviation is even built into the language
const instead of
constant, while the other one is arbitrarily introduced so we have less to write.
But these abbreviations make code much harder to read and for new colleagues this might give them a hard time reading or modifying your code.
It’s interesting to see that we’re creating lot of documentation to improve code quality and make it understandable while we would have a much more
powerful tool available: Writing understandable code.
I actually love a lot of stuff that has recently been added to ECMAScript but there are things that bother me:
let arr = [20, 10, 5, 10]; const arrMax = arr => Math.max(...arr)
This is seen as much easier to read but I know a lot of people who wouldn’t have a clue what this means. There are so many
implicit things happening here, starting by abbreviating
arr to implicitly creating a function by using Arrow function and
finally by using a spread operator inside another function. By now you need to understand three more tools available in a language
to being able to understand what’s happening here.
Keep it simple stupid, people, and whatever “YAGNI” means that I just read in another article today.
Be a good colleague and write understandable language, avoid acronyms in your normal language, your written conversations and in your code.