Devs: improve in your role by trying a different one!

I used to be a software developer, and I believed I needed to focus solely on improving how to write code – specifically Java code.

Today, I notice the same “specialist mindset” with the software developers I work with – a narrow focus that assumes success is rooted in depth rather than breadth. But what if this mindset is limiting? What if the secret to improving as a software developer lies not in always digging deeper, but in learning something new?

Throughout history, industries that embraced cross-pollination—learning from other domains—have experienced seismic shifts in performance and creativity. This principle applies to software development as much as it does to medicine, sports, and the arts. One of the most transformative experiences for any developer is stepping out of their bubble and exploring roles directly or indirectly connected to their own: software testing, cybersecurity, project manager, business analysis, or even customer support.


Why Developers Should Step Outside Their Bubble

1. To Build Empathy for the User

When developers spend time in roles like customer support or customer experience, they gain a visceral understanding of the user’s pain points. Writing code for an abstract requirement is one thing; writing code knowing how it impacts the user’s daily frustrations is another.

Take Amazon’s early days. Jeff Bezos insisted that senior engineers spend time on the customer service hotline. The result? A team of developers who deeply understood what worked, what didn’t, and what needed fixing. It’s not a coincidence that Amazon became a global leader in customer-centric innovation.


2. To Sharpen Problem-Solving Skills

Testing is often (falsely) seen as a “lesser” role in the software lifecycle, but it’s a treasure trove of learning for developers. Testers excel in finding edge cases, thinking creatively about how software might break, and spotting patterns developers may miss.

Testing sharpens a developer’s ability to think beyond the happy path and anticipate the unexpected.

3. To Enhance Communication

Business analysis forces developers to interact with stakeholders to help them define the problem to be solved. It’s the art of bridging the gap between technical teams and non-technical decision-makers—a skill that’s invaluable in today’s collaborative workplaces.

It’s no coincidence that the most impactful innovations often come from people who can speak multiple “languages.” Steve Jobs wasn’t the best engineer or designer, but he understood both disciplines deeply enough to connect them. That’s where the magic happens.


4. To Foster Innovation

Exposure to different roles broadens a developer’s mental toolkit. By stepping into testing, they think about software from a quality assurance perspective. By engaging with support teams, they see the product from the user’s perspective. By shadowing business analysts, they understand “the why” behind “the what”.

This interplay of perspectives sparks creativity. A developer who has tested software is more likely to write resilient code. A developer who has a clear appreciation of the business problem is more likely to suggest innovative solutions.

Consider the Wright brothers, pioneers of flight. They weren’t trained engineers; they were bicycle mechanics. Their understanding of balance, aerodynamics, and mechanical systems—borrowed from the world of bicycles—gave them the insight to achieve what others could not.


The Challenges of Cross-Disciplinary Thinking

Of course, stepping outside your comfort zone isn’t easy. There’s the initial discomfort of feeling like a novice, the fear of being less productive, and the ever-present lure of sticking with what you know. But growth demands discomfort.

Take Roger Federer, who didn’t specialize in tennis until his late teens. He played football, basketball, and badminton, developing skills—footwork, hand-eye coordination, spatial awareness—that made him one of the most versatile athletes of all time. His “generalist” background didn’t slow him down; it propelled him to greatness.


How to Encourage Cross-Pollination in Software Teams

  1. Shadowing Programs: Encourage developers to spend time with testers, business analysts, and support teams. A few weeks of shadowing can offer insights that last a lifetime.
  2. Role Rotations: Implement short-term role swaps. Developers become testers, analysts, or even customer support reps for a sprint or two.

The big picture

Cross-pollination in software development isn’t just about making developers more versatile—it’s about making teams more innovative, products more user-centric, and companies more resilient.

By stepping into other roles, developers gain a deeper understanding of the ecosystem they operate in. They build empathy, enhance their problem-solving skills, and foster the kind of creative thinking that drives real progress.

Career opportunities can become limited with a blinkered career track. For example, a technology leader who can closely empathise with a wide cross-section of his or her organisation is likely to have a greater chance of success than a peer who has only been exposed to a narrow technology focus.

So, the next time you hear a developer grumble about shadowing the support team, remind them of the Wright brothers. Or Federer. Or Bezos. Because history doesn’t just reward specialists; it provides those brave enough to step outside of their narrow focus with a wider lens of understanding.