← Back to context

Comment by dahart

2 months ago

> We don't need weekly 1:1s to check on feelings.

As a manager that does weekly 1:1s, I agree with that statement. But I do need 1:1s to check on progress, uncover blockers that people haven’t surfaced on their own, make continuous small decisions, offer support, assess performance, collect status information for my manager, and last but not least give employees the opportunity to share feelings frequently. They do, and it’s not very often, but it’s important to have a dedicated place for it otherwise devs often don’t share until damage is being done.

I’ve also watched devs who didn’t have weekly check-ins go pretty far off the rails. One dev I remember would go off by himself for weeks designing clever code and over-engineering things that weren’t needed. I thought to myself that someone should be checking in with him, and then months later I got stuck doing overtime before a delivery deadline with dozens of other devs on a weekend chasing an intermittent release-only runtime crash that turns out he caused by trying to get tricky with copy constructors. A quick 1:1 could have prevented this bug that ended up costing tens or hundreds of thousands before it ever happened.

BTW, the best managers I’ve ever had were technical contributors, and they tended to be more relaxed about check-ins than the non-technical managers, in part because they had a better sense of where things sat. Personally I also feel like a better manager when I’m contributing technically to a project, and devs seem to respect that more.

> uncover blockers that people haven’t surfaced on their own

I constantly reiterate to people, whether they're reporting to me or not, that they need to speak up when there's a blocker. I feel its a very telling skill of engineers whether or not they can communicate issues in an effective manner urgently and figure out the best course of action to unblock.

I've heard tales of 300k/yr engineers that just sit there and wait for a manager to ask if they're blocked, or just sit there until they're told what to do.

  • > I've heard tales of 300k/yr engineers that just sit there and wait for a manager to ask if they're blocked, or just sit there until they're told what to do.

    This is widely presumed to reflect reality within a 1-2 degrees of separation from myself as well as from many of the people I speak to. Part of the problem is that there is always plausible deniability. Like the adage of how unwise it is to fire custodians just because you never see a mess and therefore you never actually see the custodians do anything, it may be "unwise" to lose the presence of these 300k/yr engineers just because they somehow actually keep things going smoothly.

    > I constantly reiterate to people, whether they're reporting to me or not, that they need to speak up when there's a blocker.

    This is presuming a particular/healthy culture where open communication is valued, appreciated, and not punished. This is not always the case, and an "objective description of a blocker" could result in some bruised egos where it transforms into blame upon some person or team for being or causing the blocker. People who experienced these cultures may be waiting for private conversations (such as 1-on-1s) that minimizes the risk, and they may be waiting to identify you (or whomever they are talking to) as a person who could make communicate the nature of the blockage in a politically favorable or neutral manner. All of this may be happening without the people involved consciously aware of this behavior of pushing out information through private conversations. And this maintains plausible deniability for ALL parties. The person who is blocked is never identified. The person who may have been the blocker is never identified. And hopefully everything gets fixed before anything is actually worth escalating.

    • > Like the adage of how unwise it is to fire custodians just because you never see a mess and therefore you never actually see the custodians do anything, it may be "unwise" to lose the presence of these 300k/yr engineers just because they somehow actually keep things going smoothly.

      so you should keep people on pay-roll because they "might actually be doing something if you look hard enough" ...? don't think so

      > People who experienced these cultures may be waiting for private conversations

      the error is the "waiting" - if you have a problem it is your responsibility to do something about it

      1 reply →

  • > I feel its a very telling skill of engineers whether or not they can communicate issues in an effective manner urgently and figure out the best course of action to unblock.

    I could be this person that appears not communicate, but the reason is because I've never had a manager that could unblock me faster than if I didn't tell anyone and just did it myself. For the longest time, every manager I've ever had was mostly useless (for unblocking some issue), it took quite a few years before I got an EM that actually makes shit happen. Only then did it become a habit I had to break.

    It doesn't make sense to tell someone who can't or won't help you that you're blocked on something. Eventually you just default to never asking.

  • Read other comments: Even engineers with 10+ years of experience don't know how to do this, think they have it all under control, then complain that management only hindered them. And if we are talking from experience, based on mine, only 2/10 good engineers actually know how to communicate results besides just delivering code/artifacts.

    In some particular cases and SMALL groups I do think a Manager by itself is unnecessary, especially if everything is working out and they are responsible enough to present usable information to others in the hierarchy, but if not, please stop this fighting and only complain when the Manager is really annoying.

    If you think they are robbing you of valuable time, time it. Time it and tell them with hard data you're being robbed of at least a certain % of your working time, which means you can probably deliver less if they want X action from you.

  • Yes exactly! Devs resist asking for help when they need it, and this is why as a manager I have to insist on asking questions to discover blockers.

    I can see why this happens, and I was (and still sometimes I am) guilty of thinking as long as I have a little more time, I can solve the problem myself. We are all capable of figuring out how things work, we all want to learn, and we all have fears that admitting spending time spinning our wheels might reflect poorly or reveal weaknesses, and/or might be used against us in reviews.

    Part of making people feel comfortable surfacing blockers is making sure the environment is supporting that behavior. Devs need to be rewarded for working together, and rewarded for being proactive about telling their manager or the team they need help on something. If these highly paid engineers have had negative experiences in the past, they might have learned not to bring otherwise important issues to light. Occasionally there are also people who learn what they can get away with and will optimize for the minimum.

    IMO, the environment also needs to allow devs some space to go slow for a while, solve unfamiliar problems, and learn new things - so for me there’s a certain amount of being okay with blockers, when people are still being proactive. I’d rather talk about them than not and make a conscious decision, but I do try to be sensitive to what I label as blocker.

  • My personal experience is that programmers confuse what they can do today with what they can learn to do tomorrow.

    • I was perhaps a bit harsher in my comment on this thread, but I like the way you describe it better.

