I was introduced to Dave Barry through his 'Year in Review' parody of the year's events (back when it came in print in the 'Tropic' magazine included in the Sunday Miami Herald.) I laughed and laughed, the way a Bill Bryson book might make you laugh.
He once borrowed the Oscar Meyer Weinermobile [1] to pick his son up from school.
And my wife is so used to my using one of his tropes, 'That would make a great name for a rock band', [2] that she has started predicting when I'm about to say it ('Feral chihuahuas' was the subject, but that's TMI.)
About 25 years ago, a friend offered 'Prioritize things that only happen once in life' as an idea for helping me decide whether to go to my friend's wedding or an important work event. The wedding was great, and the idea has been useful in many other situations, none more so that funerals.
"There once was the first software engineering best-selling book. It was called The Psychology of Computer Programming (Weinberg 1971). There was a peculiar idea contained among the many excellent ideas of that book. It was the idea that the task of programming should be egoless. Programmers, the author said, should not invest their ego in the product they were building.
...
What’s the alternative to an ego-invested programmer? A team-player programmer.
The team player sees the software product as a team effort and a team achievement. Error reports and reviews and questions become team inputs to help improve the product, not threatening attacks to derail progress.
...
But after further thought, this notion begins to unravel. It is all well and good to advocate egoless programming, but the fact of the matter is that human ego is a very natural thing, and it is difficult to find people who can—or even should—divorce their ego from their work.
...
A system that works will have to acknowledge fundamental human traits and work within the bounds they create. And ego is one of those traits.
"
- 'Facts and Fallacies of Software Engineering', Robert Glass, 2002
People may bring ego into programming because of some kind of pathology (eg the need to always be right or in control) but I think in many cases it's because they truly care about the work. And the problem is not that they truly care, but that there is a mismatch between the amount of influence/control/autonomy they wish to exert on their work and the amount they are actually able to exert on it.
I wasn't there, but my understanding is that essentially all programming in 1971 was done in large corporate settings or universities/research institutions. Those are environments where it's rare for any individual (even someone nominally in charge of a project) to have full creative and technical control over something, and even when they do, it only lasts as long as the project/grant or until their employer puts them on something else.
Compared to the 70s there are effectively no barriers to a passionate engineer starting their own software project as either an open source project or in their own startup, and I'd argue that those are settings where it's actually highly beneficial to bring ego into programming. It's pretty much the same notion as "founder mode" or why BDFL is one of the most popular forms of governance for FOSS.
Personally I'd recommend anybody who "brings ego" to their dayjob to take a stab at FOSS or a startup rather than trying to fit a square peg (caring a lot about their work) into a round hole (the realities of working on large projects).
Sometimes a person's dedication and care expresses itself to others as ego. Sometimes it is just ego.
I think we've all implemented some clever trick in our code that we started to feel proud of. It's hard not to do. Even if you just contribute to a small piece of the project, you still might have those instances of pride. We're all human, and it's fine to take a little motivation from your accomplishment. But hold on loosely. Be critical of your baby and be willing to throw it out if it isn't the best approach.
I used to really like driver/embedded programming because it seemed like there was a 'best approach' or idiomatic solution for most problems that eliminated ego. It felt more like electrical engineering. I often felt programmers working on higher level software treated their work like a personal art project and that turned me off from it.
The problem with "ego" as a concept IMO is that it carries negative connotations with most people and isn't exactly well-defined - some people might see it as always a bad thing (I think you might fall into this camp given that your phrasing "dedication and care expresses itself to others as ego" rather than saying it merely is ego). Personally I think that that is ego, but that ego is not necessarily a bad thing.
There is nothing wrong with taking pride in your work, nor in recognizing that you might actually be more knowledgable/skilled/correct in some particular matter than someone else and communicating that to them - as long as that sense of knowledge/skill/correctness is not misplaced, not expressed cruelly, and the actual reasoning is explained. To me, that is "good ego". But if someone thinks they always know better than someone else in all cases or isn't even willing to open discourse/explain why that's "bad ego".
I guess to me, the sentiment expressed in this article is one that I feel strays too far into the realm of toxic positivity or crabs-in-a-bucket where merely being opinionated or passionate about your work is a bad thing because sometimes other people get their feelings hurt when you explain why their approach won't work well. I just don't think being egoless is necessarily good. I certainly wouldn't sit there smiling while something I worked on for years got destroyed by other people, because it'd be impolite or egotistical to point out that they're destroying something. But of course, there is a difference between something actually getting ruined, and having a meltdown because someone started naming variable in snake_case instead of camelCase.
I would argue that in fact you do need a critical mass of ego throughout the ranks of engineers in a large organization. An engineering culture where engineers don't care inevitably leads to abdicating responsibility for overall system health and even data/workflow correctness as PMs attempt to steer the ship without understanding the implications of what they are asking for. Once this has gone on for a while, the system will be so intractably broken, and the dead sea effect will have caused such a brain drain of all those capable of fixing the problems, that at some point there's no economical path to restoring the software systems to a healthy and maintainable state. At that point you might as well just call in the private equity guys and figure out how to extract maximum cash out of the business as it stands, because any code change becomes more likely to break more things than it improves.
So yeah you need ego. That said, it must also be tempered with the reality of needing to compromise enough to satisfice all stakeholders (including both technical and business stakeholders of all the different flavors). The beautiful thing about software engineering though, is there is a reasonable amount of objective facts, metrics and tradeoffs, that given a critical mass of sufficiently skilled and mature engineers, common ground tends not to be too hard to align on. Or at least, far easier than to get a non-technical stakeholder to understand the long-term implications of a bad decision.
To make the best work you have to take pride in it. This work has my name on it, customers will use it, I want to improve their lives not make them worse.
The developers who come after me will need to assimilate this work. They'll need to build on it. I want to make their work a joy, not a burden.
Do I take pride in what I do. It's not enough that the code just compiles.
Pride is balanced by humility. I'm prepared to defend my choices (with well informed, well experienced) answers. But the choices I make are always a balance of upside and downside. And over my career things have changed which reweights some of those decisions. I'm open to external input from others because I want the result to be good not me to be right.
I want to be proud of my work. But I'm humble enough to let others help me to improve it.
The ego is, indeed, referred to in a negative sense because most people do not sublimate it to serve the group. It's natural state -- and, therefore, our natural state -- is to be selfish to oneself and one's in-group.
There are 19 pairs of vice/virtue pairs in the ego. We can only decrease our ego's vice-eous tendencies by increasing our consciously manifesting compassion to everyone we encounter. It also helps to contact our Creator and ask for guidance. It awaits us in Its Unfathomable Lonliness to beseech it for help to begin and then see out the complete transformation of our ego into a selfless, servant of the happiness of others and the societies/cultures we inhabit.
That Path of Loving Service is the key to happiness, and is the opposite of narcissistic attitudes and bahaviors.
There is nothing mysterious about the ego; it's just that willful ignorance is one of our heart's vices, and its purpose is to deny that each person's ego transformation is not only possible, but the source of joy and community uplift, and is our free will to choose love or any of its many selfish opposites.
Huh. I thought it was thought of negatively because people confuse the word ego (self) with egotism/conceit (exaggerated sense of self-importance).
The same sadly has happened with confusion of the word selfless (having no concern with self) with unselfish (concerned with others before oneself) and altruistic (unselfish concern for others' well being).
Personally, I don't see any incompatibility between having a sense of self and healthy self-esteem and having compassion.
Indeed, I see a major incompatibility between actual selflessness and universal compassion - as selflessness would preclude compassion for oneself.
Selflessness merely means understanding that selfless service to others' happiness is a fundamental element of the spiritual path. We do not have to love them more than ourself, just equal, but we must take the chances we get to serve their happiness as much as possible.
You're right about the negativity of the ego's self-important nature via conceit and egotism. Those are negative traits of the self. The goal of self-improvement is to become a consciously virtuous person who puts the needs of the whole in its proper place, and doesn't indulge their selfish vices, which always cause unhappiness to those around them.
Positive self-esteem, when due to being a compassionate person, is a necessary component of the self-evolving person, because honesty in grokking the truth of ourselves is an important part of our growth.
And, remember, universal compassion also includes being compassionate to our own self, and as we increase our virtuosness, we are ever more beloved by the universe, itself. The happiness on that path is not known by but a small minority of the world's cultures/societies.
Sorry I'm not writing so clearly this late in the day, but know that the ego we have a birth is mostly selfish. It takes a definite turn towards the light to begin the process of purifying it by degrees from egotist to self-actualized bearer of compassion. It's a true fight, fighting against our own fallabilities and weaknesses and selfishnesses. But it's the most worthy struggle we will ever undertake.
They’re not actually smart enough to keep track of what every other team is doing, at any point in time.
FOSS works because there’s usually only at most a few dozen balls in the air simultaneously, so someone who believes they can keep track of balls in the air gets by without looking ridiculous.
But that’s just not viable when there are hundreds or thousands of balls in the air simultaneously… their eye muscles literally couldn’t move and focus fast enough.
I think FOSS really only works well for infrastructure type of projects, things where the customers are downstream programmers or at the very least very technical sysadmin types and power users who can understand the gory details to some reasonable depth. Those projects work because they are centered around proven abstractions that are broadly applicable, thus allowing for a tight charter and some stability in requirements.
End user software by comparison, has not really been successful in the FOSS model. There have been many attempts, but they perenially lag behind commercial offerings, and thus primarily see adoption from the ideologically motivated and/or very cost sensitive users.
I've noticed that some of the worst ego-related issues arise from people who care the most about their work -- the craftspeople, if you will. There is a type of person who will pour their entire soul into creating the most ideal expression of whatever it is they are trying to do. Sometimes that level of investment is warranted and even required. But mixed together with others who don't -- or can't -- operate that way, that's what leads to trouble.
I've seen this manifest as long and scathing code reviews, attitudes of "give me that; I'll do it myself," low morale, burnout... I've never found an adequate solution. Sometimes it was my ego that was the catalyst in a situation. I recognize it now, could I have caught it earlier?
Our expertise in any kind of technical skill that allows us to participate in society is of no importance compared to our becoming a positive member of all the societies/cultures we encounter. This requires becoming a compassionate, empathetic human being via deliberate, honest, self-critical work on the areas of our personality that cause unhappiness to others via selfish negativity.
We are the only beings on Earth that can self-evolve, by using our conscience and mind to evaluate of our actions to find out where we are causing unhappiness. Then, we must engage our free will to choose to be better, and do the things that help us to grow spiritually out of the immature, selfish mammals we begin as, into the humanitarians that result from reaching our highest potential.
The most destructive lie we let our minds tell us is that this transformation is not possible, or is the figment of someone's imagination. The ego tells us this because the spiritual path entails the destruction of the negative ego. Under this existential threat, the ego defends itself like hell.
Thanks for the thanks, friend. You can find more info in my various comments in these last couple of days. I want nothing from anyone, I'm not trying to get anyone to convert to any religion or join any group. I just want you to be happy and learn how to help yourself help others. Happiness is only earned by making others happy. There are ways to help that process.
I'm not entirely convinced that ego-less is even a better way of doing things. Sure, the ego can go overboard but it also gives a sense of drive and direction. It isn't just the bad stuff. Without it, there's nobody taking ownership of the design or it's just designed by an apathetic committee.
Taking ownership is very much egoless! You are doing that for the team.
Ego would be making sure you got "your" sprint tickets done, did no code reviews, skipped the retro. I think few people do that but they will if Goodhart's Law happens.
I don't really agree with that unless you redefine the ego as being synonymous with 'being egotistical' or 'sinful pride'. You need a sense of self to feel pride and something more than base passion.
For practical purposes, if you don't acknowledge how good and bad behaviors can both spring from the same base emotions/thought processes then it's harder to grow out of the bad behaviors. You need to be able to reframe how the ego interacts with your work, not just try to kill it off.
Yes, and not thinking that one is better than anyone else. We are all equal, no matter how much better we are than another, with respect to either some job skill or even the spiritual path. Dunning-Kruger's true-experts are better than the slackers, but we must be humble to achieve that and then not be an ahole about our achievements.
It's a tricky business, being a human being, with its very many pitfalls.
The last paragraph is the interesting one, and here's the full quote in context:
One of the reasons Communism eventually failed is that it assumed that we could all accept the philosophy "from each according to his ability, to each according to his need." The assumption that we could all subjugate our needs to those of others is about as faulty as the assumption that we can subjugate our egos for the betterment of the team. A system that works will have to acknowledge fundamental human traits and work within the bounds they create. And ego is one of those traits.
When you mean incentives - do you mean the threat of starvation or the promise of a glittering palace?
Perhaps the disconnect between effort and outcome was a factor, though as discussed above don't under estimate the satisfaction of a job well done.
I think it's more likely to be the centralized decision making, and how the people who make those decisions get chosen. A centralized system where people are choosen based on political ability/connections is likely to lead to corruption and mediocrity.
Note the above problem can happen in other systems as well - I'm not sure US politics is operating well at the moment for example.
The failure in this paragraph is that our highest and most important ability as human beings is to self-evolve ourselves out of our selfish ego into its selfless version.
That paragraph is as completely wrong in its understanding of human nature as a paragraph can be. Yes, it is difficult, but we are all capable of choosing to put ourselves through this self-evolution of our ego's vices into their corresponding virtues.
First of all, be it "self-modification". We all have some hopes about that, if we care enough. (Self-evolution implies playing with genes as species, which is a dangerous business.)
As I personally caught the last chance to see a country promoting the selfless version, my stance is that the quote is spot on.
We all have some hopes about altruism, if we care enough. But then you look around and 90% of people don't care enough. By default we want dollars to buy ourselves coca-cola and american jeans. That's how everyone was in kindergarten, and maybe <10% will attempt self-modification after they grow up. That's not enough for a system to work.
First off, you are right about the "90%". The breakdown is that ~90% of that 90% are the uncommitted "confused by confusion" folks. who have neither committed to trying to be virtuous, or have committed themselves to selfish evil, which account for less than 10% of that original 90%. The uncommitted (~80%) vacillate from virtue to vice in their actions depending on how their day is going; ultimately, overall, they end up acting out of selfishness, as that is our default baseline state, which is a result of our body's mammalian heritage, with its packs and squablles for power and pleasure.
Still, the odds what they are, with the negative momentum of the selfish, by either their ebbs and flows, or by their deliberate selfishness, we must become good within ourselves for our own peace and happiness and for the ripple effects our goodness will have on those around us. It does not matter that those ripples will likely not progress very far out into the populace, because we need to do it for our own peace and happiness; that is why the universe's sublime Law of Karma exists (only for we humans with our free will, conscience, and mind) to give us internal feedback as to how our treatment of others affects their happiness, positively or negatively. That is why regime dictators are never happy or peaceful, as the unhappiness of the countless folks they have oppressed comes back into their being as a force of unhappiness. Stalin may have died in his sleep, but he was NOT happy.
The most important thing to understand is that, as evidenced by our knowing of but not in-any-way understanding Dark Matter and Energy, we live in a universe we don't understand very well yet. Our souls, minds, and free wills, are parts of our multi-dimensional selves that have no direct observability in this physical world -- we can only see some bits of their effects, and only if we are very open-minded and observant. So, when I talk about self-transformation, you must understand that our soul ("energy/astral body" that we dream with and resides within our physical body's 3-space while we are conscious) is what the spiritual path evolves/changes from vice-eousness to virtue-ousness, from selfishness to selflessness, from callous disregard to compassionate, caring service.
The spiritual self-evolution of human morality happens on that plane, not in our physical body. Yeah, that's quite a leap from where common human understanding currently is, at this point in history, but the destructively selfish ignorance is so deep and pervasive in nearly every culture on Earth that an open-hearted person should wonder how deep this willful ignorance goes, and what is its source. Read my other comments to find the explanation, if you are bold enough, that is.
My humble experience is different. There is no surer way to create shitty, incoherent code, flaky tests, architecture mistakes, and Rube Goldberg machines, than when trying to satisfy various people in your org.
Junior stays a junior in my book until they learn to "satisfy code" or to bring elegance instead of primarily satisfying specific people.
If Henry Ford was listening to customers, he would start breeding a faster horse. That perfectly shows that ego can have a good side.
Re ego, I think maybe the vocabulary choice is misaligned here. Anyway, these days, "team player" is becoming a sarcastic innuendo.
A read that book a couple years ago and thought it wasn’t very good, probably the worst of the “classic” 20th century texts. The Psychology of engineering is underrated though and someone should really write a new book on it.
What I have been thinking a lot about lately is that the focus should not be on the work. The focus should be on the handoff. If you build something, the goal is to have someone else use it. The work should focus on easing that transition. If it's a technology, what do you need to characterize so that the product people can work with it? If it's a product, how do you make it easy for your customers to get it? If it's an internal tool, what context and familiarity does the user group have?
> It is all well and good to advocate egoless programming, but the fact of the matter is that human ego is a very natural thing, and it is difficult to find people who can—or even should—divorce their ego from their work.
Ironically, it's the "egoless" crowd which tends to be ego-obsessed and solipsistic. They imagine an egoless world which simply requires that everyone thinks just like me; in effect, everyone shares the same "ego"/perspective. Only in this bizarre fantasy world can we move past the ego and focus on "objective reality". Ayn Rand is an example of this worldview.
Claiming that the "egoless" crowd is egotistic, because "they want everyone to think like them" is like claiming the "tolerance" crowd is intolerant, because "they don't tolerate intolerance".
In my experience, It's both non-factual (ego-less people are the first to learn from others when poised with new ideas) and short-sighted.
There's a manifest difference between people who are naturally humble+curious, and people who are idealistically seeking an "egoless" environment. The latter is what I am referring to.
Now that you mention it, there are parallels with the "tolerance" ideologues. There are people who are naturally patient and empathetic, and then there are people who opportunistically pursue the in-vogue virtue of "tolerance", and end up practicing de facto intolerance in the process. Don't conflate the two.
I can agree that there's people who preach tolerance but don't actually seem to mean it, yeah. Have yet to see egotistical egoless-ness, but I'd suppose it'd just look like empty speech in a smilier fashion.
How predictable the ego's self-defensive reactions are. Merely encountering the suggestion that the ego is a necessary servant but a terrible master and it yelps "I'm not an egotist, you're the egotist!"
There's a complex of these passengers you can't discuss because it wakes them up and they reflexively defend themselves. They wrap themselves around your sense of truth and it's impossible to get them out.
We each have the free will to choose willful ignorance over humble learning.
You are correct, we can't "get them out"; only they can do that by exercising their free will to choose to become better human beings. We can, however, attempt to teach them with our positive ideals, attitudes, and behaviors, but we can only lead the horses' asses to water, not make them drink.
Note that we must remain humble and grateful in remembrance that we ALL used to be horses' asses, once upon a time, before we entered the Path of Love.
It is always our choice, each of us. If we want to become better, we can be, and will, if we ask for the right kind of help. If we don't give a sh_t, we will just continue being a selfish ahole. And remember that a person's religiosity has no bearing on this outcome; the truth resides in our heart's intentions and our ideals, attitudes, and behaviors towards others, where the rubber hits the road.
If our heart is aimed right, we can take advantage of religious practices to level-up, but with a callous or cruel or hateful heart, no amount of religious practices is going to do anything but cement our horrible behavior. This is because we each have the choice of how and why to behave one way or another.
The love one feels in one's heart is of little consequence if there is no selfless action in service to the loved person's happiness. It all adds up, as do all the petty callous treatments of the people in out-groups we don't give a sh_t about. And we should care about everyone; that is the way of compassion.
I recently read 'The Power Broker', Robert Caro, which describes how Robert Moses came to acquire power over park, road, bridge, and tunnel construction in New York City and State for over 40 years. There are strong parallels with the story here.
Oh man, glad I'm not the only person who won't shut up about the Power Broker. I think the best takeaway is that a bubble forms around the powerful where they cease to have to engage with the world as it is.
It's interesting to me how Moses, per Caro, moved from being idealistic to being pragmatic in ways that look like corruption to those outside the 'bubble' but look like appropriate means and measures for accomplishing one's goals if you're inside the bubble.
He came to be in possession of a great many opportunities to build, and so, to spend money, and he, using these opportunities and the money flow, over time, built a political machine for doing so in a way that benefited those who helped him, and punished those who didn't.
One could even argue (and Caro implies this) that it's a worse form of corruption because all the beneficiaries are already powerful wealthy people being further enriched. At least Tammany corruption was democratic: they needed votes, so new Irish immigrants to the Lower East Side would get a turkey, and if they were loyal, they could get a cushy job. It was a subversion of democracy, but one that required spreading the wealth around.
Because Moses never had to run for office (and the one time he did, he failed spectacularly), he pioneered a purely bureaucratic form of corruption that conspired to extract as much money from the federal and state governments as possible and pour all of it into this ever turning hamster wheel of massive public works that weren't really for the public and didn't work, but did enrich the powerful people who took part in it.
But of course you know all this already, because you read the book. Which means you also know, damn, what a good book. It's very hard not to just talk about it all the time, and drive other people crazy.
In an interview, Michael Lewis has said that he wrote 'Liar's Poker' as a cautionary tale, but it was taken as a 'How To' manual. Robert Caro has said (e.g. in 'Working') that he writes to expose how power is acquired and used in the US... which, as you say, also cuts both ways.
> Them along absolutely everyone else. ChatGPT was an iPhone moment
Nice analogy. My sense of things is that the iPhone was a win for all of its users. While ChatGPT may make some/many of its users more productive (see Ethan Mollick's work), the driving force behind 'AI! AI! AI!' in the corporate world is an executive hope that complacent AI can replace expensive people. That's not a win for all of its users.
To my mind, I'd add the heat effects of the various forms of transportation involved, both in direct contribution and the CO2 increase as a result of their use.
Not the GP, but I've moved from bi-weekly diving in South Florida and the Keys in the mid to late 90's, to once every couple of years for this reason, among others.
Even then, you could see the difference in the John Pennekamp State Park reefs from when I first snorkeled them in the 1970's.
I scrolled to find this and add my vote. 'The Making of the Atomic Bomb' is a daunting read, but it does a great job of tackling the physics, politics, project management, the difficulties, triumphs, and consequences of the bomb. I feel like reading it is part of what is necessary to understanding the 20th century.
He once borrowed the Oscar Meyer Weinermobile [1] to pick his son up from school.
And my wife is so used to my using one of his tropes, 'That would make a great name for a rock band', [2] that she has started predicting when I'm about to say it ('Feral chihuahuas' was the subject, but that's TMI.)
[1] https://www.oscarmayer.com/wienermobile/
[2] https://www.davebarry.com/gg/rockband.html
reply