Others have answered this already, but it's caused due to execution order - the start of your adder is called before the assign.
Personally, I'd recommend doing the opposite - instead of setting it through the parent (findandassign), find and get the data through the adder, and set it internally. this way, if the data isn't yet set, you know immediately, and don't assume it is set. Now I can't see your code, so there's likely a reason you do it this way.
If that's the case, I'd suggest using Awake() over Start(). if it helps, Awake is more of a "After Initializing," and Start is more of a "Before First Update." You cannot tell what order things will be initialized in, and similarly, you can't tell what order everything will set itself before the first update. however, you are guaranteed that everything declared statically in a scene will be initialized during Awake, and everything will have called Awake before any one of them run Start. this means that you can set data in findAndAssign's Awake(), and it will be guaranteed to be set before anything runs Start().
Quick disclaimer: any class declared during runtime will still follow these rules, (Initialize -> Awake -> Start (if enabled)) but when during the frame they do so is more complicated.