Barnacle (slang)
The word barnacle is a slang term used in electrical engineering to indicate a change made to a product on the manufacturing floor that was not part of the original product design. A barnacle is typically used to correct a defect in the product or as a way of enhancing the product with new functionality. A barnacle is normally a quick fix that is used until the product design can be redone incorporating the barnacle into the actual product so that when manufactured, the barnacle step in manufacturing is no longer required. A barnacle may also be added in the field in order to correct a design or manufacturing defect.
Origin
The term appears to have originated from the crustacean barnacle which is an animal that attaches itself to rocks, docks, ships, whales, and other objects where it grows. A barnacle in electronics is something added to the manufactured product. Typically a barnacle on a circuit board is very noticeable, much like the mollusc variety on a rock in the sea.
Use in software
While the term was originally used with electronic hardware, it has also migrated into the software industry where is it is used to describe software that is added to a system. The connotation in the software industry is that a software barnacle is code added as an expedient without regard to the original design intent. A software barnacle may also refer to malware or spyware which has been inserted into a computing system illegally.
Examples
On printed circuit boards, a barnacle may be as simple as cutting a trace, soldering a wire in order to connect two points on the circuit board, or adding a component such as a resistor or capacitor. A barnacle may also be a complex subassembly or daughterboard. Barnacles in hardware assemblies allow an engineer to repair design errors, experiment with design changes or enhancements, or otherwise alter circuit behaviour.
Although usually a barnacle-implemented change is incorporated into a new fabrication cycle circuit before production, occasionally there are final-assembly barnacles. In such cases it is determined to be less expensive to add a barnacle to a final, shipping product rather than re-spin the circuit to ship without these interventions left in place.
Use
The normal development cycle for electronic hardware contains two main phases. The first phase is the development and prototype phase in which the hardware is first designed (and often simulated using a computer program such as PSpice) and the design manufactured in low quantity as prototypes for testing. The second phase is the updating of design documents based on the testing experience and the beginning of general manufacturing of the product.
During the testing phase, problems are usually found as the design and simulation tools can not duplicate some types of environmental as well as electrical circumstances in which the product may be used. During the testing phases, barnacles are often used to patch (computing) or correct the hardware so that testing can continue in the face of defects (failures or faults) found. The goals of adding barnacles at this phase are to reduce development costs by using the prototype hardware for as long as it can be used, to test hardware changes before the design documentation is updated, and to reduce development time by not requiring a new version of the prototype hardware to be manufactured.
During general manufacturing of the product, the product may sometimes be used in circumstances which the specifications indicate would be acceptable however when the product is actually used in those circumstances, a problem is encountered. Engineering will typically perform a root cause analysis in order to determine the root cause of the problem. In some cases, manufacturing changes may need to be made such as trace contaminants being introduced during some phase of manufacturing. In other cases, the problem has to do with the design of the product and a change has to be made in the product design.
When a product design change is required, often and when possible, a barnacle is designed so that existing products can be modified with the design change using the barnacle. By using a barnacle, the idea is that existing products do not need to be scrapped and replaced so in this case the use of a barnacle is an economic decision. The barnacle work may be done in the field using portable tools and components or it may require a product recall with the barnacle work being done on the manufacturing floor.