Differentiability, first a zoom in to see locally linear

with_slider_draw3d(
  a, makelist(5*10^-(i/10),i,0,20),
  xlabel="x", ylabel="y", zlabel="z",
  surface_hide=true,
  enhanced3d=true,
  line_width=1,
  pic_width=700,
  pic_height=500,
  zrange=[-a,a],
  explicit((0.5*x+0.5*y+y^3+x^3)/(x^2+y^2+1), x,-a,a, y,-a,a));

Not differentiable at the origin

draw3d(xlabel="x", ylabel="y", zlabel="z",
  surface_hide=true,
  enhanced3d=true,
  line_width=1,
  pic_width=700,
  pic_height=500,
  explicit(sqrt(x^2+y^2), x,-5,5, y,-5,5));

Another not differentiable function but one whose partials exist.
Not close to linear at any zoom level

with_slider_draw3d(
  a, makelist(5*10^-(i/10),i,0,20),
  xlabel="x", ylabel="y", zlabel="z",
  surface_hide=true,
  enhanced3d=true,
  line_width=1,
  pic_width=700,
  pic_height=500,
  zrange=[-a,a],
  explicit(x^2*y/(x^2+y^2), x,-a+0.000001,a, y,-a,a));

Were it differentiable the following would go to zero as we approach the origin
(it is the function divided by the distance to origin which is the difference
between the function and the plane given by the partials)

draw3d(xlabel="x", ylabel="y", zlabel="z",
  surface_hide=true,
  enhanced3d=true,
  line_width=1,
  pic_width=700,
  pic_height=500,
  explicit(x^2*y/(x^2+y^2)^1.5, x,-5,5, y,-5,5));