When avrdude returns an error (not in sync), the user is lead to believe that programming was successful. It should be clearer that programming failed and instructions should be printed to remedy the problem.