[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)