Posted by Alex Bonder ~2 minute read
Professional Ethics in Software: Why It's Easier to Criticize Than to Understand Others' Decisions
Let’s talk with technical respect

In our industry, it’s common to review a system and say something like, “this could’ve been done better.” People point out issues, criticize architectural choices, question implementation details. And more often than not, the conclusion is to rebuild everything from scratch—without first trying to understand what was done, why, and under what circumstances.

That kind of reaction may sound professional—even confident. But often, it’s not. Not because it’s wrong to highlight problems—that’s part of the job—but because doing so without context is usually a shallow way to assess a project. It’s easy to assume that what we didn’t build is wrong. It’s much harder to understand the reasoning behind a solution we didn’t design.

Judging is fast. Understanding takes effort

Almost no software is built under ideal conditions. Tight deadlines, shifting scopes, business pressures, limited resources, or external constraints often shape the outcome. Those who come later—often with more time or perspective—might see things they would’ve done differently. But that doesn’t mean what was done was wrong.

To understand, you need to ask questions that code alone can’t answer: What information was available at the time? What needs did this solution address? Were there constraints that no longer apply? Was the goal to move fast or to build something long-term?

Evaluating a system without understanding its technical, organizational, or business context is like criticizing a bridge without knowing the terrain, the budget, or the urgency behind its construction.

The risk of underestimating what came before

When “this is no good, let’s rebuild” becomes the default mindset, it’s easy to overlook real value. Even if something wasn’t built the way we’d do it today, it may still contain smart decisions, accumulated knowledge, or simply… it works.

Starting from scratch can sound cleaner, more professional. But discarding without understanding is often riskier, slower, and more expensive than adapting with care. Rewriting everything doesn’t guarantee a better outcome. Sometimes, it’s just an excuse to avoid the hard work of understanding.

That doesn’t mean we should preserve the unmaintainable. It just means we need discernment—and that only comes from looking closely.

Three team members reviewing something on a laptop, one pointing at the screen, suggesting collaborative debugging or decision-making.
Close-up of Python code on a laptop screen, highlighting a route definition and task logic, symbolizing backend planning before execution.
Professional ethics doesn’t mean staying silent—it means critiquing responsibly

Being ethical in software doesn’t mean avoiding critique. It means making it from an informed, constructive, and respectful position. It means recognizing that every line of code involved real decisions, real pressures, and real people. Not every decision was right. But few were made in total ignorance.

Ethics also shows in how we deliver a diagnosis, in the humility to admit what we don’t know, and in the ability to guide improvements without dismissing everything that came before.

How we handle this at neo301

At neo301, we value technical analysis as much as respect for previous work. When we take on a project with an existing codebase, we don’t assume everything needs to be replaced. And we don’t assume it should all be kept either. We approach it with clear, balanced evaluation. Our approach relies on three key principles:

  • Listen before acting. We talk to people who were involved, if possible. We read the code—and the project’s history.
  • Identify what works. Even when something needs to change, it helps to know what’s solid or still relevant.
  • Make balanced decisions. We assess technically and strategically what to rebuild, what to improve, and what’s already delivering value.

We evaluate with full awareness of what it means to build, maintain, and evolve software.

Sometimes, the most professional move is understanding the reasons behind a decision—before pointing out flaws.
Let’s talk with clarity, not assumptions
Alex Bonder Alex Bonder Co-founder

Experienced sales executive with a strong background in B2B enterprise SaaS and a proven track record of driving revenue growth across Latin America and the U.S. Has led high-performing sales teams in both corporate and startup environments, including roles at Mastercard and AeroMexico. Skilled in strategic planning, global account management, and go-to-market execution. Proven success scaling ARR and securing major funding rounds in fast-paced technology sectors.

Scroll Up