Postmodern Critiques


Postmodern Critiques

There is a controversy smoldering in the computer science world at the intersection of two important topics: formal methods and heuristics. The controversy, though it may sound esoteric and theoretic , is actually at the heart of our understanding of the future practice of software engineering.

What is meant by formal methods? Techniques, based on a mathematical foundation, which provide for systematic approaches to problem solution. What is meant by heuristics? Techniques that involve trial-and-error approaches to problem solution.

It should be noted that careful reading will disclose a potential middle ground. Formal methods, perhaps, are appropriate for solving mechanistic and well- understood problems or parts of problems; heuristics are necessary for more complicated and creative ones.

”Robert L. Glass [6]

Robert L. Glass probably would not identify himself as a postmodernist, but he does provide a good transition to a consideration of postmodern philosophy and computer science. The preceding quotes are consistent with the contrast between formalist and hermeneutic philosophy discussed in the preceding section. The third quote additionally suggests the superiority of heuristics over formalism when we need to address large-scale, complicated (and possibly complex) systems that involve human beings.

Glass s arguments in favor of heuristics and creativity in software design mirror the hermeneutic arguments against formalism. Formal approaches simply will not work beyond a certain scale. Formalism works close to the computer, is highly questionable at the level of an application, and fails at the level of complete systems and architectures.

The work of Terry Winograd provides a complementary parallel to Glass while making a more direct link to hermeneutic philosophy. Early in his career, Winograd was a strong advocate of classical AI and was a strong formalist. Exposure to the ideas of Humberto Maturana and Francisco Varela, along with the philosophical works of Martin Heidegger, prompted his reconsideration of AI s formalist tenets. Winograd has turned his attention from formal modeling of the world to the issue of designing software to be used in the real world. He characterizes design as a conscious act, human-centric, conversational or dialogic in nature (between artifacts such as software and hardware and human beings who are users of those artifacts), creative, communicational, with social consequences, and done as a social activity.

One of the influences on Winograd s thinking was the work of Humberto Maturana and Francisco Varela regarding the evolution of autopoietic ( self-organizing ) biological and cognitive systems. The structural-coupling mechanism used by cells to establish cooperative complex structures, and eventually all the familiar forms of flora and fauna, provided one bridge to the social nature of computer systems and their development. Another influence was the work of Martin Heidegger, a hermeneutic philosopher. Writing with Fernando Flores, Winograd explored the work of Heidegger and its implications for computer system design.

One of the most important implications was the denial of intrinsic truth or meaning in any artifact ”whether it was a computer, a piece of software, or a simple statement in a natural language. This claim is also central to the school of thought that has been labeled postmodern . It is also one of the core claims of all the hermeneutic philosophers . Because of this implication , the design of computer systems must, for Winograd and other postmodernists, be refocused on the use of software and hardware as communication devices for a particular group of people at a particular point in time.

While Winograd and Flores concentrated on Heidegger s notion of breakdown and issues of communication, Christiane Floyd and her coauthors extended the discussion to include other facets of postmodern philosophy. [7] The role of politics and power relationships in both the imposition of a software artifact on a community of users and the group dynamics of those charged with the creation of the software artifact in the first place are central concerns of Floyd and her colleagues. In a similar vein, Richard Coyne [8] addresses the issue of design in a postmodern age.

The importance of all this work ”beginning with Glass s concerns about creativity and including the postmodernists concerns with computer system design ”is its clear extension of hermeneutic arguments against formalism. It s also the context in which objects as a software development metaphor were coined. The first expression of object thinking by Alan Kay and the researchers at Xerox PARC was concerned , like the postmodernists, far more with people and communication issues than it was with technical computer and formalist issues.

Knowingly or not, the object community was concerned in the 1960s and 1970s with the same issues raised by the hermeneuticists in the nineteenth and  twentieth centuries, as well as the issues that would be raised by the postmodernists of the 1990s. To an object advocate, objects are valuable because they facilitate user /computer interaction and communication among members of development teams . Objects enhance the art of software development but not necessarily the engineering.

Adherents to formalist ideas, including many computer scientists and software engineers , dismissed objects as irrelevant. When object technology looked as if it might make serious inroads into real-world development, the formalists attacked in the same manner that they attack other critiques of formalist approaches ”for example, the creativity discussed by Robert Glass.

