Have you ever experienced instant flow with a coworker? You’re in sync, moving quickly through work, catching each other’s mistakes, trading ideas seamlessly. You’re stretching, but the stretch is all technical, with the social aspects of collaboration chugging silently behind the scenes. It’s amazing when this happens, but hoping for lucky accidents like effortless communication isn’t the best approach to coworking. I recently completed Dev Bootcamp, a 9-week immersive course in software development that places a strong emphasis on collaborative work. Particularly in a high-stress setting like DBC where students must move from ignorance to semi-proficiency each day, I’ve found the social aspects of collaborative work to be the most critical.
For me, laying early groundwork has been the best facilitator of great communication. Here are some questions that have helped guide this process:
What are our roles? When programming as a pair, two people work on one keyboard. Even small differences in role interpretations can create a disorganized, frustrating experience. Even if less tightly coupled to a teammate, explicit definition of roles can only make for a smoother partnership.
What do we each need in order to work effectively? Maybe you need to take deep dives to understand new concepts. Maybe I need to get my hands dirty and experiment. A third team member might need to take regular steps back to check that we are on the right track. The more explicit we are about how we work best, the more our teammates will be able to give us room to do so.
How do we best communicate? Will it be easiest for you to explain your ideas verbally, or do you need to show me an example? Perhaps I prefer to draw a diagram or illustrate a concept with physical props. Especially in a domain that is not necessarily verbal (say, for example, software development), it’s important to be sensitive to this. In my experience, how well a pair communicates has a lot to do with how well they navigate the space between their ideal communication styles.
Check-in often. None of this needs to be set in stone, and what has worked for you in the past may vary across partners and projects. Touch base with team members regularly to exchange feedback.
While none of this leads directly to those immediately effortless sessions, I’ve found it extremely helpful to start from a base of common understanding. Laying groundwork for successful collaboration creates an environment where everyone can do their best work.