Using reusable code reduces implementation time, increases the likelihood that prior testing and use has eliminated bugs and localizes code modifications when a change in implementation is required.
Subprograms - typically called subroutines or functions - are a simple form of reuse. Objectss and software components offer a more advanced form of reusability.