Computer programmers, like everybody else, are not perfect. This means the programs they write sometimes have small errors, called "bugs," in them. These bugs can be minor, such as not recognizing user input, or more serious, such as a memory leak that crashes the program. Before releasing their software to the public, programmers "debug" their programs, eliminating as many errors as possible. This debugging process often takes a long time, as fixing some errors may introduce others. Debugging your windshield at a gas station is much easier than debugging a computer program.