Follow Up to an Edx Discussion post : Personal Research in New Communities

I started a post in the DALMOOC discussion forums: Our course is *about* learning analysis and not Text Mining itself… This is a follow-up on the subject.

Thinking more about the topic of personal research in areas outside of one’s primary domain (teachers and data analysis or my bailiwick–graphic designers and data analysis), I wish to offer a possible origin for the phenomena I’m addressing.

Performing research in these newly emerging areas, one might find a source of information defining the use of a term. As a reasonable person, you construct a cognitive framework containing definitions, contexts, and examples. The difficulty arises when it’s not the only definition–when there exits other competing definitions and common uses within sub-communities.

Here’s an example. If you’ve ever made a web page, you might be familiar with the term ‘design pattern’. This was a big thing during the Web 2.0 phase of Internet technology. As web pages became more like ‘applications’, the design community was working very hard to create standards to define pairs of web site goals and user interface implementations. In other words, want to create a social space? Or e-commerce site? What are the user interface elements which define this activity? There were a lot of people making design pattern libraries.

The term ‘design patterns’ has a community definition at Wikipedia:

“A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise.” And a little further on this phrase is added: “The usefulness of speaking of patterns is to have a common terminology for discussing the situations designers already see over and over.”

Wow! From buildings to computers. The ‘design pattern’ seems like a great term to use to describe the nexus of concrete (no pun intended) implementations of various human behaviors within computer science and architecture. Especially from this latter quote, you might get an idea to use this term ‘pattern’ as a neutral term to use in a question, or inquiry, within the computer science community to find a solution to a problem. Something like, I’m seeing this behavior, or user pattern in my project and I wish to capture it in such and such a way using a programmed solution. In this way the term pattern refers to categories of user behavior/activity implemented in a graphical user interface (images and behaviors–like a button looks like a pill and it changes color when you click on it with a mouse pointer).

However, the computer science community also has a second meaning for the term *pattern*, and the Wikipedia community has created another page, Software design patterns, which refers to near-code-level activities. It’s not actual code,

“A design pattern is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations.”

There’s another term to describe this type of code, pseudo code. Where pseudo code would describe a specific program, The difference seems to hinge on the phrase “many different situations”. However, both definitions exist in that realm where natural language communicates objectives and implementations. In other words what’s the difference between pseudo code describing Amazon’s shopping cart, software design pattern for a shopping cart like Amazon’s and design patterns for shopping carts including Amazon’s Shopping Cart.

The software patterns page continues:

“Design patterns were originally grouped into the categories […] [and] Another classification has also introduced the notion of architectural design pattern that may be applied at the architecture level of the software such as the Model–View–Controller pattern.” [emphasis mine][1]

“Originally”, implies change (remember, this page is a community definition on Wikipedia), yet the page features a very prominent table following this sentence, organized into these categories. And, I don’t read in the piece an alternative taxology. If that’s not a sign of an idea ahead of its time, I don’t know what is.

In fact, the very notion of patterns is attributed to architect Christopher Alexander’s 1977 book [1], A Pattern Language. Fueling the battle for ownership of the term are several canonical programming texts from the 1990s with the term “pattern” right in the title. In fact, one book in particular is so influential in the world of programming, it has the nick name “Gang of Four“, referring to the book’s four authors. Seemingly, the battle over the right to define a term goes to the group with a gang.

If you’re still with me, let me conclude with this notion. I imagine a programmer, who encounters a question or line of inquiry in a community containing in it’s title the words “What’s the pattern that ..?”, with the expectation there’s a unbroken chain of reference to the Gang Of Four. Opps. No. Instead, the question goes to the architect guy. It becomes a transgression, violating a norm.

Interestingly enough the Edx course Responsible Innovation lists transgression as the fourth test in the measure of social responsibility after:

  • freedom of action/choice
  • knowledge of possible negative outcomes
  • existence of causal connections

In other words,

  • freedom of action/choice. You don’t need to be in this community (you should just do whatever it is you do, and hire someone like me)
  • knowledge of possible negative outcomes. Don’t you realize your non-normative use of the term is undermining our community (search results)?
  • existence of causal connections. The Internet is full of information (You should know better).

While these are not exact quotes of responses I’ve received in communities, they do describe the arguments I have encountered as I’ve navigated technically-focused social communities on the Internet. The takeaway is just this, don’t get yourself confused. If you’re not already heavily into the community, then you may unknowingly find yourself in the contentious East China Sea with your use of terms. You may be accused of transgressing the norm. If it’s a new-to-you web site, you may suffer immediate censorship or moderator action. In other words, you’re in a complex situation where different people may have political, professional, or personal goals–not just gaining knowledge.


[1] Wikipedia also cites an earlier work from Alexander, a 1968 paper titled “A Pattern Language which Generates Multi-service Centers”.