Wednesday, 5 September 2018

Five Examples of Terribly Useless Commit Remarks

The ability to work in a team is an oft-understated part of a developer's skillset. Sure, being able to write good working code is always well-received. But being able to collaborate with others is one of the major things a developer is judged on.

Committing changesets to a code repository is one of the ways a developer collaborates with others. And to do that well, at the very minimum, one needs to understand the art of writing useful commit remarks. That's a subject worth investing some time in to study, but for today, let's examine some of the most God-awful useless commit remarks I've ever had the misfortune of encountering. I've categorized them into five groups, not necessarily in order of futility.

1. The Mysterious

Invisible.

Changeset By Time Remarks
11332667 Ms Mysterious 31 July 2018, 15:03:14 Details
11332668 Ms Mysterious 31 July 2018, 15:35:24 Details
11332669 Ms Mysterious 31 July 2018, 16:12:11 Details

Do you see the problem with the commit remarks? No? That's because there are no remarks. Meaning, we have no clue what the commit was for and actually have to delve into the code to make sense of of the why and what.

2. The Nonsensical

Crazy randomness

Changeset By Time Remarks
98090 Nonsensical Jr. 18 August 2018, 09:39:16 Details xyz
98091 Nonsensical Jr. 18 August 2018, 09:42:55 Details abc123
98092 Nonsensical Jr. 18 August 2018, 09:55:21 Details 55555
98093 Nonsensical Jr. 18 August 2018, 13:23:22 Details 454tdfddfhfghhf

Now, there are commit messages. The only problem is, they're not in English. Or any other language you might know. Hell, they're not even in binary! This normally happens when commit messages are mandated at configuration level. The developer can't commit unless he writes a commit remark... any remark. So to fulfill these requirements, they type some random keyboard sequence and click Save. Good for them... though this is probably worse than no message. Having no message is neutral. This is open contempt.

3. The Vague

Nothing solid.

Changeset By Time Remarks
113342667 Mr Vague 15 January 2018, 10:12:22 Details fixbug
113342668 Mr Vague 15 January 2018, 11:10:55 Details fixed bugs
113342669 Mr Vague 15 January 2018, 12:21:40 Details fixes

These irritate me the hardest. This is not some random sequence - it's actually readable (kind of) English. The only problem is, they say absolutely nothing. What in the loving heck is "fixbug", or any of the other permutations? Is the Mr Vague trying to say he fixed a bug? Exactly which bug? Did this provide any useful information, or at least more useful information than if he had not even bothered to leave remarks? Technically, yes. But only marginally. This basically screams, I have nothing useful to say, but I wanna say something just for the sake of saying something.

4. The Redundant

Really damn extra.

Changeset By Time Remarks
5566732 Mdm Redundant 9 March 2018, 23:21:09 Details 45178
5566733 Mdm Redundant 10 March 2018, 09:09:55 Details 45222
5566734 Mdm Redundant 10 March 2018, 11:58:29 Details 45232
5566734 Mdm Redundant 11 March 2018, 11:18:11 Details Mdm Redundant
5566734 Mdm Redundant 12 March 2018, 16:09:03 Details Mdm Redundant

These comments aren't random numbers. No, they're the ticket IDs for which the changesets are intended to fulfill. Are these useful? They might be... if not for the fact that these details are available anyway if you click on the Details link. So they save you a click... at the expense of more pertinent information. Better than no comments? Maybe. But not by much. (OK, I'm being kind. They're still utterly useless.) And in the last two commits, Mdm Redundant went one better... she simply left her name. Genius.

5. The Accusatory

It's all your fault!

Changeset By Time Remarks
103998 Sir Accusatory 30 May 2018, 12:18:49 Details The foreign id was not configured correctly. In my opinion, this would have been avoided if we had gone with denormalization of specific structures, as I recommended, instead of relying on foreign keys for verification of everything.

The first sentence was somewhat useful. The rest of it was smug, petulant and totally unnecessary. Even just "recommend denormalization of specific structures" would be preferred. This is at least neutral. Remember, when you piss people off with your remarks, half of your message is lost. This message started out as something useful. Unfortunately it got lost by the fact that the Sir Accusatory wasn't trying to be helpful, and was just trying to throw shade at the other developers.  Very unprofessional. Don't do this!

Are these commit remarks really all that useless?

Well, nothing's completely useless. If the company needed to assess the competency of their staff, this would be one of the easiest and obvious metrics. Seriously, you don't need to be a programming genius to know that these commit remarks are crap. It's more a matter of common sense.

Commit remarks are supposed to help, not hinder. When they say "soft skills are important", they don't mean software skills (though those are still important!), but rather, communication. If you are going to work in a team, you need to make your work easy to follow.

fixbug,
T___T

No comments:

Post a Comment