A Model of Change:

with applications to software engineering and social organization

Summary

This was my undergraduate thesis. It had three sections: a philosophical presentation of the "model of change"; supporting examples in software engineering; and evidence from sociology on the level of societies.

I started with some philosophical assumptions about the interconnectedness of the universe, and applied Herbert Simon's argument about hierarchy [Sciences of the Artificial 69], to derive what is really the basic assumption behind the model:

1) cleanly hierarchical solutions to problems are maximally functional.

However, since hierarchy excludes connections, the hierachical solution is bound to degrade over time as the system is adapted to new uses. The very success of a system changes the environment and therefore guarantees that unanticipated requirements will need to be incorporated into the system. Philosophically, I used Godel's incompleteness theorem to "prove" that some problems are unavoidably out of the scope of what any hierarchy is good for. Thomas Kuhn's description of scientific revolutions was also very relevant. For computer systems, the black-box integrity of modules deteriorates as programmers implement modifications based on their necessarily local understanding of the problem. In social systems, complexity is added to the system as special interests develop which are not successfully assimilated. Pre-revolution France was an excellent example (Theda Skogpol's book on states and revolutions was very useful here).

2) modifications add complexity to the system over time, reducing functional effectiveness.

In software engineering, a complex system fails when it is cheaper to re-implement than to modify. A social system fails when it can no longer meet external challenges. Thus, France's monarchy couldn't raise the funds to continue fighting Britain. Evolution and revolution are different points on a spectrum of change; they differ only in the depth of the "assumption" within the original hierarchy of the system which must be changed.

3) change is enabled by failure of the system to adapt to new challenges.

Small failures accumulate and create larger failures. Societies, like computer systems, may be subject to top-down or bottom-up design. Top-down design occurs in autocratic revolutions, bottom-up in democratic. The key to successful social change is functionality. On a micro level the free rider problem must be overcome; this is possible within protected movement subcultures. On a macro level, the outer society tends to absorb a change to the maximum degree possible. Younger (more hierarchical, more effective) societies are better at this. Thus, the early waves of immigrants to the U. S. were fully absorbed into American society. Later groups were coopted but not fully absorbed. Cooption occurs when immediate goals of special interest groups are satisfied, but longer term objectives are brushed aside. The current paralysis of American government is due to the accumulation of many coopted special interests.

4) the basis of change is the functional effectiveness of new organization.

When change does occur it often happens quite rapidly, as a crystal spreads in a solution. This phenomena, which may be observed both in computer simulations and social history, is predicted by the theory of complexity and functional effectiveness.

This paper is available in hard copy only.