Best way to access variables of script from granchild of another object, into a different script?

Whats the best way? Could you use tags, use GameObject.Find(“object”).GetComponent(script);…(not sure how you would find a granchild object this way), use sendmessage(heard it is bad to do), or some other method?

Something like this other.transform.parent.GetComponent("Script").variable = variable;