Heading image for post: The Story of Hashrocket's Pairing Setup

The Story of Hashrocket's Pairing Setup

Profile picture of Chris Erin

A symbolic world.

The Morning

The metallic train rumbles past the office windows, spreading concentrated sun briefly onto a pair of developers. "Where should we begin?", asked Josh. Ah yes, beginnings; days have them, projects have them, companies have them. Our protagonist company had a beginning, no one in this room was there, and that beginning was shaped like a glass globe, molten then cool, then hot, then cold and finally formed.

Settled into this metaphorical spheroid, Josh and Jon set about their task. A single glowing flat screen provided the warmth of possibilities, absorbed by their faces, which animated their shifting eyes, left, then right, then left. From the blackness of the screen, symbols formed, at first very rapidly, then not at all.

"What are you thinking Josh?", said Jon. Josh made motions, a finger in the air to indicate he was going to write more. The symbols began to form again, rapidly. Josh's hands were resting on a set of keys and they moved with practiced coordination while the developers' eyes moved again, left, then right, then left. Jon had an identical set of keys in front of him, just resting. When Josh stopped moving, Jon began, at the same time saying, "It's like this, I think".

The symbols were grouped into larger symbols called code, the code into lines, and the lines into files that were endlessly created, removed, rearranged and changed to fit a dual purpose. The symbols should instruct a computer to do a very specific thing, and the symbols should clearly convey the instructions to a human. Josh thought through the symbols from the computer's perspective, Jon from the human's, and in tandem they spiraled towards a small set of complex instructions that satisfied both. They outlined thoughts through the act of editing code, because that was faster and clearer than talking. They had to be fast, a deadline was always approaching, and fast meant knowing a large set of movements and commands that could create, remove, rearrange and change code to fit the dual purpose.

A History

They used Vim, an ancient tool who's genesis came before either of them were born. Vim is the amalgamation of tools created when computers were not powerful and before glowing screens. Proto-developers viewed their creations on paper with ink mechanically spread over them and changes were scrupulously planned in advance to use the minimum amount of computer effort necessary. The necessity for efficiency was its power and even as computing grew this power never dissipated.

Vim had come to be regarded as a dusty curiosity buried deep within the layers of pleasantries needed for a human and a computer to work together. Glitzier tools had been developed that were more adept at easing a human into the morass of miscellany that is computer programming. These newer tools relied on pointing, not typing. Specialized pointers were created that humans moved with gentle lateral movements and sharp clicking movements. Slowly, the intelligentsia of the symbol world came to realize that writing code by pointing was just as inarticulate as humans communicating by pointing.

The protagonist company had come into being at a time of dissatisfaction. Creating art and tools through symbols was ponderous. Hundreds of symbol warriors were expected to agree on what a computer should do by pointing at it. They argued about how to point and a hierarchy of pointing masters developed. This hierarchy was determined not by how effectively they could create with pointing but by how artfully they pointed at each other.

The conceit of the protagonist company was that hundreds of symbol warriors were unnecessary, the pointing masters were unnecessary; it could all be done by two quick and practiced symbol manipulators working in tandem and communicating through actions and words. A reason for being existed, but the beginning was a hot time in this molten unshaped company and pointing and clicking was still in vogue even among these intelligent practitioners. Old habits, ya know.

It was at this time that a legend came to be. A man of rare symbolic vision was hired. The tale has been passed down by word of mouth, and with all old stories, the words have changed but the truth remains. Tim Pope walked into the coastal Floridian office one morning and said, "We shall all use Vim", and it was so.

From that time, the pointing ceased and work began in earnest to achieve ever faster rates of symbol manipulation. They decided that it was important to all agree on a large set of actions that would shorten all common tasks. Things moved quickly at this time, but with the symbolic leadership of Tim Pope, the actions formed and cooled and became accepted and known throughout the company.

The Evening

Josh and Jon were not there when these formations took place, but took comfort in the idea that a common language of creating, removing, rearranging and changing had been created and agreed upon. They learned this language, and though it evolved as all languages do, they used it to solve problems large and small, and it felt effective.

As a train crawled past in the dark of a winter evening, passengers could see through the big windows a pair of software developers staring at a glowing flat screen, each one's hands resting on a set of keys.

"Man, we got a lot done today; I'm exhausted", said Jon.

"Yeah, and we did some cool stuff too", said Josh.

"Yeah we did; same thing tomorrow?"

"For sure, see ya tomorrow, Jon."

More posts about Community