The Weak EM Will Become An NPC
AI is quietly turning some engineering managers into NPCs: useful, always available, and out of the plot the moment a real decision is needed.
Disagreements are a natural part of the software development process, whether you’re debating architectural decisions, choosing the right tools, or prioritizing features. However, conflict doesn’t have to be a source of tension—handled with the right mindset, it can lead to better outcomes and stronger collaboration. Drawing insights from Think Again by Adam Grant, this blog explores how software developers can embrace a scientific mindset in navigating conflicts. By questioning assumptions, fostering humility, and focusing on solutions rather than personalities, disagreements can transform into opportunities for growth, innovation, and improved teamwork.
Disagreements are inevitable in software development. Whether it’s debating architectural patterns, choosing what tool is right for the job or prioritizing feature sets, conflict is part of the process. But disagreements don’t have to be a source of friction—they can be the fastest path to a successful outcome if handled thoughtfully.
Having a 2 year old at home and no longer traveling for work make it harder to read as much as I’d like. However, Think Again by Adam Grant is one of my more recent reads and really changed the way I perceive conflict. The book’s core idea is to embrace the mindset of a scientist, questioning your own assumptions and being open to rethinking them.
Grant writes about how the best scientists are constantly testing their hypotheses, seeking to disprove their own ideas rather than defend them. As software developers, we often fall into the trap of attaching our identity to our solutions.
Instead, try this:
A memorable moment for me was during a debate about using Azure App Services versus Kubernetes for a scalable service. Initially, I was convinced Kubernetes was the right answer. Over time, I realized a hole in my argument— I was coming from a larger tech company and we had more resources to manage K8’s that didn’t exist at this startup. Over time, my opinion changed, as the circumstances were different.
One of my favorite concepts from Think Again is the value of confident humility—balancing conviction with curiosity. When you believe in an idea, argue for it with clarity and evidence. But also listen as though you’re actively looking for holes in your reasoning.
In practice, this means:
This approach not only improves your ideas but also builds trust. People feel valued when their perspectives are genuinely considered. Often times people become so exhausted with arguing that they can become dismissive. It’s in your best interest to proactively encourage feedback.
When disagreements escalate, it’s easy to let emotions take over. But it’s crucial to keep the focus on the problem at hand, not the personalities involved.
One tactic Grant discusses is reframing arguments as collaborative problem-solving. Instead of saying, “I think your approach won’t work,” try, “Can you explain the root of the issue you’re concerned about here?”
I found this especially helpful when I was in more of a business to business software role with rocky go-live efforts. By shifting from *“We’ve done this at other companies and it worked” *to “Can you explain how this would negatively impact your end users?”, we moved from conflict to cooperation.
Grant’s chapter on detachment resonates deeply in software development. Sometimes, despite your best arguments, the team decides to go in a different direction. It’s important to remember: your goal is the success of the project, not the victory of your idea.
This doesn’t mean you stop caring. It means you care enough to support the team’s decision, even when it’s not your first choice. Detachment lets you move forward without resentment, keeping the focus on delivering value.
One of the most liberating lessons from Think Again is the idea that changing your mind isn’t a failure—it’s growth. In software development, disagreements often highlight blind spots or reveal better solutions.
The next time you disagree, find a way to measure it. If it’s performance, measure CPU, RAM, or request duration. If it’s user behavior, agree on a conversion funnel and measure it with an experiment. When you get conclusive data, celebrate the better outcome, not winning. If your idea wasn’t the winning argument, take the time to acknowledge your coworker’s contribution to prove you wrong*.* This fosters a culture of learning and collaboration, where everyone feels safe to speak up.
Managing disagreements as a software developer isn’t about avoiding conflict—it’s about approaching it with the right mindset. By embracing humility, curiosity, and a willingness to rethink, you can turn disagreements into opportunities for innovation.
The next time you find yourself in a heated debate over whether to use tabs or spaces, remember: it’s not about winning—it’s about building the best solution together.

👋 I’m James, a seasoned backend developer with interest in crafting solutions on the C#/dotnet stack, scalability and performance challenges are my favorite. My career in software development has been a combination of startups and Fortune 500’s with startup like cultures. Mid week you’ll find me coding away, but weekends are time for fishing, hiking, boating— anything outdoors!
In my toolbox, JetBrains Rider, macOS, The Azure Cloud platform and of course the best coding language (C#) are my preferred environment. Their intuitive interfaces and powerful features enhance my developer experience.
_While I love software development, I don’t find it particularly fun in a vacuum. The projects I’ve most enjoyed in my career are those where I get interact with a team to solve new challenges— that’s why I love it here at Empower. _
What keeps me excited to come to work everyday is the fact we have a strong team based culture. Almost daily I’ll hop on a call with fellow Engineers or Product Managers to pair up on something. Culture isn’t an accident here, it’s an investment. Twice a year we bring the team together in person to get to know one another, learn what different pods are up to and form relationships.
AI is quietly turning some engineering managers into NPCs: useful, always available, and out of the plot the moment a real decision is needed.
Tech has no shortage of meetings, but the 1:1 might be the last one where the truth still shows up.
Onsites are crucial for remote teams to build strong bonds and a thriving company culture.
More in Culture & Careers