> But I do need 1:1s to check on progress, uncover blockers that people haven’t surfaced on their own.

That's why historically having managers being strong IC contributors remove that need because they already KNOW the progress and issues on the field.

Modern BigTech created that artificial layer of managers that need to know about all the blockers and progress, just to report it to another layer of managers. That layer is so big that they need 8 hours of meetings to sync with each other. This is purely an organizational issue.

I'm saying a lot of the managerial work is busywork that got pushed as a need by BigTech need to empire building.

  • I’m not sure this framing is accurate. Companies have always had management. All large organizations have layered management; the Catholic Church has had layered management for two thousand years; your government has layered management; all militaries have layered management; Bell Telephone and Standard Oil had layered management for a hundred years before computers in business were a thing. This is purely a function of large groups, because communication is necessary to function, and giving FAANG companies credit for it overstates their influence.

    Calling it a feature of empire building might be somewhat accurate in the sense that yes all companies and most groups aim to make money, or otherwise grow and succeed. Still, that seems like a pessimistic way to put it. Even small companies and church groups and libraries and PTA associations will have presidents & treasurers. Middle managers appear as soon as group size hits a certain limit.

    • I think what we are arguing is that yes management layers always existed.

      But the state right now is that:

      - those management layers are now more disconnected than ever from the actual work. Most managers are career managers that have given up on any actual technical work. Even if they used to be technical ICs, most bigtech actively discourage managers to do anything remotely technical. I still cannot understand this.

      - There are way more managers per IC than there ever was (Last big tech I was in, my org had ~5 ICs per manager. I couldn't believe it and have no idea what those people actually did the whole day besides meeting each other!). This is directly because Directors decide to hire Managers and have a direct incentive to grow the amount of layers and amount of people in their pyramid. Even if they don't mean to, directors and VPs are managers as well and as such they have a direct belief and incentive that more management is better.

      3 replies →

> designing clever code and over-engineering things that weren’t needed

I agree with keeping sync'd with your devs but these sorts of behaviours should be caught and corrected in code review

all your "progress updates" are in Jira and Git. Go and check. Ask questions if needed.

  • I do check, of course. As you can see from the comment you replied to, progress updates aren’t the only reason for 1:1s. But as far as updates go, questions are almost always needed, and face-to-face conversations are faster & easier for both parties, which is why we do a little bit of it each week. We cancel 1:1s when they’re not needed, and cut them short when we’re out of topics.

    Why do you assume not talking by default is better? Have you considered the downsides of your instinct to save yourself a few minutes a week? One thing a lot of devs don’t seem to realize when they push back on communication is the opportunities they’re missing to affect change in the group, to convince the managers to invest in things they need or want to work on in the future, to make changes to team communication practices, and to brag about what they’ve done, how hard they’ve worked, and what they really care about.

    • what you are describing is a team meeting.

      Yes, have them. Once a week.

      I will again say that most 1:1s are BigTech cargocult rituals where you talk about your path to the "next level" or "how are you feeling this week" but it's also a lot of project management and busywork that mainly exists because the manager is in the picture. Without so many managers most of those self-sustained meetings would go away.

      1 reply →

It is possible to move most of that discussion to required but intentional async communication.

  • Personally, I think it's good to have at least occasional 1:1s because a lot comes out informally. That said my "weekly" 1:1s with a fairly long-term manager mostly turned into more or less monthlies because we both traveled so much.

    • Is there any chance you made a typo in this comment? I'm not sure why your manager being long-term would result in less frequent one-on-ones...

  • Yes, of course, and I do use both. There are underlying assumptions in your suggestion that it’s one or the other, and that async is somehow better. It’s worth considering whether those are always true, and trying to put a finger on the specific tradeoffs, because there are both advantages and disadvantages. I’m a believer in using the right tool for the job (and also understanding clearly what the job really is).

    IMO face time is very important and serves more purposes than the explicit information transfer. It’s also a much faster, more efficient, and clearer way to have a conversation, when back-and-forth is needed (which may be more often than you assume.)

    In my experience, devs (including younger me) often argue for what’s easiest or most comfortable for themselves, but sometimes they don’t see what’s actually best for themselves, nor what’s most effective for the organization, and they sometimes don’t care what’s best for the manager. (And I’m not suggesting they should have to care what’s best for their manager, just pointing it out.) Nobody likes a budget or oversight. Nobody wants to track time and be watched, and have to explain themselves, and have to compromise in order to finish tasks. Still, having budgets are sometimes good for us and sometimes produce better results, when money is limited and when focus is needed. Budgets also inhibit risk taking, which can be good or bad, sometimes we need risks and exploratory work… so, yeah, the right tool for the job…

    • Good callout on the underlying assumption. I agree.

      And I additonally agree that people will gravitate toward comfort over the right choice.