If you’re in a code-oriented meeting in which people are going over issues and you find yourself dozed off in the corner – you may have an empathy problem. Maybe you’ve never coded a REST interface before, handled the scaling issues of a database, or written the markup for a responsive website. You don’t know what pitfalls exist, what complexities often arise, or what technical challenges are present — it’s all unfamiliar and unknown. To remedy this, a colleague — Willie Miller — and I engaged in what we call “dev swap.”
Willie is an academically trained programmer and has traditionally handled the back end while I do the front end for a lot of the side projects we work on together (e.g., Boss Blueprint). In an effort to gain a better appreciation for each other’s work, we started a project in which we swapped roles; I would write the back end and he would write the front.
“The rabbit hole for front end development is way deeper than I expected. It was as if I walked to the edge of a pit, dropped a rock, and never heard it hit the bottom.”
– Willie Miller
After a few weeks of crawling through the project and helping each other out, we found that this exercise had allowed us to become more effective communicators in all of our web-based projects. If I was in a standup, I felt more engaged when listening to the back end developers explain their achievements and their pain points. I was able to ask intelligent questions and offer a different perspective on problems. Before the dev swap, I was simply thinking about lunch or what I was going to do after work. After the swap, I realized that I had not only garnered some rudimentary understanding of Ruby, but I also gained a more holistic view of the solutions that we as a team were trying to create and implement.
Obviously, there are organizational complexities to having developers swap roles. While it would not be wise to do this in the middle of a critical project, there are no doubt times when you and your team are working on a series of lower priority tasks; these are fantastic opportunities for to engage each other in different roles. You may not only gain a more cross-disciplinary team, but also that needed empathy and perspective to help your project’s goals be achieved with efficiency and elegance.