Recent history has ushered in the postmodern era in all its fragmented glory. With its arrival comes the displacement of the absolute, the certain, and all that characterizes the modern age. Along with changes in art, politics, and philosophy— there are reverberations in business and technology. The societal shift from Modernism to Postmodernism mirrors and reinforces a shift in software development from traditional waterfall to non-linear Agile methods.
The use of rational thought has come to be a foundation of society.
The belief in reason as a source of knowledge has enabled democracy and capitalism to advance our civilization into what we call the Modern age.
With this comes a sense of hopefulness for the future and the idea that through science and our increasing knowledge of the world, we can solve any problem.
However, more and more we are finding a single interpretation of the world to be untenable. Knowledge is spontaneous, subjective, and varies with its interpreter.
Postmodernism challenges the Enlightenment ideal of rationalism in favor of plurality and indeterminacy (Best and Kellner 1991: p. 4). Universal grand narratives are abandoned in favor of personal truths garnered through discourse. The philosophy of postmodernism as compared to that of modernism provides a useful perspective from which we can better understand changes in business and technology management including software development.
The archetypal development process, typically identified as the Waterfall method, involves a highly structured series of gates that must be completed before progressing through each stage. All design work must be completed before construction and construction before implementation. These controls are appropriate for certain types of projects such as the design and construction of a bridge, though variations are commonly used in the less constrained areas of manufacturing and project management. Unlike building bridges, creating software is a process of transforming ideas into code. Inputs to the software creation process are not raw materials, but user requirements. The relative flexibility of software requirements allows for frequent design changes and even revisions to the method of construction. The transient nature of business rewards agility for its ability to capitalize on new information. The rigidity of the traditional engineering approach is restrictive to changes in requirements and does not allow for change to the process itself.
Another issue that prevents Waterfall from being successful in software development and other forms of new product development is the inability of stakeholders to understand and convey what they need in a software application before ever having seen or used it. The ability to develop personal and group understanding of product requirements is something more easily established over time through team collaboration in place of upfront design and documentation.
Postmodernism reduces truths to individual interactions through language. The French philosopher Jean-Francois Lyotard drew upon the concept of knowledge as language-games to represent the shift from grand narratives to localized narratives (Lyotard 1979). From this perspective we see that a single system design cannot constitute a basis for universal understanding. Each individual must take part in the creation of that understanding for it to be effective. The first, and arguably the most important, canon in the Agile Manifesto supports this view as it advocates “Individuals and interactions over processes and tools” ( Agilemanifesto.org).
A function of Agile software development is to use short iterations of development to prototype software early and often. With each iteration, the product sponsor and development team review progress and move towards a common understanding. This is a significant difference from the linear steps of the waterfall method. Waterfall works on the premise that a complete understanding of the end state is known from the start of development, the end state is articulated in objective language, and the team can interpret the requirements just as the sponsor intends. From the postmodern perspective, language has no inherent structure and thus is unable to directly convey information. In a postmodern world there can be multiple understandings; none are privileged above the rest (Hassard 1999: p. 172). The reliance on a packaged, universal