You can't. Well, maybe you can. The way you come up with an estimate for this is the same way you would come up with an estimate for ordinary development: *break the task into smaller pieces, and evaluate each piece separately.* For example, you might not be able to estimate the task "Determine how this black box works, and how to interface our software product with it." But you may be able to come up with independent estimates for: 1. Evaluate and understand the black box's API 2. Evaluate the behaviors of the black box 3. Determine what commands will execute the behaviors we want 4. Analyze, identify and mitigate possible safety concerns 5. Map commands from our software to commands in the black box, and evaluate the returned data. And so forth. Some estimates may depend on the completion of previous steps. For example, estimating step #3 may not be possible until step #2 is completed.