Engineering reasoning