How do you design software-visible and testable hardware compatibility strategies when working with design teams?