I am working on an application that has a number of hierarchical datagrids. There is a need to specify the relationship, for instance, when you are adding an element to that hierarchy. Currently we allow the user to add an element as either a sibling or a child of an existing element. There is a lot of concern that the terms sibling and child are to development speak and not user friendly. Are there other terms that would be more user centric?
You should use language with which the user is familiar so call the elements what the user calls them. A user who is familiar with the system will or the context of the system will immediately understand the terms that are used and will inherently know the underlying structure.
For example, a system for visualising the hierarchical structure of species of animal would be best using the kingdom > phylum > class > family* names for it's elements as these would be immediately recognisable by the users and they would inherently know what structure they represented. A user wouldn't add a new child of a phylum, they would add a new class and pick the phylum it belonged to inherently knowing what was about to happen. This would be much better than calling them all parents of some and children of another. I would bet a user in that context would find parent and child naming a uneccessary cognitive load.
This is actually a fundamental Nielsen Norman UI Design Heuristic:
You might be in a situation where you cannot get this information from your users, such as a groundbreaking system or one with a huge diverse market, in which case the best terms you are going to come across are terms like parent and child, which are words that decsribe a widely understood structure.