Interchangeable Parts and Software Development

Interchangeability of parts is made possible by manufacturing parts to precise tolerances according to clear, well-defined specifications.

Historically, one of the problems with software development has been the tendency of programmers to built software out of parts that have been hammered to fit one particular program.

The more modern and productive practice is to assemble programs out of reusable parts. These reusable parts should be designed very carefully, so they will be as easy to use and as generally useful as possible. They must also be implemented carefully; any deviation from their specification can interfere with their interchangeability.

(It is possible to add extra features to an otherwise interchangeable part to support some specific application, and object-oriented programming is supposed to make that easier. On the other hand, you shouldn't do that without good reason. When client code depends upon custom features of otherwise interchangeable parts, those parts are no longer interchangeable.)

For debugging: Click here to validate.