Most active commenters

    ←back to thread

    144 points ksec | 18 comments | | HN request time: 1.321s | source | bottom
    Show context
    criticalfault ◴[] No.44466573[source]
    I've been following this for a while now.

    Kent is in the wrong. Having a lead position in development I would kick Kent of the team.

    One thing is to challenge things. What Kent is doing is something completely different. It is obvious he introduced a feature, not only a Bugfix.

    If the rules are set in a way that rc1+ gets only Bugfixes, then this is absolutely clear what happens with the feature. Tolerating this once or twice is ok, but Kent is doing this all the time, testing Linus.

    Linus is absolutely in the right to kick this out and it's Kent's fault if he does so.

    replies(8): >>44466668 #>>44467387 #>>44467968 #>>44468790 #>>44468966 #>>44469158 #>>44470642 #>>44470736 #
    1. alphazard ◴[] No.44468966[source]
    > Having a lead position in development I would kick Kent of the team.

    I've seen this sentiment a lot lately. That disagreeable top performers have to be disposed of because they are "toxic" or "problematic".

    You aren't doing your job as a leader if this is your attitude to good engineers. Engineering is a field where a small amount of the people create a large amount of the value. You can either understand that, and take it upon yourself to integrate disagreeable yet high performing people into the team, paving over the rough patches yourself. Or you can oust them, and quite literally take a >50% productivity hit on your team.

    A disagreeable person will take up more of your time as a manager, but a high performer is worth significantly more of your time. When these traits co-occur in the same person, the cost-benefit is complicated. The reason we talk about this problem a lot in tech is because it is legitimately a tough call, with errors in both directions. Wishing that the right move was always as simple as kicking someone off the team doesn't make it true, although it may relieve you from having to contend with the decision.

    replies(11): >>44469067 #>>44469102 #>>44471563 #>>44472193 #>>44472275 #>>44472301 #>>44472325 #>>44472355 #>>44472556 #>>44473093 #>>44473839 #
    2. koverstreet ◴[] No.44469067[source]
    It's not one or the other.

    Ideally, you teach people how to get along better together; I think of my job as manager (and I effectively do manage a large team these days) as one of teaching and fostering good communication.

    replies(1): >>44475007 #
    3. viraptor ◴[] No.44469102[source]
    > Or you can oust them, and quite literally take a >50% productivity hit on your team.

    In a short term, possibly. But do you think bcachefs is better in the current situation than if it moved at half the speed, but without conflict? By being out of kernel it will get less testing, fewer contributions, the main developer will get some time wasted on rebasing the patch set with every release, and distros are unlikely to expose bcachefs to the user any time soon. When you're working with an ecosystem / teams, single person's performance really doesn't mean that much in the end. And occasionally Kent will still have to upstream some changes to interfaces - how likely is anyone to review/merge them quickly?

    And now, what are the chances this will ever become more than a single person project really?

    replies(1): >>44469255 #
    4. alphazard ◴[] No.44469255[source]
    It would be worse for bcachefs and the kernel if they parted ways. The Linux kernel does not have a feature complete alternative to APFS. Apple, of all companies, is beating the Linux kernel at filesystems. That hasn't happened before.

    > When you're working with an ecosystem / teams, single person's performance really doesn't mean that much in the end.

    This is demonstrably not true. Kent brought Bcachefs to fruition and got it upstreamed. Wireguard was also one guy. The cryptography used in both, also 1 guy. There's an argument to be made that given an elegant, well designed system, we should assume it came from a single or a few minds. But given a system that's been around for a while, you would be right to assume that a lot of people were/are involved in keeping it around.

    replies(2): >>44470668 #>>44471369 #
    5. viraptor ◴[] No.44470668{3}[source]
    > Bcachefs to fruition and got it upstreamed

    That may be reversed, so... wouldn't count it as a success yet. The project may not get popular adoption if people don't trust its future.

    6. rob_c ◴[] No.44471369{3}[source]
    > a feature complete alternative to APFS

    Yet Linux has better tested NFS, CEPH, a stable ZFS target... I think the opposite is still true, apples golden goose of an fs is still basically their NTFS implementation

    7. mort96 ◴[] No.44471563[source]
    You aren't making your job easier as a leader by keeping assholes who insist on causing problems and not following established process.
    8. eqvinox ◴[] No.44472193[source]
    A highly skilled but socially inept engineer is not a top performer. Interacting with others is part of their performance. Ultimately you need to look at the sum total of time, money, and outcome for the entire team; if firing a single "rockstar but asshole" developer allows the rest of your team to achieve the same productivity, you're still better off because you're saving both money and time on that person. Conversely if a single such developer can replace your entire team… sure, go for it.

    In the extreme, if bcachefs gets removed from the kernel, the productivity outcome (depending on your measure) is actually zero.

    [Ed.: also, honestly, if you need to hire a "babysitter" for such a highly skilled engineer, that is also a viable option & there shouldn't be a social stigma for that either. I wouldn't say it's the manager's job though, not to that degree at least.]

    replies(1): >>44476263 #
    9. hitekker ◴[] No.44472275[source]
    When the "top performer" destroys trust and fails to rebuild it, they shouldn't be on the team*

    Skimming over the context, Kent seems to be lying by omission in PRs and distorting the history behind the PRs. Plus fighting with what is basically his tech lead who represents the team's norms, culture, and health. I also think he's fighting in this comment section right now.

    Speaking as a former "brilliant jerk", I wouldn't trust the memory or intentions of a brilliant jerk. I wouldn't want to be looking over my shoulder for back-stabbing on my own team. I also wouldn't want my manager to get stuck in "I can fix him" mode because they're afraid of doing their flipping job: firing an employee who refuses to learn from their mistakes.

    * I'm sympathetic to contexts when the team itself is bad and the performer is actually doing better. In that case: forget their trust, the performer should either remake the team (become the manager) or leave to do better work.

    10. brookst ◴[] No.44472301[source]
    It’s no different from giving up on someone who writes terrible code or creates got hell.

    Sure, you talk to them. And sure, you explain what the problem is and treat them like an adult. But ultimately it is completely acceptable to give up.

    Peoples’ potential matters to parents, and to mentors. A high-potential, low-performing person can be a project worth taking on, but they are not an obligation in the workplace, especially for someone as senior and time-constrained as Linus.

    11. bombcar ◴[] No.44472325[source]
    If you as a manager can build trust with your high performance engineer with zero social skills, you can end up with a power combination. You protect the engineer from insane requirements and also protect the rest of the team/company from outbursts.

    I’ve seen it time and time again, sometime so much so that hiring the engineer also means hiring his handler, and everyone knows it and is ok with it - even the engineer.

    12. moomin ◴[] No.44472355[source]
    Counterpoint: every time I meet someone who is perceived this way, they’re definitely an asshole, but their “productivity” is often mostly corner-cutting. Other devs irritation with them is often conflating the technical unprofessionality with the team unprofessionality. Managers are lousy at actually judging the productivity in these situations. You 100% can ditch these people and your productivity will rise. You just won’t have some asshole claiming the credit for other people’s work anymore.

    Funnily enough, I just tracked down a problem that significantly affected the calculation of how much money something cost down to an issue one of these geniuses introduced by thinking they were too good for regular, dull, due diligence in their development practices.

    13. baobun ◴[] No.44472556[source]
    IMO it's very clear by reading a few threads that K is not just disagreeable but manipulative and disingeniuous. Bordering on gaslighting at times.

    As someone who might have fallen in your grumpy-disagreeable-senior bucket at times, that's a different story and not something I would accept.

    > I've seen this sentiment a lot lately. That disagreeable top performers have to be disposed of because they are "toxic" or "problematic".

    This is not really a relevant argument to this situation.

    14. saghm ◴[] No.44473093[source]
    In other words, the rules don't apply to people who are "top performers"? This mentality will drive out all of the other people working for you, so even ignoring the obvious issues with how enables all sorts of shitty behavior from certain people, you're going to cost yourself more from losing larger numbers of "lower performers" in the long run (unless you end up replenishing the numbers with people equally shitty or at least willing to tolerate shittiness, which I guess would explain the stories of literal cesspools that have cropped up over the years that otherwise are hard to even comprehend).
    15. motorest ◴[] No.44473839[source]
    > You aren't doing your job as a leader if this is your attitude to good engineers.

    This is precisely the mistake you are making: conflating egregious types who post code as "good engineers". They are not. They are incompetent.

    There is no engineering activity that is not driven.by teams. Being able to work effecticely in a team environment is therefore a very basic and critical skill. Those who are unable to work in a team environment are lacking a very basic and critical skill. Those who fail at this basic skill to the point they are dubbed as "toxic" end up sabotaging your whole team, needlessly creating problems to everyone around them, and preventing any collaboration to take place.

    If this problem is introduced by a single team member, it is in everyone's best interest to just cut the cancer.

    16. hinkley ◴[] No.44475007[source]
    But if you have one “top performer” who gets in the way of every other person’s productivity and buy-in, they have to go. You can’t base an organization on a bus number of one.
    17. lll-o-lll ◴[] No.44476263[source]
    Difficult people are not “assholes”. Someone saying “your engineering practices are shoddy and the quality of your code is bad” does not make them an asshole. It makes them french maybe.

    My point is that there are people low on the agreeableness scale, and they can often be exceptional engineers. You have to manage them, yes, but taking the easy way out of “i’ll sack anyone who’s prickly” will mean a shit team. You need people (or at least one), who will say “that won’t work because…” “this is bad because…” “this will fail because…”.

    replies(1): >>44476757 #
    18. jjaksic ◴[] No.44476757{3}[source]
    A person who points out flaws is not an asshole. An asshole is a person who breaks rules and who breaks trust. We're talking about the latter, not the former.