On the contrary, this is the entire field of UX design, and quite a large chunk of material anthropology.
At some level everything we relate to is a social construct, once we use it to discuss things with other humans. A computational linguist friend of mine once wrote a long LJ post on "Ether is a social construct" after spending his PhD extracting chemical information from papers. His point was that ether, like various acids and other substances, behaves differently at different concentrations, in ways that are important for reactions but must be inferred from context and prior knowledge of chemistry. In other words, technical terms are more precise than everyday language, but are rarely fully precise because they cannot capture all the context in which they are used.
Some places use branches for versions instead of tags.
Some places religiously follow git flow’s branch rules.
Some just have a master production branch and feature branches.
Some have staging branches too.
In this way, branches become a social construct, as the use (and thus meaning) of a branch can change from organization (eg, small social circle) to organization.
However, the idea of a git branch exists independent of the manner a certain population agrees on its use. It doesn't cease to exist just because you haven't agreed on how to use it.
No! A set of bits exists on disk. A piece of software (git) interprets those bits as a branch. The idea of a branch exists in the heads of the users - subject to the usual human limitations. While quite a lot of users will be able to be precise about what a branch means in terms of git blobs, there will be people using the tool and talking about branches who don't know that. But an idea, whatever it is, exists only in the way that people think and talk about it.
Even in this thread we have people fighting about what it is: https://news.ycombinator.com/item?id=38999486
That's just what society's conditioned you to think.
I call what you describe there an abstraction. So, feels like I'm going full circle here to my original comment.
My (possibly incorrect or incomplete) understanding is that abstraction is when some complex underlying mechanism is presented in a manner that serves a specific purpose. In essence the difference between an abstraction and a social construct is that an abstraction deals with simplification of ideas and presenting them in a manner that makes it easy to interact with them.
While social constructs are about shared understanding of ideas regardless of whether these are reified in any manner or whether there is are ways to interact and engage with them.
So it could be argued that the abstraction isn’t _actually_ different than the sum of its lower level parts. It’s your understanding as a human (potentially and probably shaped by your society) that makes the abstraction easier to understand than the lower level bits.
A shared understanding (at least between an author of an abstraction and the lower level components it’s built from) is required for a software author to make any abstractions anyway.
This is exactly what I disagree with. If you do s/meaning/social\ construct/g then by that definition you're correct, but you're ironically creating two meanings of social construct: one useful one (the original), and one confusing one (that sounds like the original, but is equivalent to "meaning" or "semantics").
The distinction between the uses is important, because you may end up talking to one of the groups and not realise you're using the same word for different things.
The interesting parts are that enough consensus emerged due to (some factors) to create that meaning, how did that consensus emerge, if it's isolated to some groups, etc.
The humanities are, probably, the most avid user of this term, and that's why the irony. I.e. because we couldn't find a decent definition for what "race", or "ethnicity", or "culture", or "country" etc. is, every such problematic term was labeled a "social construct".
So, I think you might be too harsh on the author. I doubt they use "social construct" completely unironically. What they are actually trying to say is that "there's more to branches than meets the eye, and it turns out that it's hard to define what a branch actually is".