[HN Gopher] Don't point out something wrong immediately ___________________________________________________________________ Don't point out something wrong immediately Author : uvdn7 Score : 53 points Date : 2022-02-16 03:56 UTC (1 days ago) (HTM) web link (blog.the-pans.com) (TXT) w3m dump (blog.the-pans.com) | SideburnsOfDoom wrote: | > "feel sad" -> "eat chocolate" -> "feel good" cycle. | | > For engineers, the cycle is "see a problem" -> "spot flaws" -> | "feel good". | | Maybe I'm missing some aspect of the text? AFAIK, "feel sad" and | "eat chocolate" are different things (with a cause and effect | relationship) and "see a problem" and "spot flaws" are the same | thing expressed in different words, so what's the cycle here? | lazide wrote: | I think the second example is probably meant more as 'point out | flaws'. | | Having someone point out flaws, while sometimes an important | ingredient in actually fixing flaws, can just as or more often | be about as useful in really solving something as eating | chocolate can be in addressing why someone is feeling sad. | | Aka, not much. | financetechbro wrote: | You are overthinking it. An alternative to "spot flaw" here | would be "point out flaw". The author is just giving an example | on how engineers have a habit of pointing out flaws | kodah wrote: | I've learned to ask questions instead of utilizing call-out | culture. I can ask what some component is doing, strategy to | scale, etc... That usually works very well in place of me saying | that I perceive something is "wrong". | | Example | | I saw empathy in the tags. How does empathy apply to this post? | pjc50 wrote: | Yes, this a very good approach - it gives people the | opportunity to double check and spot it themselves, and it | gives _you_ an out if you 're wrong. Bit of the old socratic | dialogue. | imwillofficial wrote: | I'm super bad at this, great advice. | the_duke wrote: | This is the hardest lesson I had to learn in my consulting work. | It's is especially important if you are not familiar with the | full context - which is almost never the case. | | The main insight for me was that yes, things can be "wrong" due | to lack of knowledge or incompetence. Sometimes. | | But more often than not there is a good reason. Like: | | * we know this is stupid, but we had immense time pressure and | this was the only way to get it done for the deadline; we never | got the time to fix it | | * external system constraints (like legacy applications, | legal/certification requirements, ...) | | * particular domain constraints that you might not be familiar | with, and that only make sense if you know the details | | * important senior engineer X designed this and no one had the | guts to call it out as stupid | | * the company paid a lot of money for product Y, so we just had | to use it | | * a manager read a blog post on how technique Z is awesome, so he | made us do it this way | | * ... | | But you will usually not hear these reasons right away. And being | critical can easily put others in a defensive stance and make it | very hard to get that information at all. | | So my best tip is: if you spot something "wrong", don't react | immediately and _don 't interrupt_. Let the other party finish. | Make a note. Gather more information. Ask why it was done this | way, who is responsible, if it has been effective or not, and | whatever else could be relevant. | | You can still be as critical as required later. | sklargh wrote: | I now use the discovery of something obviously stupid as a | fairly reliable detection mechanism for either a broken | system/process and/or a context queue that I am missing some | larger, typically organizational, part of the picture. | | I also often use my internal voice to say "shut up and listen | to myself," when I want to immediately engage in a | conversation. | imwillofficial wrote: | Stealing this workflow! Thanks | vmception wrote: | The other side of this is how nearly every engineer is going to | trash talk the prior coders, when they inherit a codebase. | | So I already know to ignore it. | draw_down wrote: | donatj wrote: | This has been the hardest thing for me as I become more and more | ... old. I want to be like "this is wrong" "do it this way" etc. | For a while there before I realized I was burning bridges, I | was... for lack of better phrasing actively an asshole. There's | value in letting the juniors flounder a bit. | | I had a conversation with my manager about this just a couple | weeks ago. One of our junior developers was having trouble | getting his local dev environment working with a self-signed | certificate, pretty obvious problem, easy fix, and my gut wanted | to just remote control his desktop and fix it. | | My manager however was like "Let him figure it out on his own, | it'll be good for him. If he asks questions, answer them, but let | him work his way through it" - I think that's some pretty sagely | advice. | sibeliuss wrote: | I was just about to do this, but then thought to myself: wait, | see if they realize the error and fix it and then follow up. And | then opened HN and saw this post! It was a nice confirming | synchronicity. | pavon wrote: | The hardest part about this for me is that I often feel like that | is the only time I will get to chime in. If I give myself time to | think about it - whether it is important enough to discuss, and | if so how to do so productively - the conversation will have | moved on. The other party will take lack of objection as | agreement, and I'll either forget about it until the concern | becomes an actual problem (or nothing bad happens), or I'll | constantly be that guy dragging up issues that were already | "settled". | clintonb wrote: | "Think before you speak." | [deleted] | hughrr wrote: | I haven't read the article to be honest because I'm lazy and | slightly drunk but I have to agree with the title. | | You need to give people enough rope to hang themselves with so | you have a tangible reference point in which to start an opposing | argument. Broken down into an expenditure of effort consideration | it's cheaper to say I told you so then sit in endless meetings | convincing someone they're about to do something stupid. | rav wrote: | When "something is wrong" in a large system, it might not be | straightforward to say which detail is wrong exactly. | | One of the reasons that you shouldn't "point out something wrong | the moment you see it" is because there might be multiple | candidates for the "wrong" thing that needs to be addressed, and | addressing any of them is enough to make the system as a whole | "not wrong" (or at least, less wrong). | | If a colleague says something that sounds immediately wrong, try | to let them finish what they're saying and try to figure out why | it doesn't immediately seem wrong in their own eyes - it might be | that what they're saying is only wrong in the context of a larger | system, and the colleague simply has a different understanding of | the larger system from you, which causes them to not immediately | think that it's wrong. Sometimes the "actually wrong" thing might | be somewhere else in the system, and if your colleague hadn't | been allowed to finish their thought, no one would have realized | where the "actually wrong" thing is! | hyperpallium2 wrote: | Chesterton's Fence | https://wiki.lesswrong.com/wiki/Chesterton%27s_Fence | reforms should not be made until the reasoning behind the | existing state of affairs is understood | jaimex2 wrote: | If you're not dealing with an adult sure. | | Not all grown up people are adults. | draw_down wrote: | joseph8th wrote: | We had a DevOps engineer who was brutal this way. Personally I | found it only occasionally annoying, but our PM almost fired him | several times. I talked him down by pointing out that risk | aversion is a good quality in an engineer. | | When we interview for engineers, we always ask candidates if they | are risk-taking multi-taskers, because those are desirable | qualities... In some other field. | fjorde wrote: | I appreciate the sentiments. | | i think the cert for https://cieloconnects.com/ is expired. | gmfawcett wrote: | Eh, this is so contextual though. In the context of a code | review, as in the article: no, please point out an issue if you | see it, don't hold back. But raise it once, be willing to let it | go, and respect that your colleagues don't have to act on your | advice. The golden rule will get you far. | pimlottc wrote: | Even with a code review, though, you might want to wait until | you've digested the rest of the review instead of firing off a | comment. Maybe it makes sense in context. Or maybe there are | bigger fish to fry and it's not worth quibbling over small | things. | nomel wrote: | > Or maybe there are bigger fish to fry and it's not worth | quibbling over small things. | | I've taken this approach with one of our engineers, and now | we have a huge pile of "small things" that has created some | pretty serious technical debt. | | My perception is that they don't try to understand what I'm | pointing out, and come up with rational for how they have it. | I think I have a lot to learn. | jrockway wrote: | I definitely have a list of things I've let go just to be | nice that have caused production outages, consistent poor | performance, time-consuming technical debt, etc. It's great | to have a good relationship with your team, but at the end | of the day, the things that you "let go" can become reasons | not to buy your product or why new engineers won't be | productive on the codebase. | | Something I've noticed is that acquaintances will be nice | to you universally, but actual friends know when to broach | subjects that may not be considered "pleasant" or "nice". | Don't give your friends "acquaintance-level" code reviews. | jka wrote: | I'm still learning too, but I think that something I'm | trying to develop is a sense for the longer-term costs and | implications of apparent defects. | | - Is this a component that every engineer is going to | interact with and that will stay with the company for | decades? | | - Can this technical decision be reversed easily? Either in | the sense of an individual commit revert, and/or in terms | of a series of code changes? | | - Is this change likely to remain isolated to this part of | the codebase, or will the pattern infect or be copied to | other locations widely? | | It's super challenging -- and also intellectually rewarding | when you can master it and gather team consensus and | alignment. | renewiltord wrote: | This is a tooling problem. Github reviews vs. Bitbucket | reviews will show this. In Github you can write your comments | and send them all at once. Until you submit the review, you | can just edit your comments and undo them or whatever. | Lockyy wrote: | This is why I am so grateful for GitHub reviews; Being able | to group comments to fire off all at once has saved me from | this multiple times as I continue reading, realise something, | and remove a previous comment. | | In fact you reminded me of the technique right now to check | the responses and make sure nobody else had already said | this! | spockz wrote: | On the other hand, someone coming after you might read the | code in the same order and have the same wtf moment. They | may even never find that later piece you saw in the review. | So at the least it should still be a signal to the Author | that it appears strange. | mwcampbell wrote: | > Or maybe there are bigger fish to fry and it's not worth | quibbling over small things. | | This was my excuse to not be thorough when giving feedback in | code review, when I was last in a position to do so, while on | the Windows accessibility team at Microsoft. I told myself I | was on a mission to make Windows more accessible, and there | was no time to delay new features or fixes over | inconsequential things like coding style or even code | organization, as long as it worked. | | Edit: At least I didn't use that excuse when responding to | coworkers' reviews of my PRs. | blacksmith_tb wrote: | Right, I think the title should be something closer to "Don't | point out something wrong to make yourself feel | valuable/smart/etc". Obviously in lots of contexts you do need | point it out immediately (the server is down, your neighbor's | house is on fire) but when it's just giving feedback, it's good | to be helpful (even then there are times when tough love is | required, I don't feel bad about pointing out when a mistake | would have terrible consequences if it shipped). | TheOtherHobbes wrote: | I think there are status plays, and there are quality plays. | Which is which depends on the culture. | | The motivation is completely different - one is parasitic and | narcissistic, one is constructive - but they can look and | feel very similar, especially to those on the receiving end. | | I strongly suspect orgs tend towards a status culture unless | carefully steered towards quality. I haven't worked out what | the full secret is, but it may have something to do with | strongly valuing and respecting skills and input outside of | reviews, so specific criticisms aren't experienced as part of | a consistent pattern of devaluation. | jka wrote: | There's so much nuance in code review communication. The way | I'd interpret this article's advice in the context of reviews | would be: don't begin adding comments about minor annoyances | and details that you've noticed until after you've read through | most/all of the changeset and raised any more important | structural concerns first. | the_duke wrote: | M | emptybottle wrote: | I'd even suggest shedding the thought that things can be "wrong" | | "Wrong" is a subjective outlook and usually is not a helpful | conclusion. Especially if the system is already active. | | Better to discuss in detail the benefits of an alternative. | r_hoods_ghost wrote: | One thing you also have to be very careful of is pointing out a | problem or inefficiency that exists only because of work you or | your company has done. | | I have a very problematic supplier of business critical bespoke | software that we can't move away from, and the devs there have a | nasty habit of pointing out flaws in our processes, talking down | our other suppliers and making snarky comments, when those flaws | are usually either workarounds to deal with the shit system they | have developed or persist because while we would like to do | things in a more modern way we can't as we can't rely on them to | even implement an address validator that works. Frankly the only | reason they're still alive and I have a job is Covid and remote | working. | mmaunder wrote: | Point it out immediately. And work to create a culture that | understands we all share the same goal of building more robust | software. If you sense feelings are hurt, explain the common goal | and point out wins the other person has had in the past. But I'd | recommend against preemptive caution because it will add | significantly to your workload and to friction during | collaboration. It may also create an atmosphere of over abundant | caution - which is kind of awful if you've ever experienced it. ___________________________________________________________________ (page generated 2022-02-17 23:00 UTC)