Pair Programming Force Assemble!
When you are learning to code you might run into a process called pair programming.
Why would you every take a solitary pursuit such as programming and continue it in the company of another human being? What do you gain from the process of coding next to someone? For a long time the concept ran against the norm. The programmer was stronger alone. Working sans distractions from the outside world. As the computer industry struggled with the ideas that had weighed them down they began to think of another option: maybe two people can work on one problem.
It has been picked up some places, maybe not Montana yet, but make no mistake Montana is a growing tech scene and pair programming is the next wave. Montana Code School teaches through pair and mob programming, which can be a great benefit to those that are learning the art and science of the coder. To understand why pair programming can be so effective and why it has been making inroads toward the mainstream in many large companies, let’s go back in time a bit and explore.
The traditional developer model
Word association time: Developer, Computer Programming, Coder. GO!
What do you see in your head? Some guy at a desk or somebody in a dark room staring at a glowing screen? They might have a basic social issue. They may be a certified genius or a non-certified just genius. They are the rebels. The insane math wonders that built this towering empire of cards. Let’s isolate one of them. This person may be the the key to solving all the problems. Your boss pays them more because they solve them. They might be a bit hard to deal with or maybe not, maybe they are just fine. They may have a tendency towards jargon. They may have an affinity for things that use transistors.
These single individuals are the elites of our Age of Aquarius. Our metaphors for them reflect this evolution. Ninja, Wizard, Magician, unfortunately Warlock never really caught on…
There are massive storehouses full of books and how these people got where they are now. How they rose from the ranks of the plebeians to stay in five-start hotels. How they bought private planes to fly to their fifth house in the Caribbean. They are people to be envied and they got there on their own wings. They quietly remembering the American Dream while the rest of the world was busy forgetting the factories of the last century.
This Ivory Tower philosophy is where it all started out: that idea that all you needed was a single good programmer and enough time. Or that there where a few genius individuals that had the answer. They knew how to solve the problem when no one else did. They were the trailblazers. They keyed into the ideals that we prize: things like getting there on your own power, singular individuals creating great change from a single point over time. These great minds built a world that grew to expect that people like Steve Jobs, Mark Zuckerberg, and Elon Musk could answer any question and had thought of all the answers before you asked them.
These geniuses have made a few empires, yes. Empires like Google, now a subsidiary of Alphabet, inc. with it’s $690 Billion market cap. These companies have put a lot of time and energy into asking questions that needed answers and there answers have given as some insight into the future of technology. Now however, we are asking different questions.
Different questions about…
Humans and machines. Questions about long term pieces of software that are built to last. This software becomes the foundation for other pieces of software. How these bits of the world will interact together. How they do interact together. How they will interact with humans. These kinds of questions require a different approach. To answer them there must necessarily be a spreading of power as well as a pivoting of ideas. Ideas more closely aligned with people like Linus Torvalds. The broad spectrum approach to building a community around the code base that has helped make Github. These communities protect the ecosystem and help it evolve and thrive.
The latest security scare with Ethereum wasn’t stopped by special forces or a government agency. It wasn’t stopped by a single ninja hacker working for the company involved. It was stopped by the community that wanted to see Ethereum succeed. In almost direct contrast Wikipedia, the hitchhikers guide to the galaxy of our century isn’t built by expert writers and editors. It is built by a community, self-correcting and editing as they go. Checks and balances in-built into the system.
Companies like Menlo Innovations build their code exclusively in pairs. Error rates go down, code efficiency goes up and the quality of the product as well as the environment in which the product is are simultaneously elevated. Pair programming celebrates the thing that helped us get as far as we have, not our solidarity: our village.
There are some downsides.
Of course there are some downsides. Humans in our world love to put things in mutually exclusive groups. One of the most popular groups especially for developers are the contrast groups of introvert and extrovert. The struggle between the introvert and the extrovert informs the world of the developer to a great degree. It has become a badge that some wear to keep others from getting close to them. Or others use to modify their mind map to a more manageable level in a world of billions of people. A number that the human mind has a lot of trouble comprehending. With the badge of introvert you can often build out a high level of personal space, both inside your mind and without.
Pair Programming gives you less of this space. It crowds you together. You need to make mistakes and you need to be comfortable making mistakes. You need to say what you are thinking, as cool as you think it would be to read minds, humans can’t read minds right now. All of the people sitting next to you don’t know what you are thinking, you need to express what you have in your mind and work on your ability to tell a story, to create a narrative.
In this way, Pair programming closely mirrors the theatrical process. Because you have to work fluidly with other humans and be comfortable making mistakes. It is more intimate. It is more challenging in ways it is more rewarding. The focus shifts between the person that has the answer and the person that might have the answer… it creates a space where someone can be wrong, were someone can define a moment and then work through it together. each of these people have there own focus but as a whole they are focused on the same thing.
The future past of pair programming
These process are seen as new in the world of the developer, but anyone that has spent some time studying history can realize that through the cultural cycle of evolution these concepts are far from new. Storytelling, working communally, and listening to your village — these are fundamental concepts of humanity. They have kept us together as a species, to take down large animals, to plant crops in neat orderly rows, to build roads and the bricks that made those roads.
These ancient concepts are part of us, just like our mitochondria, they have traveled with us through time, they have kept us safe and now they will help to build the future. A future in which humans aside from being excluded or simply used as a resource engine for machine minds are integral and relevant.
A village, without it’s people is just a collection of empty buildings. A fire without friends gathered around it is just a dangerous situation. Let’s gather in our village and learn the complexities of this new type of fire, I think, together we can do that pretty well.