The Inevitable Technology Debate
One of the great challenges in software engineering is that we are not merely dealing with algorithms and data structures. We are dealing with people who write, maintain, and argue about them. Whether it is a new employee advocating for a technology they used in a previous role, a recently released framework that people are eager to learn, or a tool that simplifies implementation, these conversations are inevitable.
As engineers, our job is to create value with the end goal of generating impact. At the end of the day, it is not always about which tool we use but how we wield it to make a difference.
Technical Decisions Are Not Just About Technology
When evaluating technology stacks, everyone on the team will have an opinion. Each language and framework has its strengths, shaped by experience, preference, and the specific demands of a project. If you are working on a sub second financial technology product, C++ has clear advantages when implemented correctly. But choosing the best tool is not just about performance or efficiency. It is about making decisions that align with business goals, support team productivity, and set the team up for success.
The Emotional Side of Technology Choices
Choosing a technology is not just a technical decision. It is a personal one. Engineers often tie their identities and professional worth to the technologies they have mastered. When someone challenges a preferred stack or suggests moving away from a familiar tool, it can feel like an attack on their expertise or even their identity.
Are they the go to person for a particular technology? Have they invested significant time maintaining the part of the stack you are suggesting replacing? It is important to acknowledge these emotions rather than dismiss them. Conversations about technology choices should be handled with empathy, recognizing that people have invested years honing their skills. Encouraging open discussions where everyone feels heard can prevent resistance and lead to better decisions.
The Buy In Constraint
Years ago, I advocated for moving a middleware stack to Apache Mesos, which at the time was a competitor to Kubernetes, more Borg than Kubernetes back then. I got the middleware stack migrated and mostly working on my own, but it did not get adopted because I had not secured buy in. Along the way, I upset the team, and that was on me.
Later, I successfully pushed for Kubernetes adoption, but this time I approached it from a business and people perspective. The team was involved from the start, and buy in was secured, making implementation far smoother.
On another occasion, I pushed for migrating from a REST based application programming interface to GraphQL but backed down because the team was not comfortable with it and it would have slowed us down. Similarly, while I prefer GRPC for on the wire communication, it complicates troubleshooting and has a steep learning curve for those unfamiliar with serialization.
The lesson is that you cannot force a decision on a team and expect it to succeed. Without buy in, even the best technology is as useful as a Ferrari with no gas. If you reframe the debate in terms of business goals rather than technical specifications, you avoid ego driven arguments.
Key Questions to Ask
There are two sides to every debate, but remember that your customers do not care what framework you use.
When evaluating a technology change, ask yourself:
People fear losing status more than they desire gains. A debate over technology is rarely just about the technology itself—it is about identity, expertise, and influence. If people feel safe to debate, they are more likely to accept compromise and focus on the best decision rather than defending their own stance.
Before pushing for a decision, consider:
The People Factor: Leading with Emotional Intelligence
Approaching these conversations as a neutral mediator, which is easier said than done, helps navigate emotionally charged discussions. When emotions run high, creating psychological safety is crucial. This ensures all parties feel respected and heard.
Start with shared purpose by acknowledging that the goal is to make the best decision for the team and company. Use curiosity to explore differing perspectives rather than shutting them down. When tensions rise, step back and ask whether the conversation is being driven by ego or genuine concern for the product. Encourage open opinions while making it clear that differing viewpoints are not personal attacks.
Creating a Safe Space for Technical Debate
Avoid falling into a collusion cycle, where people seek validation only from those who share their perspective. This reinforces division instead of fostering understanding. Strong teams embrace differing opinions, knowing that healthy debate leads to stronger decisions. Keep discussions focused on problem solving rather than personal validation.
How to Handle Technology Change Proposals
Once all opinions have been heard in an open environment, you have a few options:
Giving People a Chance to Shine
When possible, allowing someone to implement a new stack that benefits the business can be a great technical challenge. Just ensure proper reviews are in place and keep new code in a separate branch until everyone is ready to merge. Even if the attempt does not succeed, the lessons learned are rarely wasted if your organization can afford the risk.
Know Your Audience
Understanding your audience is crucial when advocating for a technology change. If your organization relies heavily on key performance indicators and objectives and key results, have them ready and in context. Consider whether you need to convince only technical colleagues and leadership or also business teams. The approach should be tailored accordingly. Use technical terms when speaking with engineers, but keep them minimal when engaging with project or design teams. If your business teams rely on specific dashboards or reports, frame your proposal in terms of how those would change. When addressing executives, focus on business impact and risk rather than implementation details. Finally, always ask for explicit permission to proceed. Do not assume that posting a large merge request means everyone is informed. Seeking both approval and feedback ensures alignment across the team.
The Bigger Picture: Making Tech Decisions That Work
Technology choices reflect group identity. Engineers are not just picking tools. They are picking identities. When an engineer says, “I think we should use Go,” it is not just a suggestion. It is a declaration of intellectual alignment.
The best decision is not always the most optimal technology. It is often the one with the most advocates, the least friction, and the broadest buy in. Aligning decisions with both the rational and irrational forces that govern human behavior ensures they succeed.