Simultaneous with the attack on basic philosophy, the traditionalists began to lay claim to the form of objects by equating them with the black box module . They were also quick to adopt less threatening innovations such as abstract data types as logical extensions of traditional software engineering theory. As a consequence, the object technology that became widely adopted was the formalist recasting of object ideas rather than the pure object paradigm itself.

A similar phenomenon is evident in the patterns movement , wherein many of the core philosophical ideas of Christopher Alexander, the original inspiration for the attention paid to patterns, are being dismissed or co- opted by traditional software developers who like the form of patterns but are uncomfortable with the more esoteric ideas.

start sidebar
Rejecting Mysticism

Although A Pattern Language: Towns, Buildings, Construction (Oxford University Press, 1977), by Christopher Alexander, was published before his The Timeless Way of Building (Oxford University Press, 1979), the latter provides the philosophical foundation for the former. A Pattern Language is cited by everyone in the patterns movement as an inspiration for their own efforts, but The Timeless Way is seldom mentioned. Of course, it is in the latter book that Alexander s mysticism is most evident. Consider the following:

A building or town will only be alive to the extent that it is governed by the Timeless Way. To seek the Timeless Way we must first know the Quality Without A Name . To reach the Quality Without A Name we must then build a living pattern language as a Gate. Once we have built the Gate, we can pass through it to the practice of the Timeless Way. And yet the Timeless Way is not complete, and will not fully generate the Quality Without A Name, until we leave the Gate behind .

The emphasized statements are actually chapter headers from The Timeless Way of Building . They read far more like the Taoist (and later Zen) story of the Boy and the Bull, which is an allegory of the process of obtaining enlightenment.

It s not surprising that computer scientists and software engineers, embedded in a formalist culture, find little of value in this aspect of Alexander s work. You have to wonder , however, how deeply they understand Alexander s ideas about patterns if they dismiss what are clearly, for Alexander, fundamental philosophical presuppositions . Is it not possible, even likely, that they are reading into Alexander s pattern ideas their own philosophical biases? And if so, how valuable was Alexander s contribution after all?

This example exposes a bias of the author. You cannot claim to  understand something ”in this case, object thinking and extreme programming ”unless you are able to understand the form, the substance, and the presuppositions that support the form and the substance.

end sidebar
 

Deciding to be an object thinker or an extreme programmer is a decision to set oneself in opposition , in very important ways, to mainstream software development thought and practice to become a revolutionary.

Revolutions, especially in the arena of software development, seldom succeed. They are resisted, and attempts are made to marginalize the proponents of new ideas. Opponents from the mainstream have already suggested that object thinking, as presented in this book, and XP are good, but only in a small niche, for small teams, and for noncritical software. What the critics fail to realize, however, is that object thinking and agile thinking are not a means for solving software problems; they are a means for creating better people and better teams of people. Object thinking and XP will produce a culture (see note), not a technique; they will give rise to better people capable of attacking any kind of problem and able to develop systems on any level of complication and scale.

Note  

A culture already exists that is friendly to object thinking and extreme programming. As Ken Auer points out, there were hundreds of people employed by Smalltalk vendors and thousands of projects written in Smalltalk (many still flourishing). Add in all the people in consulting organizations and all the members of all the project teams, and you have a sizable number of people. Include the growing number of XP/agile experts. Even if most of them have failed to grasp the fullness of object philosophy and culture, the society, with a culture of shared values and worldviews, clearly exists and is not limited to a  handful of researchers in Palo Alto, consultants in the woods of Oregon, and a few strange academicians in odd corners of the globe.

[6] Glass, Robert L. Software Creativity . Englewood Cliffs, NJ: Prentice-Hall PTR. 1995. (p. 42)

[7] Floyd, C., H. Zullighoven, R. Budde, and R. Keil-Slawik (eds.). Software Development and Reality Construction . Springer-Verlag, 1992. Also Dittrich, Yvonne, Christiane Floyd, and Ralf Klischewski. Social Thinking, Software Practice . MIT Press, 2002.

[8] Coyne, Richard. Software Development in a Postmodern Age .




Microsoft Object Thinking
Object Thinking (DV-Microsoft Professional)
ISBN: 0735619654
EAN: 2147483647
Year: 2004
Pages: 88
Authors: David West

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net