designing software is for helping computers that aren't smart enough yet.