
EGO-LESS
Rebuilding Without Breaking
Why does it sting when someone rewrites your code?
It's just code. Right?
I design things. I put them in front of people. Sometimes they say "this doesn't work." And for a half-second, my brain hears "you don't work."
I write code. I ship it. Someone refactors the whole thing. And for a half-second, I feel erased.
That half-second is the ego. The rest is craft.
In 1971, Gerald Weinberg published The Psychology of Computer Programming. He coined a term: egoless programming. The idea was simple. Code should be reviewed by others. I've learned to welcome that review. Your code is not your identity.
"The whole point of egoless programming is not that you have no ego, but that you don't let it interfere with what you're trying to accomplish."
Weinberg wasn't saying don't care. He was saying separate the caring from the defending. Care about the outcome. Don't defend the path you took to get there.
The design world got there through a different door. "Kill your darlings" .. Arthur Quiller-Couch (1914), popularized by Faulkner, practiced by every designer who ever shipped something. IDEO built an entire methodology around it: prototype fast, test with real people, throw away what doesn't work. The prototype is disposable. The insight it generates isn't.
Design
- You present a mockup
- Someone says "the hierarchy is wrong"
- Your instinct: they're calling you a bad designer
- What they meant: the layout doesn't communicate priority
Development
- You ship a feature
- Someone rewrites your implementation
- Your instinct: they're saying your code was bad
- What they meant: requirements changed, or they found a simpler path
Both moments require the same skill: receiving the feedback without letting it puncture your willingness to try again. Having enough pride to put something forward you're willing to stand by. Having enough absence of ego to let someone else improve it.
Carol Dweck's work on mindset puts it in sharp relief. A fixed mindset treats ability as identity .. criticism of output becomes criticism of self. A growth mindset treats ability as something that develops .. criticism of output becomes data for iteration.
Fixed mindset: "If I have to work hard, it means I'm not talented."
Growth mindset: "If I have to work hard, it means I'm growing."
Amy Edmondson at Harvard built on this with psychological safety .. the idea that teams perform better when members feel safe to take interpersonal risks. In her study of hospital teams, the best-performing units reported more errors, not fewer. They weren't making more mistakes. They felt safe enough to surface them.
Google's Project Aristotle confirmed it: psychological safety was the single best predictor of team effectiveness. Not talent. Not process. Safety.
It's consistent: when my identity isn't at stake, I can see what's actually happening. When it is, every signal gets filtered through "what does this say about me?"
The sweet spot isn't zero ego. It's enough ego to care, not enough to break. Caring deeply about the work without fusing your identity to any single expression of it.
But ego-less can also be lazy.
Ed Catmull, co-founder of Pixar, describes the creative process as inherently painful. The early versions of every Pixar film were, in his words, "ugly babies." The team had to care enough to keep working through the discomfort, not detach from it. Pure detachment produces commodity work. The films that move people come from people who were willing to be moved themselves.
"If you aren't experiencing failure, then you are making a far worse mistake: you are being driven by the desire to avoid it."
Paul Saffo's framework: "strong opinions, weakly held." Argue your position with conviction, then drop it the moment better evidence arrives. Jeff Bezos had his own version: "disagree and commit." Different phrases, same move. The conviction isn't the problem. The inability to release it is.
Dieter Rams spent decades refining ten principles of good design. Principle ten: "Good design is as little design as possible." That requires ego .. the confidence to subtract. And then the absence of ego .. the willingness to subtract your own favorite parts.
Your first draft is a conversation opener, not a thesis defense.
The prototype isn't precious. The problem it solves is.
AI is forcing this conversation in a new way.
You write a function. An LLM rewrites it in 3 seconds. Different approach, same outcome, fewer lines. Your instinct: that should have been my solution. But the function works. Does it matter whose pattern it followed?
Egoless programming asked whether I could accept a colleague's review without defending the code as part of myself. Agent-written code adds a similar test: can I judge the patch without treating who wrote it as a judgment about my value?
The developers who thrive in this environment aren't the ones who write the most code. They're the ones who can look at output .. theirs or the machine's .. and honestly evaluate whether it solves the problem.
In Dell'Acqua et al.'s consulting experiment, participants using AI completed more tasks faster and with higher measured quality on tasks inside the model's capability frontier. Performance dropped outside that frontier, which made evaluation more important than raw tool use.
Consultants using AI completed 12.2% more tasks, 25.1% faster, with 40% higher quality. But only when they maintained critical judgment.
The design critique, the code review, and the AI rewrite all expose the same question: can you let something you made be changed without feeling like you've been changed?
Stoic writing separates choices from outcomes. That distinction helps me hear a critique without pretending I can control the response.
Buddhist writing on non-attachment gives me language for caring about work without treating it as a stable identity.
Wabi-sabi values imperfection and impermanence. I use that as a reminder that a changed design is not automatically a damaged one.
The Ship of Theseus asks what remains when each part is replaced. A software project raises a smaller version of that question after enough rewrites.
These traditions are not software methods. They are references I use when a rewrite feels more personal than it is. The practical step is simpler: separate the quality of the change from the feeling of being changed.
So. How do you care enough to make good work but not so much that criticism breaks you?
Separate the work from the worker.
"The design has a hierarchy problem" is not "you are a bad designer." Train yourself to hear the noun, not feel the verb.
Ship early, before you're proud.
If you wait until you love it, you've already fused with it. Share while it's still rough. The feedback hurts less when you know it's a draft.
Measure by outcomes, not authorship.
Did the user find the button? Did the test pass? Did the feature ship? Who wrote the code doesn't matter. What the code does matters.
Practice being wrong publicly.
The more you survive being wrong, the less being wrong threatens you. Normalize it. Make it boring. The ego can't grip something that happens every Tuesday.
Rewrite your own work before someone else does.
Go back to code you wrote six months ago. Refactor it. You'll realize: the person who wrote it was doing their best with what they knew. And you can still make it better. That's not failure. That's growth.
I'm still figuring this out.
I want to care about what I make
without needing it to stay the way I made it.
The work is not me.
The willingness to keep making it is.
References
Weinberg, Gerald. The Psychology of Computer Programming. Van Nostrand Reinhold, 1971. Dorset House (publisher)
Dweck, Carol. Mindset: The New Psychology of Success. Random House, 2006. Penguin Random House
Edmondson, Amy. The Fearless Organization. Wiley, 2018. Wiley. See also: Google's Project Aristotle.
Catmull, Ed. Creativity, Inc. Random House, 2014. Random House
Dell'Acqua et al. "Navigating the Jagged Technological Frontier." Harvard Business School, 2023. Pdf
Saffo, Paul. "Strong Opinions, Weakly Held." Coined the framework; popularized 2008. EDUCAUSE interview (1998), rc3.org (2008).
Rams, Dieter. "Ten Principles for Good Design." Vitsoe.
Mollick, Ethan. Co-Intelligence: Living and Working with AI. Portfolio, 2024. Penguin Random House