[HN Gopher] Egoless Engineering
       ___________________________________________________________________
        
       Egoless Engineering
        
       Author : mcfunley
       Score  : 119 points
       Date   : 2024-12-03 20:38 UTC (2 hours ago)
        
 (HTM) web link (egoless.engineering)
 (TXT) w3m dump (egoless.engineering)
        
       | datadrivenangel wrote:
       | The part about intentional team values is very good:
       | 
       | * Digs ditches. Nobody is too good for any task. * Returns
       | shopping carts (even if nobody's watching). We leave things
       | better than we found them.
       | 
       | It's amazing how most teams don't set norms/values at all!
        
         | nox101 wrote:
         | Western society (or at least USA society) seems to me to foster
         | the idea of "not my responsibility". My example would be, going
         | to a fast food place and not cleaning your table even though
         | there are trashcans and places to put your tray. Spilling
         | something and not even attempting to clean up after yourself.
         | 
         | Unions have this in spades. "My job is X, I don't do Y, in fact
         | I'm not allowed to do Y as that takes a job away from whoever
         | is supposed to do Y"
        
       | spuds wrote:
       | Really resonated with this, reminded me of the journey I went on
       | over the course of my dev career. By the end, my advice for every
       | manager was roughly:
       | 
       | * Don't add process just for the sake of it. Only add it if
       | seriously needed.
       | 
       | * Require ownership all the way to prod and beyond, no matter the
       | role. (Turns out people tend to really like that.)
       | 
       | * Stop making reactive decisions. If something bad happened on a
       | total, extremely unlikely lark, don't act like it's going to
       | happen again next week.
       | 
       | * Resist the urge to build walls between
       | people/teams/departments. Instead, build a culture of
       | collaboration (Hard and squishy and difficult to scale? Yup.
       | Worth it? Absolutely.)
       | 
       | * Never forget your team is full of actual humans.
        
         | dakiol wrote:
         | With modern team structures it's difficult to have ownership
         | all the way to prod. My team consists of: one product manager,
         | one staff engineer, one or more lead engineers, one or more
         | senior engineers, one engineering manager.
         | 
         | The PM wants his share of the cake, so any big feature needs to
         | go through his approval ("does this feature delivers value?",
         | "how many users will use the feature?", etc.)
         | 
         | The staff engineer needs to validate any design (that's his
         | job), and provide feedback if he thinks your design "sucks". So
         | if the feature ends up being successful, he gets points.
         | 
         | The senior and lead engineers need to own the design and
         | implementation details. The leads would probably want to cover
         | a good chunk of the solution so that it appears in their
         | performance review. It's gonna be though for senior engineers
         | to get a good share if the leads are already one step ahead.
         | 
         | The engineering manager will own the timeline. He will ask you
         | about estimates, but most likely you'll feel the pressure of
         | whatever imaginary deadline is set.
         | 
         | So there you are in the middle of all those people wanting
         | their share. If you don't manage to own a good chunk of that
         | work, you won't be able to show it in your perf. review. Owning
         | is hard.
         | 
         | I have to say, though, that I only have experienced this in
         | tech companies that are around 5-7 years (old enough to have
         | well established processes, young enough to still hire like
         | there's no tomorrow) and that are obsessed with FAANGs: they
         | will hire faang engineers only if they could. This mix ends up
         | badly, because suddenly every team needs to be a high
         | performing team, everyone is raising the bar and speed is
         | number one prio. When working with companies that hire no faang
         | engineers, everything feels better.
        
           | bibabaloo wrote:
           | I feel this so much. I feel like most of my job is playing
           | politics to make sure people are happy and let them feel like
           | they're adding value. Rather than shipping things to users to
           | improve the product. It's honestly so depressing. Strongly
           | considering going back to work at a small startup, to avoid
           | having to work with these layers of middlemen that really add
           | little to no value.
        
             | agumonkey wrote:
             | the one who solves this problem will flood the world with a
             | neverending wave of light..
             | 
             | every day I wonder how come I do so few now that I'm paid
             | compared to when I was jobless and hacking prototypes for
             | $0
             | 
             | finding the recipe for creating goal driven, high speed,
             | high quality, frictionless teams is a difficult quest
        
           | spuds wrote:
           | Yeah I completely agree that a lot of structures work
           | actively against this. Lot easier for me to write a bullet
           | point about it than actually implement it at a company with
           | an existing way of doing things. And I think it's almost
           | impossible to implement from the bottom up, as it often
           | requires some real process (and culture) changes.
        
         | frigidnonce wrote:
         | > your team is full of actual humans.
         | 
         | Never worked at FAANG, eh?
        
           | nox101 wrote:
           | Can you unpack your comment?
        
           | aylmao wrote:
           | I've worked at FAANG. Actual humans too.
        
         | layer8 wrote:
         | * Separate bullet points by blank lines on HN. ;)
        
           | spuds wrote:
           | Yeah, I'm facepalming on that one. Thanks!
        
         | tayo42 wrote:
         | > Stop making reactive decisions. If something bad happened on
         | a total, extremely unlikely lark, don't act like it's going to
         | happen again next week
         | 
         | I hate this, like when there's an outage and the outcome is 100
         | half baked ideas that must be implemented, that just make
         | things worse to work with
        
           | spuds wrote:
           | Yeah. And all the time spent on those 100 half baked ideas
           | take away from time that could be spent working on the most
           | likely cause of the next outage. (Real forward-looking risk
           | reduction work.)
        
         | agumonkey wrote:
         | talking about ownership, I ran into some git repo with a
         | "declaration of non ownership"
         | 
         | an economy of giving in a way
        
         | aylmao wrote:
         | Recently, I was thinking plenty about trust within
         | organizations, and it resonated with me too.
         | 
         | I've worked at a few startups and have seen high-trust
         | environments lead to a lot of productivity, comfort and
         | success-- and the opposite for low-trust startups. In general,
         | I think startups tend to lean towards high-trust, especially
         | when they're small and early, but I was part of a 15-person one
         | that was quite the opposite, and it was terrible.
         | 
         | The hiring process wasn't great. Long take-home task, and that
         | was the only technical interview. A lot of talking, but not
         | much noteworthy signal on the rest. Very long wait times. Now I
         | know this is a red flag for low-trust companies. If they're not
         | building trust at the hiring-stage, it means even after joining
         | the organization it'll take time to acutally "be part of the
         | team".
         | 
         | Once at the company, I had no permission to poke around--
         | everything was hidden by default. There was no space for
         | discussion, I was expected to learn, not to comment. There was
         | plenty of micro-management; after all, if they don't trust you,
         | they need to keep an eye on you at all times. You're probably
         | doing something wrong.
         | 
         | The chasms were deep too; the company was building a web team
         | to spin a contractor's project into a full web product, and I
         | was supposed to lead it. We were disjointed from the rest of
         | the company though, and would only hear about requirements
         | through the founders. The team had interest on being more
         | involved with the main product, but management just wasn't
         | interested in making it happen, and just had us loiter around
         | for a few months until they gathered requirements, and then
         | implement some rather disjoint features.
         | 
         | The project failed. I'm working somewhere else now.
         | 
         | tldr; low-trust environments kill projects
        
           | spuds wrote:
           | Yeah, I think there's almost always a point where a company
           | decides they need to stop generally trusting their employees.
           | Then all the trustworthy ones start getting more and more
           | frustrated, or just start checking out. Agreed that most
           | startups lean towards trust. Need to keep that going as long
           | as possible, and stay away from hiring managers who think
           | their primary job is "protecting" the company from anyone who
           | might make a mistake.
        
         | Aloisius wrote:
         | _> Require ownership all the way to prod and beyond, no matter
         | the role. (Turns out people tend to really like that.)_
         | 
         | Depends on what you mean. Individual ownership over code would
         | seem to run counter to the article - it's just another fiefdom.
         | 
         | Collective ownership? Sure.
        
       | harshaw wrote:
       | Random comment: slide 10 talks about using Twisted and then
       | adding a twisted middle layer. 2010 me (or earlier) liked Twisted
       | a ton but not sure I would have foisted this technology on a
       | development team. As a single dev doing all kinds of crazy shit
       | it (sort of) worked but was pretty hard to debug or understand.
        
       | webdevver wrote:
       | good guide for allowing everyone to walk all over you
        
         | majormajor wrote:
         | If you're a manager, you put this stuff in place in-part so
         | that everyone understands that you will be watching for
         | attempts to walk all over others.
        
         | malfist wrote:
         | Work is not a zero sum game, sometimes, everyone can win.
        
       | awesome_dude wrote:
       | This really hits
       | 
       | > Computer Scientists are also really bad at it
       | 
       | > Despite literally studying the asymptotic limits of work
       | completion under various conditions
       | 
       | There are so many times that I'm looking at the workflow thinking
       | "We know how to break this up using distributed systems
       | knowledge, why are we doing it this crazed way"
        
       | MrMcCall wrote:
       | The success of any organization depends upon each member behaving
       | selflessly to meet the needs of the group. Selfishness in any
       | organization is a parasitic drain on energy and productivity.
       | 
       | Embracing compassion for all those who drift into our orbit is
       | the only way to improve oneself in all dimensions. Compassion is
       | the common factor in virtue, and the cure for selfishness.
       | 
       | It is also the measure of every person, so once you begin
       | orienting yourself in the moral compass' proper direction, you
       | can begin to see how others are aligned or misaligned. Such
       | selfish folks are those who just don't give a damn to become a
       | better person, which would result in lessening the amount of hurt
       | they inflict on others. Treat such people as well as you can, but
       | be wary of their nature.
       | 
       | Unfortunately, very few human beings really give a damn about
       | anyone not in their in-group. Such is our baseline mammalian
       | heritage, which we must each overcome with deliberate spiritual
       | self-evolution.
       | 
       | "The Way goes in." --Rumi
        
         | aylmao wrote:
         | > Such is our baseline mammalian heritage, which we must each
         | overcome with deliberate spiritual self-evolution.
         | 
         | Personally I don't see it through such an individualist lens--
         | I think this is a collective issue that can't possibly rely on
         | an individual's "spiritual awakening".
         | 
         | As such, I think the bigger issue is that (in some cultures
         | more and some less) people are actively encouraged to compete
         | and feed their ego. At a societal level, for example, it'd be
         | easy to blame schools or parents for this kind of education,
         | but I think they're just doing what makes sense in their
         | economic environment. If the world is winner-takes-all, I can't
         | blame parents for wanting their kids to be "winners", lest they
         | are left with nothing instead.
         | 
         | Going back to the post and the way this played out at the
         | company-- it was upper-management with the wide impact their
         | decision-making has on organization as a whole, its rules and
         | procedures, that led the change. It wasn't individuals each
         | individually overcoming their own egos that led the change
         | here. Once the precedent is set up-top, and the policies are
         | changed, the rest could follow. It was top down and systematic.
        
           | MrMcCall wrote:
           | Well, the higher-ups (in all organizations) do, indeed, have
           | a greater cultural influence on the group's ideals,
           | attitudes, and behaviors. The especially problematic aspect
           | of this is that we often reward the least compassionate with
           | greater responsibility. That is backward thinking from
           | backward-facing people.
           | 
           | If a person wants more power so they can enjoy such "fruits"
           | (more money, control over other people, more pleasures, ...),
           | then they will support people who exemplify those negative
           | characteristics. Believe me when I say that despots don't
           | gain power without significant support from other low-virue
           | folks. That is really the story of human history.
           | 
           | But, no, it is each person's personal responsibility to seek
           | and attain some measure of spiritual growth, with humility,
           | honesty, perseverance, and study. Just like a CEO with bad
           | personality traits will cause negative downstream effects,
           | any individual with those traits will poison the teams they
           | work on or whose work they affect.
           | 
           | As to competition among humans, that is just our common
           | delusion, whereby we are fearfully convinced that we are
           | merely mammals competing for scarce resources, instead of
           | human beings who are capable of cooperation, generosity,
           | compassion, and selfless service for the benefit of the
           | whole, including future generations.
           | 
           | What we are witnessing across the Earth's societies is
           | nothing less than the apotheosis of the masses' majorities
           | exercising their free will to choose ignorance over wisdom in
           | how we treat each other and what we will allow our
           | organizations (such as corps and govts) to produce. A human
           | life committed to selfish competition against other groups is
           | a life wasted on mammalian idiocy, and always results in
           | degradation of the whole.
           | 
           | Why are we not all humanitarians? Because most people reject
           | our highest possible ideals, attitudes, and behaviors. Their
           | reasons are numerous, but none hold any weight, for none will
           | bring them peace and happiness, because only by making other
           | people happy can we be happy. And we can only make other
           | people happy by giving of our selves selflessly and
           | compassionately.
        
       | mattcaldwell wrote:
       | Lots of people in the comments exemplifying why I would never
       | want to work with them.
        
         | lijok wrote:
         | There is currently literally 1 comment disagreeing with some of
         | the points in the article.
         | 
         | Are you saying you wouldn't want to work with anyone that
         | agrees with the points in the article? If so, it would be
         | interesting to hear your thoughts.
        
       | instalabs wrote:
       | > So that was a high-level overview of how all struggling
       | companies are unique. But they're also all the same.
       | 
       | Reminds me of Tolstoy's "Happy families are all alike; every
       | unhappy family is unhappy in its own way."
        
       | claytongulick wrote:
       | Was an interesting discussion, but lost me with the sort of
       | pointless Musk bashing near the end.
       | 
       | I remember back in the late 90's and early 2000's it was
       | similarly cool to bash anything related to Microsoft.
       | 
       | I spent a good bit of time writing a lengthy comment on slashdot
       | about "Why to code". It was fairly poignant and well-received,
       | except at the end of it I took a low effort pot-shot at Microsoft
       | - because it was cool to do at the time.
       | 
       | Someone replied and (rightly) called me out on it. Why muddle an
       | otherwise interesting talk / piece with a cheap, drive-by swipe?
       | 
       | That was nearly twenty years ago, but let's call this comment me
       | paying it back (if the author reads HN).
        
         | zomglings wrote:
         | Where was the Musk bashing? I didn't see that in the slides.
        
           | simonw wrote:
           | I had to look pretty hard to find the Musk bashing - there's
           | a (face redacted) photo of Musk carrying his sink around on
           | the slide about narcissistic personality disorder.
        
         | dpc_01234 wrote:
         | Microsoft was doing all sorts of immoral anti-competitive
         | stuff, and trying to strife free and open source movements to
         | protect their monopoly. They deserved the hate. They came
         | around and complaining about them mostly stopped.
        
       | vitaminCPP wrote:
       | Is there a video of the talk somewhere ?
       | 
       | I prefer recording over slides.
        
         | mcfunley wrote:
         | Unfortunately no, I've only done it as a private event within a
         | company so far.
        
       | nvartolomei wrote:
       | How does something like this scale for more than 10 people? 100?
       | 1000?
        
         | awesome_dude wrote:
         | This is the problem all medium to large businesses face - red
         | tape, faceless bureaucracy overloads the system
         | 
         | Every. Damned. Time.
        
       | lijok wrote:
       | Most of the issue exemplified in the article arise due to a lack
       | of domain expertise, not ego. Parochialism, maybe, as it relates
       | to lack of expertise. We fear what we do not understand, which
       | translates into domain ownership and controls over guardrails.
       | 
       | The productivity of every single team that I've been apart of,
       | that shipped fast, was enabled through permission, by highly
       | experienced domain experts who knew how to build guardrails
       | instead of controls. Canary releases, monitoring and rollbacks,
       | not release managers. Automated testing, not codeowners.
       | 
       | Controls prohibit actors from doing certain things. Outside of
       | regulated environments, they should only exist at the perimeter
       | of your business, interfering in the nefarious activities of
       | malicious external actors.
       | 
       | Guardrails on the other hand, guide actors in the right
       | direction. Well installed guardrails can see your legal team
       | pushing changes to your API schemas.
       | 
       | Those guardrails however take real expertise to install.
        
       | caust1c wrote:
       | This is great! The best teams I've worked on have worked towards
       | the following:
       | 
       | Pizza teams that own the whole stack, and for the roles that
       | don't need a full-time individual, specialists that come in and
       | advise but also make it possible to DIY the things they do.
       | 
       | The best examples of specialists are Designers and Security teams
       | as this talk highlights. They can make the tools and the means
       | for other teams to self-service those needs. For example,
       | security teams implementing CI tools and designers building
       | design frameworks that are easy to apply. Conversely, they can
       | feel free to make changes themselves and are empowered to at the
       | best organizations.
       | 
       | Everyone else in product development is a generalist, including
       | the managers, and everyone is on-call. When everyone is on-call
       | then it results in far fewer alerts going off because when there
       | is an issue, it's taken very seriously and remediated quickly in
       | the following days & weeks.
       | 
       | I think GTM teams could also benefit from this same kind of
       | process, but instead melding Marketing, Sales and Support roles
       | and responsibilities.
       | 
       | My theory on why this wasn't more common in the past was that the
       | work was too complex and specialized and that the tools and
       | knowledge to do the job weren't as easy to acquire as it is
       | today. LLMs have certainly leveled the playing field immensely in
       | this area and I'm truly excited to see the future of work myself.
        
       | dpc_01234 wrote:
       | The stab at Musk seems out of place. You might not like him, or
       | his politics, but he took over and reformed a slow and bloated
       | place, and despite all the doomsayers Twitter is still working
       | and IMO better than before. And he has a solid track record of
       | delivering: finance app, electric cars, rockets. Sure he over-
       | promises and under-delivers, sometimes borderline lies, etc. but
       | there is a huge amount of wisdom behind what he's doing, and
       | you're doing yourself a huge disservice by just dismissing one of
       | the most successful technical entrepreneur of our times.
        
         | lijok wrote:
         | He did all but the Twitter takeover prior to turning shitheel.
         | And I wouldn't consider Twitter reformed, so much as its goals
         | have changed.
        
         | psunavy03 wrote:
         | And he'd be even more successful if he didn't insist on also
         | being a complete, utter egotistical asshole. Leave whether or
         | not you agree with his policy positions aside for a moment;
         | it's fairly obvious that the guy is a complete shitheel of a
         | person who's basically the dictionary definition of "brilliant
         | asshole."
         | 
         | Steve Jobs seems to have poisoned the brains of whole huge
         | swathes of people into thinking that "being an asshole to
         | others" == "success," because it shows you're powerful enough
         | to not have to deal with the consequences or something.
        
       | psunavy03 wrote:
       | Really goes to show how the whole "I have the hardest job in the
       | company and all y'all are just morons" attitude really needs to
       | die.
        
       | 0xbadcafebee wrote:
       | [delayed]
        
       | pjmorris wrote:
       | An ageless idea...                 "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
        
       ___________________________________________________________________
       (page generated 2024-12-03 23:00 UTC)