Fasten your seat belts; this flight is likely to encounter some cognitive turbulence. This is where Spanish Harlem intersects with the second law of thermodynamics and information theory. You are about to enter the Leyva triangle, and there are no guarantees that you will emerge the same (or at all) on the other side.
Any serious student of software development is familiar with the term Design Patterns (singleton, model-view-controller, iterator, etc.). If not, then check out the book by the same name . At the risk of appearing academic (God forbid. I have a reputation to maintain), I am introducing the term Process Patterns. Process Patterns relates to the software development process itself, as opposed to specific design issues (i.e. artifacts that can be implemented in code).
I have observed a number of recurring patterns (usually after ingesting large quantities of peyote) that have an interesting and significant impact on our ability to develop systems better, faster and cheaper. There is nothing especially novel about the term “Process Patterns.” Other authors have used the term “Rules of Thumb” as a way of describing specific insights. Patterns are an integral part of chaos theory, and they convey information, allowing us to detect order within apparent randomness. Process Patterns attempt to do the same for the chaotic nature of software development.
What do the codes used for sending messages back from spacecraft have in common with genes or a molecule of DNA? How is it that the second law of thermodynamics, a physicist’s discovery, is related to communication, so that we can speak of the “entropy” of a musical score, or a page of text, or a conversation [or the software development process]? Why are knotty problems in the mathematical theory of probability connected with the way we express ourselves in speech and writing? The answer to all these questions is “information,” and the very fact that a single concept can link so many diverse ideas is an indication of its great generality and power.
The introduction of chaos theory, information theory, and entropy is necessary because these fields of study contain the necessary theoretical framework(s) and lexicon for talking about something that is messy; random; complex; unpredictable; gnarly; and, more often than not, downright confusing. In other words, it gives us a way to discuss the software development process and the complex information technologies that result from it. The goal is to develop an understanding of the demons at work during the creation of software.
The premise is that information technologies will continue to be the prime mover in the endless pursuit of competitive advantage. If this is so, then all stakeholders have a need to become smarter faster. Process Patterns are way of metaphorically speaking about the demons. While some patterns appear to name roles, they are intended to describe behaviors, as opposed to individuals. These behaviors either increase entropy (a bad thing) or decrease entropy (a good thing).
I will use the following useful, if somewhat simplistic, definitions:
Damn, the boys in the hood are wondering if I have completely lost my mind. That not withstanding, we shall press forward and see if we can make some sense out of this techno-babble.