Rituals are an important part of humanity. We’ve been performing them for years. They serve a purpose. They help us to form good habits. As everyday examples, you probably have rituals around brushing your teeth or around washing your hands. There are certain triggers that you use to tell you when to do these things. Sometimes it’s a time of day, or sometimes it’s an activity. You probably tend to just reflexively brush your teeth before bed or wash your hands before eating. It’s ingrained.
Climbing is full of rituals. It’s a sport where the stakes can be high and small mistakes can have big consequences. Rituals help us to build small habits that keep us safe. There are really 2 types of rituals in climbing: ones that revolve around the gear and ones that revolve around the people.
Many climbing rituals revolve around technical practices and making sure we are getting the technical details right. The most well-known ritual in climbing is around tying-in. Most climbers have their own slight variations, but the general idea is that the climber and belayer both attach themselves to the rope and then double-check each other’s knots and harnesses. There are also lots of rituals for how we build anchors and how we check them. Another important ritual is how we remove all the gear at the end of the day and descend the cliff. The idea is to make sure we are using the gear correctly.
Many of the other rituals in climbing revolve around communication. Climbers have a whole series of rituals around communication. Often the cause of an accident is not misusing gear or gear failing, but rather miscommunication. There are a whole series of very specific commands that we use when starting to climb or descend the cliff. The idea is to make sure that everyone is on the same page and knows what they are supposed to be doing.
In coding, there are also a lot of rituals, both technical and communication-related. In climbing these rituals are somewhat consolidated in that climbers generally tend to do everything similarly. There are some variations, but overall there is a group consensus on most things. In coding, every company or group tends to develop its own set of rituals. There are some rituals that get preached a lot: SOLID and TDD for example, but it seems like not everyone agrees on them.
A lot of rituals in coding revolve around the code itself and our process for generating code on an individual level. We use specific frameworks and tools, we have style guides. We have standard ways of logging data, handling errors, and managing configuration. We have rituals around how we write the code such as TDD, BDD, etc.
There are also a lot of rituals around communication and coordination. We often have some kind of version control strategy around how and when we make commits, branches and releases. We also have rituals around meetings – how often we have them, who’s invited, etc. We might also have rituals around Pull Requests, pair or mob programming, and code reviews. These are all related to how we communicate and collaborate.
Technical Versus Communication
Both technical and communication rituals are important and necessary. I am going to take a stand and say that communication rituals are often more important. Why? Well in climbing most accidents are not due to gear failure or even misuse, but more often due to miscommunication. In coding it is similar. Most bugs are not the result of a coding error, but generally the result of misunderstood or poorly defined requirements.
In both climbing and coding, clear communication is needed in addition to technical skills. It’s often easy as a climber or programmer to get sucked into the technical world, but we all need to remember that we very rarely climb or code alone. Because of that, we need to put extra effort into building up these communication rituals.