Tech Communities
While still in college I joined my first technical movement: object-oriented software development. At the time, C and procedural programming were still the dominant way to build commercial software. My college advisor, Doug Lea, used to tell us: “If you graduate knowing C++ and OO, you’re guaranteed a job.” This was only a few years after Adele Goldberg & friends decided to form OOPSLA, which would become the premiere conference for this movement for the next two decade.

After graduating I was fortunate to find an opportunity developing a commercial OO Smalltalk environment. My team consisted of like minded twenty-somethings with a passion for their craft and a belief we were changing the world with Smalltalk and OOAD. Those were heady days, when the talent density of the early community was at its highest, and the small size and shared knowledge of the movement allowed for creativity and rapid iteration of new ideas.

But over the next few years, I watched as everything changed. The community swelled in size, the discussions in IRC / newsgroups became diluted by newbies and recent converts, and my local bookstore suddenly had an entire shelf dedicated to OOAD (written by authors who a couple years before were not even in the community). By the time I attended the 1994 OOPSLA in Portland, I felt like I had lost a best friend: the sessions were packed not only with people at varying levels of understanding of OOAD, but also with widely varying levels of talent. I realized then: my movement had gone mainstream.

Below are the 4 phases of a technical movement:

Phase 1: Evangelism

In the early phases of a technical movement, the community is small, has a high degree of common knowledge, and an inherent belief in its shared mission. The broader technical community is generally ignorant of the movement at this phase, and there is no mainstream discussion of the underlying principles / tenets driving it. The talent density is at its highest, as the movement often attracts the best and brightest from other communities. Leaders emerge, order starts to be established, and the community starts to address the challenges confronting the adoption of its ideas.

Phase 2: Adoption

If a technical movement is successful, it will attract new converts. In the earliest stages, these new converts share a lot in common with the early adopters. But as the community expands beyond the shared knowledge and personal connections of the evangelism phase, the focus often shifts away from the advancement of the mission, and toward disseminating its tenets and shared knowledge across a broader audience. While the talent density lowers slightly, it often remains relatively high, and the fervor in the shared mission can seem undiminished.

Phase 3: Mainstream

A successful movement can eventually go mainstream, as the power of their ideas get carried far and wide. As the community grows, it becomes increasingly hard to maintain personal connections with fellow members, making it harder for the community to address pressing issues and iterate new concepts. At this stage the self-promoters and commercial entities arrive on the scene, sensing the financial opportunity. The small events and conferences supporting the movement grow in scope, and the talent density lowers as less skilled professionals from other communities jump on the bandwagon. At this phase, you will frequently find the movement in mainstream press and books, and its core tenets often are incorporated in job descriptions.

Phase 4: Abandonment

Abandonment can occur for two reason: failure of the movement tenets to be embraced by the mainstream, or widespread adoption of its beliefs. By this phase in successful movements, the bulk of the members have moved on to other communities, and the leadership often shifts to people with a financial motivation. Failed movements often have a way of lingering though, with the lack of mainstream adoption sometimes only increasing the convictions of its members. Whether a movement achieves success or failure, it like many others, now becomes waste on a mulch pile that fertilizes future new technical movements.

Rate Your Movement

Where would you rate your movement? e.g

  • Phase 1 (Evangelism): Elixir
  • Phase 2 (Adoption): S3, Clojure, Scala, cloud, wearable technologies
  • Phase 3 (Mainstream): Chef, Python, Ruby, DevOps, OpenStack, Lean
  • Phase 4 (Abandonment): Agile, Rails, PHP, Java

Inspired by watching every system admin in the U.S. change their LinkedIn job title to use the term DevOps.