A piece of a program that is “called” from another part of the program. Often a well-structured program will consist of a short main routine that calls many other routines and subroutines to do the majority of work. Routines are individually tested sections of programming code and therefore, cut down the debugging and testing time when used and then used again in other situations. Routines can be actually small programs that do several jobs. They are smaller than a real program but larger than a subroutine. They can be made up of several subroutines.