Models of Change Work as Programming Languages

Note: this article is primarily for people in the field of NLP. It may be too technical for the uninitiated.

There are many competing models of change work in Neuro-Linguistic Programming and related modalities. Extending the metaphor of “programming,” we can think of these competing models as programming languages.

The Syntax of the Language Determines the Rules

Different programming languages may be very similar, like C is to Java or Python (all object-oriented), or can be very different like assembly language or Haskell. What works in one language might not be allowed in another.

The way Richard Bandler teaches submodalities might be different from the way Steve Andreas teaches submodalities, but both are using similar concepts. But in different “languages,” you might not be “allowed” to do the same sorts of things.

In hypnosis you can visualize a scene and add new content, whereas in Submodality change work this is typically not allowed. In Submodality change work you might change the size and shape of an internal image, whereas in Metaphors of Movement, this sort of approach will return a syntax error, so to speak. In Clean Language you are limited to asking questions, in fact only a very limited number of them!

Built-in Elements, Functions, and Libraries

When programming a computer to do things, you use a language of built-in elements, as well as building your own functions out of these elements. You can then use other people’s libraries of existing functions, such as jQuery or Angular.js for JavaScript.

Built-in elements in models of change work are things like submodalities, strategies, and eye accessing cues, whereas functions are things like specific change work techniques created from these elements. Libraries are large groups of functions often for a specific purpose. A perfect NLP example is in Steve Andreas’ PTSD Training, which teaches 16 different methods working in conjunction to resolve complex PTSD.

Updating the Programming Language Itself

Some NLPers believe that the only “true” NLP is creating new built-in elements (ideally by modeling expert performance), and that creating new functions or teaching existing libraries of functions (change work techniques) is not “real” NLP. This is similar to people who work on evolving a programming language itself vs. people who primarily use the language to do things.

Certainly there is enormous potential benefit to developing new built-in elements, but just as in new versions of programming languages, there is often difficulty in getting the new version to be widely adopted. For example, in Python, the latest version is Python 3 which was released in 2008, but since it is incompatible with Python 2.x versions, many people have not upgraded and still teach and Python 2, such as the very popular book for beginners Learn Python the Hard Way.

Similarly in NLP, the meta-model was based on linguist Noam Chomsky’s model of transformational grammar, and some people have argued that a new meta-model based on the latest linguistic models should be adopted (which model exactly is a fierce debate). But since a new meta-model would be incompatible with the old one, and the old one has proven useful, most people have not updated their NLP teaching to reflect new models in linguistics.

(Metaphors of Movement is in part based on new models from cognitive linguistics and the work of Lakoff and Johnson, as is Steve Andreas’ work on “scope” and “category” in his two-volume set Six Blind Elephants. Eric Robbie also claims to be informed by newer linguistic models, but unfortunately has not written a book on the subject, so his contributions remain obscure.)

Forking NLP Code

In programming, a person can choose to share their code with the world by uploading their code to a site called GitHub. Then another programmer can “fork” the code by copying it and going in a different direction with it. Quickly the code may become unrecognizable and incompatible with the original, which may still be evolving along a different path.

Similarly, in NLP many people have “forked” the code and gone in different directions with it. John Grinder developed “New Code” which emphasizes things like allowing the unconscious mind to pick a resource state instead of consciously choosing which state to anchor. Steve Andreas is critical of this general approach and finds no problem with choosing a resource state as long as a congruence or ecology check is done and any objections are integrated.

Robert Dilts has proposed an NLPII (also confusingly titled “3rd Generation NLP”), integrating Gabrielle Roth’s 5 Rhythms ecstatic dance and other somatic modalities. Some criticize this approach as not being new, or as being too eclectic, not distinguishing NLP from anything else.

These debates are inevitable when the “code” is forked.

In addition, quite a few different modalities have evolved out of NLP (infamously Francine Shapiro’s EMDR) and seldom do these approaches acknowledge the contributions of the field of NLP. Again, this is common when code is forked: people put work into modifying the code and tend to emphasize their contribution rather than the work of previous contributors to the code base they started from.

Full Stack NLP Programming

A “full stack” computer programmer has knowledge of each level of the programming “stack,” from server-side languages like Python to front-end scripting in Javascript to markup knowledge of HTML and CSS, but in reality is typically a subject expert in just one or two levels. Similarly, we could call a “full stack” Neuro-Linguistic Programmer one who has knowledge of and competence in a variety of models of change work, while still having preferences as to how they like to work, and true expertise in a limited number of models.

Extending the programming metaphor in this way allows us to conceptualize the many debates in and around NLP as just different ways of doing things, with each way having its own internal logic just as different programming languages have their own internal logic. Each way of doing things has advantages and disadvantages, and it is not necessary to try to integrate these differences into an overarching meta-narrative, only to be able to utilize different models as one deems appropriate to do so.

We should also remember of course that people are not computers. This is only a metaphor, and all metaphors have limited usefulness. There are quite a few strengths that human beings have which computers (at present) lack, and these are some of the best aspects of what it is to be a human being.