loose coupling

mr_bean on 2006-05-12T03:06:43

Steve McConnell in Chapter 5 of Code Complete (http://cc2e.com) says:

Coupling describes how tightly a class or routine is related to other classes or routines. The goal is to create classes and routines with small, direct, visible, and flexible relations to other classes and routines, which is known as loose coupling.

Loose coupling is also a term in management (http://jmm.aaa.net.au/articles/8677.htm):

Weick made the practical connection that schools simply did not behave like industrial or commercial enterprises. He acknowledges the writings of Glassman (1973) and March and Olsen (1975). From this area of study arose the concept that there were critical differences between what came to be called HSOs (Human Service Organisations) and profit-centred businesses. One of these differences was that the main business of HSOs, whether hospitals or schools, happened between professionals (doctors, nurses, teachers) and clients (patients or students). This primary business was supported by a backbone of administrative and resource services. Another description of this sort of organisation was presented by Kouzes and Mico (1979) under the heading Domain Theory. The key discovery that these writers (and Weick) both made, was that Administration was not the main source of expertise and decision making, disseminated through a hierarchy of management and workers. Rather, administration and the professionals tended to have different roles, independent authority, low levels of standardisation and even different agendas.

Loose coupling was the name for the operational links within such a structure. The theory of loose coupling not only explains how HSOs operate with such links, but attempts to explain why they are able to function with what at first glance many seem an inefficient and ineffective structure. Weick asks "what does hold and educational organisation together?" (1976, p4).

Can the effect that version source control has on the relation between development and a project, freeing the coder from the consequences of test failure, also be regarded as a form of loose coupling?