[HN Gopher] Doing too much work on one's own before looping in o... ___________________________________________________________________ Doing too much work on one's own before looping in others Author : alokedesai Score : 326 points Date : 2022-01-25 17:39 UTC (5 hours ago) (HTM) web link (thezbook.com) (TXT) w3m dump (thezbook.com) | zachlloyd wrote: | working on the issue with the site going down. more traffic than | i expected... | mt_ wrote: | Would you consider that a mistake most engineers make? | elric wrote: | Knowing when to loop in others is one of the skills that makes a | senior engineer. Too early and you end up wasting other people's | time. Too late and you end up wasting everyone's time. Finding | the sweet spot is important, but it's also important to learn | which questions to ask. It's one of those skills that I wish | could be taught, but it seems something you have to get a feel | for over time. | alokedesai wrote: | I work at Warp (https://www.warp.dev/) where Zach, the author of | the post, is the founder. | | One practice we've gotten into the habit of is demoing projects | at standup as soon as possible. I've found this has been useful | to force myself to get to an end-to-end version of a project | sooner. This is useful not just in derisking the technical | implementation but also in getting product feedback sooner. By | playing around a live demo earlier, we often find that the | product experience needs to be refined in ways we couldn't | validate from Figma mocks alone. | uejfiweun wrote: | I feel like one of the biggest antidotes to this is just a simple | daily standup. My team does this, a daily 30 minute meeting, and | everyone says what they're working on as well as any blockers. | Seems to work very well in terms of course correction at an early | point. | jack_riminton wrote: | I think because most people give very short descriptions in | their standups i.e. "Working on x today, with a bit of y, no | blockers". Perhaps due to things mentioned in the article, | people don't want to or feel the need to invite feedback | claylimo wrote: | Where I work everyone will do their check-in but the | important part is that everyone has a different personality. | Like some people can be more confused and have a hard time | explaining or even remembering what they did before so it's | helpful to ask questions during their check-in to see if they | need help. Some people might work on the same task for weeks. | People are often afraid to ask for help. Or, maybe their task | needs to be broken into something smaller given new | information. The daily check-in is also a way for them to | connect with someone else in the team who can actually help | them. I'll tell them to either hang out at the end of standup | or schedule a meeting with each other. | | Having someone leading the standup, if done correctly, can | help hold people more accountable for what their progress is | toward the sprint goal and remove obstacles. This is one of | the responsibilities of a scrum master although you don't | need to be a scrum master at all to do this. | zachlloyd wrote: | Right, we do a standup, but if you're not careful the updates | can be generic enough like "making progress on X" where you | still end up working too long without feedback | ziggus wrote: | Why the conflation of 'engineer' and 'developer'? That's a bit | confusing. | spmurrayzzz wrote: | I'm curious, what about that semantic differentiation is | confusing for you? | | At least in my experience, "Software Engineer" is a standard | title for the kind of work the author is describing in the | article and is often used interchangeably with "Developer". | io98763 wrote: | I think they mean generally. And I tend to agree. I had | suspicions while reading it but wasn't completely sure till I | checked the Author's bio on the right. Some, if not a lot, of | it doesn't apply well if at all the the "classic" fields of | engineering, where engineers tend to be much more focused and | trained in their skills. | gfody wrote: | there's no classical software development engineering so | depending where you were trained (web startup vs. software | company vs. deep in the bowls of a huge corporation etc.) | you could have very different ideas of normal - see eg: | https://www.stilldrinking.org/programming-sucks | spmurrayzzz wrote: | This seems, at best, an anecdotal and/or an arbitrary | distinction about what qualifies as "Engineering". Software | engineering, as an applied discipline both in name and in | practice, has existed since at least the mid-to-late | 1960's. And many of the orgs in those days which adopted | that title normatively, employed many folks who were | "focused and trained in their skills" (e.g. NASA) and | worked alongside of those in the more classical engineering | domains. | | Speaking in my own experience, working closely with | hardware/mechanical/electrical folks on a novel product | line, they are exposed to a lot of the same subject matter | covered in the article. Many of the tradeoffs explored | there are absolutely relevant to the older engineering | disciplines. | jack_riminton wrote: | This is the least interesting thing in the article. It doesn't | matter. | recursive wrote: | I've never heard a difference between the two. Your confusion | is confusing. | sytse wrote: | GitLab our iteration value | https://about.gitlab.com/handbook/values/#iteration is meant to | address exactly this problem | kerneloftruth wrote: | "Looping in others" is an opportunity for others to say NO, or to | try and redirect you, or to jump (unwanted and unneeded) onto | your band wagon. If I'm working with true peers (not age or title | peers, but truly similar in talent and ability), then their early | involvement or collaboration is great. | | Generally, however, I prefer to get solutions developed to the | point where they are their own proof. It's much harder to argue | against something that's (near or entirely) completed and which | proves to work. It's fine for me to then involve others to get | their feedback, etc. | TameAntelope wrote: | Proof to whom? Shouldn't you be developing things your | customers need, not some pet project you enjoy working on for | its own sake? | gorgoiler wrote: | Solid advice. Everything is such a difficult balancing act when | you work with other engineers. I say this because at the other | end of the spectrum its really easy to land yourself and those | around you in needless drama by asking too publicly for feedback | on ideas. _Hey everyone, just wondering what our thoughts as a | team are on auto formatting the codebase / switching tabs to | spaces / repainting the bike shed?_ | | Some wise advice I once got from an engineer who has gone on to | be a stellar engineering leader: utilise the power of managers. | Good managers are drama fire breaks. They can tell you -- without | raising the emotional stakes with anyone else -- why a particular | bit of tech debt exists, whether anyone on their team is going to | be amenable to you fiddling with it, and who to work with | directly on anything likely to cause drama would it have been | more widely shared. | | Managers aren't immune to drama but the good ones can help keep | it minimised. | emptybottle wrote: | My experience is different in that large patch sets usually get a | "looks good" while smaller sets get a lot of varied feedback. | | Depending on what your personal goals are (and your tolerance for | accountability should things go wrong) doing the work up front | can be a good approach. | redisman wrote: | I think that's just because it's too much work to review so | people give up | schrodera wrote: | Going dark alone does not very often yield results - even if the | right solution comes out getting others up to speed will remove | any time gained before easily. | | Going dark as a team is a different story. | jackblemming wrote: | Why wasn't this caught by a million different processes that most | teams have? Scrum, team lead, n different managers, etc. This is | on the process, not the engineer. | denimnerd42 wrote: | we are probably hiding the work and not looping in those | mentioned precisely because it gets shut down | jackblemming wrote: | That's understandable. The nuance here is senior engineers | going off and doing things they know need to be done vs | juniors getting lost in the weeds. If you're the former, and | you're always shutdown from doing things you know are | important, you probably need to find new employment. | alanbernstein wrote: | > Internal Server Error | | I do make that mistake quite often! | iab wrote: | Inadvertently insightful | louissan wrote: | error 500 xD | mberning wrote: | Spending a few weeks on exploratory or speculative work is not | really a huge time commitment. If it was going to drag on for | months I would question it. | | I also challenge the "deliver in small PRs" idea. Yes in practice | that would be ideal. But often when you are doing something | completely off the map there is no point to submitting the PRs | for the 5 things that didn't work. The author is falling into the | same trap that scrum advocates and agilists fall into. Anything | can be broken down into teeny tiny bit size deliverables and | managed that way. Again, it would be ideal if that were the case, | but sometimes you just need to give your best engineers some time | and space to swing for the fences. | heisenbit wrote: | While this may be true there is real long term benefit gained by | me trying hard for just a little longer: It takes time to truly | understand the context and form an own point of view. I take time | to find quality reference documents. I take time to do a few | experiments. I take time to write down and order my thoughts. | Asking someone if required when I have done my homework then | yields faster and more effective responses. I get higher level | responses that complement and extend my groundwork. Even if I | believe I know the answer I find asking can help if only to | establish and deepen relationships. Ultimately it moves me in a | position where others come to me. | | Of course doing a submarine dive for weeks is never good except | to serve as a straw-man for a blog post . | TameAntelope wrote: | I'm honestly surprised Jeff Atwood's excellent blog post about | this hasn't been linked. [0] | | From his article: "It's effectively impossible to go dark if | you're practicing any form of agile software development." | | There are a _lot_ of psychological reasons to "go dark", but | very few (if any) solid business reasons. | | [0] https://blog.codinghorror.com/dont-go-dark/ | [deleted] | blindmute wrote: | I'm of the opinion that if the problems outlined in the article | happen, it was because of poorly defined work. A senior engineer | should be able to work on something with no communication for a | week and it be correct. If it isn't correct, the work was not | defined correctly prior to starting the work. Daily updates and | frequent collaboration are not the solution; they are a stopgap | masking unclear requirements. | TillE wrote: | That's basically true, but I don't think anyone has a good | general solution to unclear requirements besides constant | communication and fine-tuning, a la XP/Agile. | | I like working on a module with interfaces and behaviors which | are set in stone, but I find most of my work is a lot more | exploratory than that, so the "clear requirements" can only | come after it's about 90% done. | pcmaffey wrote: | The challenging part of this is that knowledge work is intangible | and uncertain. Showing progress is difficult, especially with low | context. So we want things to be perfect or finished or at least | to scope. There's a lot more that goes into our work than | commits, PRs, and completed tasks. | | Second, "showing your work/progress" should be async. Otherwise, | it's taxing for both parties as it requires a request and then | some sort of feedback. | | People though are generally curious and want to know what others | are working on, if they can help, how it aligns, etc. Having that | ongoing visibility into each other's progress makes it way easier | to build off each other. | | What we need is a simple, async way to share progress--outside | the scope of tasks or timelines. | babycake wrote: | To be honest, I don't think this is any of the engineer's fault. | I think we're an open creature by nature; we like to share and | explore ideas with others. | | In the corporate field, what I've observed is that deliveries are | most important. Not just any deliveries, but the project has to | be big and "impactful" (as in, other teams use it too), and you | personally have to own it. Like your name has to be attached to | it. No one is going to remember your tiny fixes here and there, | or tiny feature implementations in the larger system, even if | it's tracked in sprint. All that stuff gets looked down upon as | just 'doing your job'. | | To get any kind of recognition and ultimately, a promotion (or | better raise, better rating, better bonus, etc), we absolutely | have to clam up and take entire ownership of the work. If that's | not done, other people can swoop in and steal the work. Things | become need-to-know basis for your other fellow devs, design | meetings is just you leading them and asking if this is fine, | etc. Everyone has to know you're leading the project, and you | have to constantly enforce that knowledge to put down any attempt | at a takeover. | | I've personally witnessed this happening to an older and more | senior dev when a college graduate tried to assert himself on the | team until the senior dev fought back with office politics. | | In the end, office politics is what matters, along with your work | to back up your office political agenda. Another senior dev could | come in and take your project, claim your code is terrible and | needs a rewrite, etc. You can only win if the boss is on your | side, and that requires you to take on more than you can chew | (and of course, deliver it all) to get on the boss's good side. | | Imagine if we didn't have that kind of pressure of delivery in | the workplace just to get recognition. The first example that | comes to mind is Open source work. People just contribute, we | share and deliver openly, and as a result community projects grew | so big our entire corporate infrastructure became dependent on | it. | quickthrower2 wrote: | > Imagine if we didn't have that kind of pressure of delivery | in the workplace just to get recognition. | | While the places I have worked might have a tiny element of | this your situation sounds extreme. | | What I have seen is yes you do have to do "perception" | management to keep a pulse on "how am i rated". | | Having a few long time trusted people vouch "this person is | good" helps and all you need to do is work with them and show | that you are good, both in attitude and capability. | | However your description sounds like a dystopian "house of | cards" scenario that I would be looking for another job asap. | If the programmers are more like politicians that is very odd | and a bad sign. | babycake wrote: | I should clarify this behavior is mostly at larger | companies... and although it's my anecdotal piece, it is what | I've consistently seen at different companies and what my | friends tell me they've experienced at other large companies. | I've also worked at smaller places and this behavior was not | as prevalent since everyone knows everyone on the dev team. | | Also, at larger companies your manager tends to reorg. I've | gone through 5 managers in a single year before. And with | them goes all the goodwill you built up during that time. New | manager comes in, and it basically resets your 'perception' | factor. The old manager might tell the new manager that some | people are good, but you have to get lucky to get the new | manager to care, because they haven't seen the results with | their own eyes yet. That small time window is when it's ripe | for someone to swoop in and claim ownerships of projects, | while smooching up to the new manager. That's what happened | with the senior dev I saw, but he had aces up his sleeves. | What an epic showdown. | | Yea, I should leave probably, but it's just one burning ship | to another. That's our fundamental reality. | stephenboyd wrote: | I can't imagine anyone on my dev team or the others at my company | being able to spend multiple weeks consecutively on vaguely | defined unplanned work. We collaboratively make a plan with | product management covering many weeks of work (PI planning) with | some date commitments on milestones we expect to achieve. Anyone | spending a more than a few days on unplanned work risks making us | need to revise the plan that we all made together, so we don't | want to do that because the opportunity cost is obvious. | quickthrower2 wrote: | One way to address is for the manager to make sure the work is | chunked down. | | Where I see the mentioned problem the most is when teams are too | busy. The manager (as in team leader) is putting out fires and | does not have the time and/or will to mentor and direct the team | members that go off track. | | I think it is everyones job to make sure they are not too busy. | Being too busy for basic processes is an antipattern and flag | that things need to be reprioritised. Someone needs to walk away | from the screen (or in covid times towards it) and talk to their | boss! | kinakin wrote: | We see this with engineers of all ages, but especially with new | grads. All have just spent 16 to 22 years working under a model | where: you get an assignment, you come up with a solution, you | are marked on your result, and then you move on... | | Our education has trained us that involving others is something | done at the end. | | A lot of our new hires need help shifting their approach (and | getting over insecurities) to consider that all their products | need iterative review well before the work is complete. | mkaic wrote: | I'm not a new dev (but I am a new data scientist) and can | definitely relate to what you said. I'm so used to "if you get | stuck, just figure it out" as the norm for things I'm assigned | to do, and getting used to "I'm stuck, I should reach out to | someone who's more experienced than me" has been difficult. I'm | always afraid of inconveniencing or interrupting my higher-ups, | even though they never seem to be bothered by it. I guess it's | just an irrational social fear. | strict9 wrote: | Insightful article but surprised at the recommendations. Teamwork | is important, yes... but smaller task sizes should have been | mentioned too. | | > _Finally, after several weeks, the engineer shares an update, | and one (or many) of the following bad things transpire:_ | | Several weeks? If you are giving developers open-ended tasks that | take weeks or more to complete, imo it's asking for things to go | off the rails. | | The most effective way I've found to avoid this situation is to | ensure that worked assigned is broken down into tasks that are as | small as possible. | | When assigned work is limited to small deliverables you get | smaller PRs, limited business logic changes to get lost in, fewer | integration changes, etc. | jbay808 wrote: | I'm currently realizing that laying out a moderately complex | PCB can take more than a week, but there's not much to be | gained from breaking it up into smaller pieces. You kind of | just have to _do_ it. | bob1029 wrote: | Some problems are impossible to subdivide in a practical way. | Having a team that can respond dynamically is really the only | general solution I've ever seen. | duxup wrote: | Sometimes it is really hard to know that you've been out in the | weeds for a while until you're there. | bob1029 wrote: | I am stuck with a delicate balancing act around this one. | | Our organization arguably would not exist today if it were not | for developers doing "too much" work on things before bothering | others. Our product would certainly be worthless trash today if | we had to design by committee for every feature. We took | extraordinary risks that simply could not have been planned into | reality. Most of those risks were taken by individual | contributors without anyone being explicitly aware of the | magnitude of those risks. | | There is a price to be paid for asking permission. Especially if | your team members lack the same vision/ambition and are unable to | conceptualize the path you laid out. Clearly, this is a problem | for both parties, but it is a big reason to sometimes go off on | your own, build a whole goddamn thing in peace, and _then_ show | it to the team. When others see a _complete_ solution, even if | its not 100% what the business wanted, it makes the conversation | substantially more productive. It 's the fear of the | unknown/unseen that makes project managers nervous in my | experience. Why start a hard thing at all if the conclusion is | ambiguous at best? | | On the other hand, we lost ~4 major customers to technical | iterations over time. This was something we could have avoided by | polishing what we had at the time. Problem is, that thing we | would have polished was an abject failure in terms of strategic | sustainability for the organization and our customers at scale. | TameAntelope wrote: | I think it's telling when you call this "asking permission". | You should never need to "ask permission" to give customers | some small amount of value with a short turnaround. | pphysch wrote: | There's also the flip side to this, "doing too little work before | looping in others". Management brings overhead. Meetings bring | overhead. Not every (sub)project needs multiple ICs. | | That said, I think the E2E MVP/"tracer bullet" approach is a good | compromise. It sets a clear milestone, which could be achieved by | a single IC, but which provides something tangible for a team | effort to build on (or meets intractable obstacles and and dies | prematurely, saving everyone time before the PM engine is spun | up). | billforsternz wrote: | I chronically suffer from this problem. For example I started | working on my chess software in 2008 and just yesterday someone | raised an issue on GitHub asking me about pertft(). Gulp. | Fortunately it turned out my chess logic does pass that very | specific, very easy to check correct/not correct test. But it | would have been much better to have checked I was building on | solid ground 13 years ago! | aix1 wrote: | Sorry, what's pertft()? | | (Could be a straightforward typo, but I'm not seeing it. Also | clearly not important to understanding your point, but I'm just | very curious.) | billforsternz wrote: | Whoops perft() sorry. | escapedmoose wrote: | But I don't _wanna_ talk to the other kids. :I | emptysongglass wrote: | The longer I work in this industry the more I reflect on the | value of all this accretion of process: Agile, Scrum, PI | planning, daily stand-ups are counterproductive to real work. So | much of it, the sprints, the retroactives, the sprint planning, | feel like taking place in the stead of real work. (I reached for | the common "instead" of here but wanted to emphasize the work | being removed or substituted by not-work). | | Real, deep work, is largely a solo affair. Teamwork is trusting | your team that they will do their work. | | I can think of only two processes which truly requires | communicating over real, smell-that-earth honest work. That is: | seeking counsel and asking for help because you are well and | truly blocked. For the latter, the process of learning enough to | become unblocked, even if it takes a long time, can make the | practitioner a better software developer forever vs the shortcut | of a quick, "do you have a minute" disruption to another | developer's time. | | Gumroad's philosophy and practice of work [1] struck a chord with | me. No meetings, no deadlines. Just a commitment to production, | whatever the method, whatever the schedule. | | [1] https://sahillavingia.com/work | aetherspawn wrote: | I think this can be done on purpose though. | | In some orgs, if you don't step around the problem carefully so | as to not be "done" immediately with a proof of concept, it might | get shipped to the customer from underneath you. | thrower123 wrote: | I've never known any serious work to actually get done without | people "going dark" to actually accomplish it. | | The constant statusing that doesn't allow one four hours of | uninterrupted concentration is demoralizing and grinds progress | to a halt. There's a reason more code is authored between 9pm and | 5am than between 9am and 5pm, but that wears engineers out badly. | xbar wrote: | This is really good, but I feel like you should have come to us | with this topic sooner. | JamesBarney wrote: | > Encourage engineers to get something end to end launched | internally as quickly as possible. | | Pragmatic programmer called this a "tracer bullet". | | https://builtin.com/software-engineering-perspectives/what-a... | sdoering wrote: | I was more often than not 'guilty' of what the author describes. | And I actually love being the lone detective on the hunt for a | cool solution. | | I am not a dev by trade (data analyst) but still love to work on | problems solved in code. | | A lot of the advice hit home, but what struck me was this part: | | > Encourage engineers to get something end to end launched | internally as quickly as possible. | | This is something my boss never ceases to tell us. When we build | something we shall strive to have some first small thing end 2 | end done as soon as possible. Rough around the edges, not | refactored, code being repeated - all fine. But it has to work | end to end. | | Because we can brush it up and make it stable later. Because when | starting we only have a vague feeling for the problem space and | we need to learn the lay of the land by navigating it. | | I will always cherish this advice. | kitsunesoba wrote: | The frustrating thing is when only the first half of this | philosophy (ship now, fix/polish later) is adhered to, where | things get shipped frequently but seldom followed up on. The | incentive to finish things needs to be strong for not only the | engineers but also for the product teams and managers directing | them, but as far as I can observe this is exceptionally rare -- | in fact it almost seems like the norm for non-engineers to push | for shipping new features over polishing older ones. A lot of | the engineers I know would love nothing more than the | opportunity to polish the project they're responsible for to | perfection, but are never given the chance. | aimor wrote: | I agree, but I've also tried to polish things without a | strong need and it's difficult. The work can feel burdensome, | useless, undirected, and sometimes requires major changes | that can't be done (without inflating the scope of the work). | sdoering wrote: | I agree. I know that the freedom to create sensible | architecture is a privilege. | | Even if other things may not be perfect (but what job is | perfect in all areas), my boss knows the value of refactoring | towards a stable and maintainable architecture while keeping | a reasonable schedule for shipping. | danielmarkbruce wrote: | If you can present a metric which shows that said thing is | bad on some dimension, and explain why it's bad for the | customer (/business) and why what you will fix will improve | it, and how much work is involved, you'll have a better | chance of moving it through. | beerandt wrote: | It might be good advice, but that's not engineering in concept, | spirit, or practice of the term. | | I don't usually pick an absolute, decisive side in the "what | counts as engineering" debate, but this is the opposite of | engineering. | crehn wrote: | This should nearly always include writing integration tests | (that run on every change) to ensure you can refactor with | confidence. | | If there are no tests, the team will waste a ton of time | anxiously monitoring and reasoning about the messy code and the | impact of their changes. | sdoering wrote: | I do. I even implemented tests for tracking code to be | developed locally (including mocks). | | This way I'm able to quickly and confidently refactor as well | as add to existing tracking code (web analytics). | swagasaurus-rex wrote: | I find when this happens, it never gets refactored. The edges | can be smoothed, but the architecture is dried and hardens into | something that needs to be worked around by everybody else | touching the code. The easiest way to solve the issue becomes | the only way. | zoomablemind wrote: | Depends on a team, of course. But happens often with business | solutions. Done, whichever way. Next. It broke down in prod? | Well, go fix it, it's yours now... | sdoering wrote: | My experience differs. But maybe because I love to refactor | and create a clean architecture. | | Also I learned a lot from my boss' refactorings. Before that | I never would have imagined how far a good abstraction can be | driven. | aimor wrote: | I still find it amazing how many "first small thing end to end" | wind up being the last major version for years. That's not a | bad thing, I've grown to love it, and I think it's a tenet I | should make a more conscious effort towards. | Ensorceled wrote: | I have two big rules for developers that report to me: | | 1. The 5 minute rule. If you are stuck for more than 5 minutes | reach out. Once the developer is on the team for a while, this | becomes 15 or 30 minutes. | | Caveat ... truly stuck ... tried a couple of things, googled, | tried some more ... wondering what to try next. | | One thing I try to do with a new start is go ask them for help in | the same way, "Hey, 5 minute rule, I'm think I'm missing | something simple here." | | 2. Project Initiation Memo | | The is NOT a PRD, it is a high level "I think this is what I'm | supposed to be doing on this project and why". It might turn into | a PRD if one is warranted. It's really just a "did you understand | the problem correctly" | | I've avoided so many massive f'ups or developers drifting into | silent frustration for hours with these two rules. | ketzo wrote: | What's a PRD? | | Love the five-minute rule, by the way. I tried to apply that a | lot especially when I was just starting at my job. So many | things that I would spend two hours trying to fix, only to be | told the next day that we had a super simple internal process | to fix that thing. | Ensorceled wrote: | Product Requirements Document ... a full specification of | everything the software needs to do. | | Sometimes VERY detailed, sometimes not so much. | TameAntelope wrote: | They could probably just write this in code, and save a lot | of time. | PaulHoule wrote: | I've gotten in trouble too, particularly in open source projects, | showing off a half-baked prototype that doesn't really prove the | concept. If you need to win people over and it's a tough fight | you need to be in a strong position. | markus_zhang wrote: | Actually, if we turn the perspective and look through the | developer's eyes, the behavior makes a lot of sense. | irrational wrote: | > Throughout this initial period there are standup updates of the | form "I'm exploring X, or working through problem Y, but should | have something for others to take a look at soon" | | What is really going on is the developer has basically been given | permission to not turn anything in. They are spending maybe an | hour a day actually exploring/working on the issue and the rest | of the day they are working on their own pet projects, playing | games, watching netflix, whaterver. Heck, they might even spend | just one day doing all their "exploring" and then see how long | after that they can just show up for standup and extend out the | "exploring" phase while doing whatever they want the rest of the | day. | leeoniya wrote: | it really depends on what you're working through. | | i do this on occasion while experimenting and thinking through | an architectural design. what matters is whether the end result | is representative of the time spent on iteration and writing | thrown-away prototypes. i will often not start writing code | until a reasonable path is formed in my head, and then i may | write a prototype that doesnt work out and have to loop back | and rethink various aspects. it may take a week with nothing | but vague updates in daily standups, but then something awesome | to show that has gone through a bunch of private "pre-alphas". | | > For more senior engineers, it can happen because they like to | work on their own and may be overconfident in finding | solutions. | | this really only applies if you: | | A) dont have a history of delivering quality solutions to non- | trivial problems | | B) refuse to ask for help/feedback when you actually need it | | typically, the rest of the team is working on other things. | there would be little value in me pushing various crappy | prototypes just for the sake of providing updates that only | serve to distract people with information that will be out of | date in 24hrs. "too many cooks in the kitchen" is a real thing, | too. | salt-thrower wrote: | I think that's an overly harsh take. I've fallen prey to the | pattern the author describes many times, and I inevitably end | up making updates like that because I feel bad that work isn't | getting done, which fuels a procrastination doom loop of | anxiety and avoidance until I rip the bandaid off and hustle to | make up the missing work. | | It sounds like you've never experienced this, and that's great | for you, but don't discount what the author is saying. It rings | uncannily true to me, and it sucks when it happens. | nuancebydefault wrote: | Exactly. It is very easy to fall into the trap the author | describes, for junior as well as senior engineers. Managers | should ask for feedback early on in the process. This could | be a first draft of the architecture or even a simple bullet | list of assumptions and considerations. A look at that info | by a fellow engineer or a product owner can highly impact the | set of requirements, the design or the way of implementing. | alexfromapex wrote: | I've been guilty of this at times but what I would add is a | certain type of environment encourages this behavior. If the | business or teammates are very reluctant to let engineers work on | what they want or give harsh feedback it encourages people to | retreat into their safe space and try to create something they | feel is worthy of feedback. | Phelinofist wrote: | Can confirm. My lead is pretty picky with everything and | expects 110% correctness. Even if my solutions works, is | maintainable and extensible it is not how they would've | implemented it, so it's no good. Argumentation is sometimes | pretty artificial where some made up rules are the gold | standard. That plus comments like "that is bad style" (for | something that I've seen in all my past jobs + in a lot of OS | code) make me not really want to loop them in. | | But the job pays well and has interesting problems to solve, so | I guess I will put up with it for some time more. | Steltek wrote: | I think there's a new phenomenon that needs to be addressed: | poor WFH communication channels. By encouraging radio silence, | so as to not "interrupt anyone", things get missed. | | Also some people feel the need to tightly control group chat. | Either content (no "offtopic"), membership, or # of rooms. Some | chat platforms encourage this by restricting who can | create/manage rooms or how rooms are linked together | (discoverability). | | It's an unexplored area of knowledge for most people in the new | WFH life everyone's leading. | Buttons840 wrote: | Yes. I do this because interactions with others are a net | negative at my place of work. In terms of quantifiable rewards, | 99% of interactions are +5 or +10, etc, mixed in with the | occasional -15000. In the end the expected value of | interactions is negative. All because of one or two very bad | interactions a year; the rest being positive, but close to | neutral. | Cederfjard wrote: | What kind of interactions are those extremely negative ones, | if you don't mind elaborating? | Buttons840 wrote: | Most recent was learning we weren't implementing something | in the way that was expected, which required a lot of | rework and sparked conversations among management that our | team was incompetent. We were completely blindsided by it | all, leading to a feeling that any interaction might | randomly turn into a similar debacle. | | But, when things go well they say "good job", so that's | nice. | disposableuname wrote: | The original post contains | | > It can also happen if the team culture is toxic and engineers | fear getting criticism early in the design process. | | I think the author would agree with you. | zachlloyd wrote: | i do agree | vanusa wrote: | Y-e-p. It's not like these retreats happen in a vacuum. | folkhack wrote: | I'll be honest - half the time it's trying to keep it from | other engineers who are overly eager to have an opinion | because a) they're low-output and looking to posture, and/or | b) or want things to be done a different way. | | At least the business side of the house appreciates the | spec'd work being accomplished. | yjftsjthsd-h wrote: | Intentionally not communicating things in order to prevent | bikeshedding is a dangerous game to play and a symptom of a | broken environment, but that doesn't mean it's not | sometimes a valid approach. | folkhack wrote: | Agree - and it 100% comes from broken | teams/environments/people. In engineering, I find most | teams are more invested in tearing each other down more- | so than building each other up - that's admittedly very | anecdotal and personal to me. | bryanrasmussen wrote: | Or if teams are uncommunicative you can end up with not getting | a usable response on concerns raised, need to march at some | point and without feedback you decide to march in the direction | that seems most reasonable to you. Later on it turns out that | was right into the swamp. | retinaros wrote: | yeah. i agree it is a mistake. but I got many times sidelined or | robbed of an idea or a project after starting it and involving | other people too early. it happened for instance that I started | developing a GDPR tool mentioned it to my manager, he then told | me a few days later that there was a manager working on this and | it was in the making. the manager in question never had anything | on the topic, did not start anything as well. two weeks later he | had a power point and hired an intern << to work on this topic >> | he presented the deck to VPs, every one clapped said it was | amazing. I had the full mvp working - demo-able and he was | supposed to be the one leading this after this presentation. | | so I guess id rather do too much work before looping in others | AtlasBarfed wrote: | When you are doing idea creation and getting your head around an | idea, I don't know about other people, but in addition to not | being well quantifiable and structured (which standups and their | tickets need), but looping in other people in the IT industry | exposes you when you most look like an idiot. | | It's the same reason IT interviews are this big cockpuff show. | Everyone is insecure due to a combination of impostor syndrome, | constant tech churn undermining your expertise, stack ranking | culture, our industry archetype of socially unskilled/introverts, | projection of bullying from schooling, etc. | | So it comes down to functioning social dynamics in your group: | people not trying to elbow other people in stack ranking, helping | out, being eval'd fairly, etc. | | Things, you know, that IT companies and manager generally aren't | good at because technical understanding and achievement is | paramount. | zachlloyd wrote: | I'm the author of the post - would love any feedback / similar | experiences / contrasting opinions! | friendlydog wrote: | I'm a fan of "always loop people in". | | Frequent checkins with detailed commit messages including | markdown and graphviz diagrams which state intentions. | | Switching the flow from a status meeting low detail reponse of | "still working on X issue" to a regular feed of detailed | information which serves not only as a development log, | documentation, but it crystallizes the developer's planning and | thought process because they have to describe what they are | doing rather than just "fixing the issue" , or "building the | thing". | | Persistent chat has made daily stand up status calls redundant. | Stakeholders can subscribe to channels which have rich detailed | information about what is happening at any given moment. For | larger groups a resource can curate the channels and provide a | thoughtful summary in a higher level channel of different teams | progress. Tools like Azure Dev Ops provide meaningful charts, | tracking, and velocity, and the deeper conversations on chat | linked to work items, wikis, and repo level filea serve to | provide an accurate picture for anyone looking into the effort. | Leads, and managers can identify trouble spots and adjust | priorities or provide valuable insights. Regular demos can also | be linked and serve as a historical record of the development | direction. | grumple wrote: | I'm getting a 500 error when I visit the site. | theandrewbailey wrote: | I'm not sure what IC means. Integration Consultant? Industrial | Control? | conro1108 wrote: | Individual contributor (as opposed to management) | zachlloyd wrote: | Correct! IC == individual contributor. Sorry for any | confusion | juice_bus wrote: | I believe IC is "Individual Contributor" in this context. | ilrwbwrkhv wrote: | A most bizarre terminology the industry has come up with. | Almost feels a bit derogatory. | zaat wrote: | That's the natural way languages develop, offensive terms | replaces with euphemisms, given some time every | euphemistic term become loaded with the same negative | connotations of its origin and new euphemism get | introduced. | | see: | https://thelingspace.tumblr.com/post/114432905996/the- | euphem... | mLuby wrote: | Individual contributor, in other words a worker as opposed to | management. The author's using engineer to mean software | developer; they're the workers in this context. | alboy wrote: | Itty-bitty Cog. | disposableuname wrote: | > as both an IC and a manager | | When juxtaposed to manager, it usually means individual | contributor - someone being managed rather than doing the | management. | waynecochran wrote: | I am an older software engineer and have noted that a lot of | introverted engineers love to work in their own silos. Some of | the smartest engineers are introverted and do not want to be | bothered; worse yet, because of pride they often do not "suffer | fools" well and avoid working with others. Working with a group | of smart and _humble_ engineers that are constantly "borrowing | each other's" brain is very effective and enjoyable experience. | And everyone has a good sense of what everyone else is working | on -- sunk cost is more frequently avoided. | nuancebydefault wrote: | I feel the same way. Lot's of experienced engineers don't | like to be bothered too much, have the feeling they know best | and just design and implement the way they have it in mind. | Juniors on the other hand don't like to bring their beginners | mistakes too much in the open, hence they work hard and long | to avoid that. Both of these situation are largely sub- | optimal. A good manager knows this and asks for feedback in | time, in an interested way, without being too pushy. | jkaptur wrote: | It's great to see "I'm still exploring X" called out as a | standup antipattern. I've heard and (hi Zach!) said this many | times. | | ... But I've generally heard it most frequently from the tech | lead and/or manager at the standup. It's easy to justify: "as | the TL/M, my work is ill-defined, meeting-heavy, complex, | externally-focused, and long-term! I'm not just building a | feature! It's hard to describe!" | | In my experience, this culture percolates with lightning speed: | more junior folks immediately understand that to be senior and | high-status is to give vague updates (often with a dramatic | sigh and a self-deprecating joke about getting nothing done). | | So it's good to exhort feature-building ICs to show incremental | progress on that feature, but I think this article should have | a heavier focus on the most senior folks at the standup. | eatbitseveryday wrote: | Please write the insight into the title of the post, rather | than hiding it under a click-bait. Your site is down now due to | traffic and the original HN title (reflecting the title of your | writing) provides no value. | zachlloyd wrote: | yup, i messed this up, apologies. site is handling the | traffic better now thanks to cloudflare | jseban wrote: | The description of the "problem" is that the requirements | specified in the beginning were wrong, and then the developer | is blamed for solving exactly what was specified, and not | constantly asking management every day "have you changed your | mind?". I don't understand at all, how this is the fault of the | developer, talk about expecting the developer to bend over | backwards for any product manager. How is it not reasonable for | management/PO to be responsible for 1. sending devs off in the | wrong direction, and 2. not notifying them as requirements | change? | | This is just another way of saying "management is right, even | when they're wrong, and you need to accept that". | Jabbles wrote: | Non-trivial problems often require exploration of the | solution space. You're not expected to ask management if | they've changed their mind, you're meant to present your | finding so far, and ask if they have any feedback. | | Simply stating that you did as instructed is not a viable | excuse for a human, that's not what they're paying you for. | Computers can get away with it. | jseban wrote: | > Simply stating that you did as instructed is not a viable | excuse for a human, that's not what they're paying you for. | | Getting paid for doing what someone tells you to do, is | literally the definition of a job. What you're saying | actually, is that it's not your job to do your job, it's | your job to also do the managers/PO's job. | 908B64B197 wrote: | In this industry we use "developer" and "engineer" | interchangeably, but one is not like the other. They don't hand | out brass rats at the end of a bootcamp... | | > For early career engineers, it often happens because they | lack practice working on teams. They train in school | environments where they do classroom projects on their own, or | work on long-term intern projects in a silo. | | Serious engineering school would have student work together to | ship projects. | afarrell wrote: | Yes, MIT's university culture does genuinely encourage a | collaborative project-based approach. However, some grads | will believe that the business world expects them to be as | brilliant as Tony Stark and able to "carry a message to | garcia"[1]. If a course-VI grad wearing brass rat thinks a | request for help/feedback will be rebuffed as impostor | syndrome (it happens), they can make the same mistake. Ego is | the enemy. The blog post's advice still applies. | | [1] https://courses.csail.mit.edu/6.803/pdf/hubbard1899.pdf | which is both historically apocryphal and only good advice | when dealing with an impatient and incurious leader. | newsbinator wrote: | > the biggest mistake I see engineers make is doing too much work | on their own before looping in others. | eatbitseveryday wrote: | Thank you... frustrating we do not help by putting the | statement into the title and write "bait-like" wording to get | clicks and traffic. Now also the server is down so I get no | value and no insight. | dang wrote: | It's sort of a reproductive strategy thing, only about | attention. As I say about headline writers in media, it's | their job to sex up the title and our job to knock it back | down to size. | zoomablemind wrote: | The author obviously draws on own experience, thus the | conclusions. However, an important aspect is the team and the | process, not just the dev and their behavioral patterns. | | If a "loosely-spec'ed" feature is assigned to a single dev for | implementation, then there must be either reasonable expectation | that it could be delivered solo or that the blanks are not | critical for the result. | | Either way, such "pattern" of a supposed dev-vs-team antagonism | may be pointing rather at process deficiencies or disbalanced | expectations from management. | | When team management believes that all is clear as day and could | be done in a week-span, the devs may have a hard time affording | themselves a prototype just to figure out what is there to do, so | delaying the feature delivery is a simple hedge. | taurusnoises wrote: | Not a developer, like, at all. But, I see this in myself when I | work in groups all the time. I get excited about the project, | forge ahead on my own, come back with so much stuff, into which | everyone else now needs to "fit". At which point the entirety of | the collaborative intention is missed. | gorjusborg wrote: | https://archive.is/ZFwUh | 24thofjan wrote: | I'm curious about Zach's thoughts on how to use Github. Merge or | rebase? | 3pt14159 wrote: | This is a bit of a nuanced topic with lots of shades of truth or | context, and overall I agree with the article, but that said: | | Sometimes you know your team is going to do the stupid shortcut | if you let them and you save them from themselves by solving the | robust solution before they have a chance to "be pragmatic" and | pointlessly bikeshed about things that don't matter to waste your | time. Sometimes you know it will take you a week to do it right | or a week with input to do it half right and you just bite the | bullet and do it right the first time and, to the articles point, | suffer the consequences if or when you get it wrong or partially | wrong. | | Realpolitik is part of being a senior engineer. Sometimes you | make the call to take the shortcut without mentioning it, | sometimes you force the full solution with the big PR (or, even | worse, a series of staged small PRs to make it look like you're | taking feedback); but most of the time, if you're working | somewhere good, you get to be completely transparent about what | you're working on and the feedback you get is corrective and | flexible. | Slartie wrote: | I have found that the attitude of "just silently do the robust | and proper thing immediately and push it, instead of letting | the entire team discuss this important infrastructure topic | forever in order to ultimately come up with an abomination of | design-by-committee-architecture, just to then find out that | the remaining time now is way too short to implement it, which | is why they then take all the stupid shortcuts to get it done | in time, ending up with something barely holding together with | duct tape that somehow works for the moment, but immediately | tumbles down as soon as the next guy tries to build the next | layer on top of it" is a very important senior dev skill, | especially at the beginning of new projects when a lot of basic | building blocks on which the more complex features have to rest | later are still being created. | TameAntelope wrote: | The reality is that it's not your call, it's the customer's | call, and you need to stop trying to make a decision _for_ the | customer. Let them tell you what they want. | davidhyde wrote: | > "the biggest mistake I see engineers make is doing too much | work on their own before looping in others" | | > "For more senior engineers, it can happen because they like to | work on their own and may be overconfident in finding solutions. | It can also happen if the team culture is toxic and engineers | fear getting criticism early in the design process." | | Not saying the above statement is incorrect but here is an | alternative explanation that is also viable: Senior Engineers are | often hired into large large projects so that the company has the | capability to address emergencies or modify the existing system | accurately as it is often more difficult to work on a large | complex code base than to build a new one from scratch. Those | engineers sometimes never get to work on greenfield projects and | "doing too much work on their own before looping in others" is a | way to scratch this itch without the opportunity being taken away | prematurely. It also offers chance to produce memorable work as | nobody remembers the set of 3 point tasks you completed ten | sprints ago. | philote wrote: | In my case, I'm the senior engineer and the rest of the team | are juniors. There's generally not much I can ask them that | they'd know the answer for. On the other hand, looping them in | is a good learning experience for them even if they can't help | me solve the issue. But due to time constraints that isn't | always possible. | EGreg wrote: | You nailed it. Senior engineers build things on their own | because their company can't afford to hire enough advanced | enough people who can learn the system and take over the work | without being trained for 6-12 months, and often there is no | budget for this kind of "distraction" from the core | moneymaking path. | abofh wrote: | You are not wrong. I generally sell as a mercenary, and prefer | it that way - I've been doing this longer than some of my | managers have been alive. I'm paid just as well if they want to | "pair program" or jira the whole process, but yeah, you hired | me to fix a problem - if you _are_ the problem, I get paid just | the same. | | Welcome to the real world, if your work is interesting, the | clock might not turn on when I'm having fun. If your work is | bullshot, I bill tighter than my lawyer | Victerius wrote: | > I've been doing this longer than some of my managers have | been alive. | | In what organisation do 25 year olds manage 50 year olds? | Ensorceled wrote: | My first job out of university, I was promoted to manager | in my mid 20s. One of the senior engineers reporting to me | had kids older than me. | | Now, they were PAID a lot more than me ... | | The first thing they taught me was that it wasn't my job to | do the work, because it didn't matter how smart I was, I | didn't have almost 30 years experience. | SkyPuncher wrote: | Not as extreme, but not far off. I believe I'm the youngest | person on the team I manage. | | I've spent a lot of time in startups - including way too | many hours in my 20's working on side-hustles (wife was in | med school, so it was kind of my thing to do). I've ended | up in a situation where my technical skills are strong (but | not the best on my team), but my business/startup knowledge | is much better so I can help to ensure everyone is working | towards the most impactful/valuable outcomes. | superfrank wrote: | I worked at a start up where the founders were 25 & 26 and | most of their first 25 employees were their friends who | were similar aged. In less than two years, there were | almost 100 employees, plenty of which were in the 50s. | | The company's last valuation has it worth over a billion | dollars now and they have a few hundred employees. A good | chunk of the C suite and VPs are still those same early | employees who are now in their late 20s and early 30s. Some | are managing former FAANG employees in their 50s. | mbrameld wrote: | It's not unusual in the US military for a lieutenant or | captain in their early 20s to manage many senior non- | commissioned officers in their late 40s. | dfsegoat wrote: | No mil. experience myself, but I'd say that while the | officers may technically 'manage' the NCO's, that with | few exceptions it is the NCO's that actually get things | done. | throwawayboise wrote: | Yeah the officers all move on relatively quickly; the | NCOs may be on the same ship or class of ship their | entire career. | perfect_wave wrote: | I'm a 25 year old managing a global team of 8 people. I'm | self-conscious about my age both in my 1:1s with my reports | and when talking with customers. That being said, it seems | like things are going well. My team is doing great metrics | and achievements wise and the company we work for tripled | in size in under a year. | foobarian wrote: | You know what I usually tell my managers. "Thank you for | your service" :-) | asow92 wrote: | A few years ago, I was a "team lead" at the age of 27 | managing a team that included one developer over 50 at a | big TV network company. | | We're both at different companies nowadays, but I've been | trying to get him started at my current company's team | (which I am senior on, but not a lead) for a while now and | he's considering it! | ipaddr wrote: | Many organizations and it is a normal thing. | ttymck wrote: | Could a 30 year old manage a 60 year old? Certainly a 35 | year old could manage a 57 year old? | bayindirh wrote: | If the 60 year old is wise and humble and 30 year old is | open minded and not smug, it'd create a hell of a | learning environment. | FpUser wrote: | Definitely. Just do not micromanage and drag to endless | useless meetings. | scrumbledober wrote: | I have met several engineers that were very much senior to | their managers but did not want to make the shift from IC | to management. | Hermitian909 wrote: | I've known people who submitted working patches to the | Linux kernel at 13, which I'd say is a reasonable start for | "doing this". A 30 year old managing a 43 year old would | not be strange at all. | dhosek wrote: | Exactly, I started programming in AppleSoft BASIC when I | was 11, picked up 6502 Assembly and Pascal before high | school and added C, Rexx. 370 assembler and FORTRAN | before I started college. I was 28 the first time I had a | manager younger than me. I think the last time I had a | manager older than me was when I had a job where my | direct report was to the CTO. | galdosdi wrote: | Anecdote, but this was the approximate case on the team I | worked on at Google (Manager in his mid 30s, team mostly in | their 20s with one in his 50s). It happens. Actually, it | was nice to see, as some evidence of non-ageism. | | I hope to no longer need to work by the time I'm 50, but | nobody knows what the future will bring, so I'd certainly | like to have the option just in case! | smcleod wrote: | In a previous job I was team lead of a team that had a | person in they're 40s and one in their 50s, I started as | lead as a 23 year old and moved on when I was 30. There are | many things I'd do differently now, but it was an effective | and impactful mostly high functioning team. It does happen. | imoverclocked wrote: | A lot. Technical managers need not be experienced technical | talents who have made a potentially incompatible shift to | management. | icedchai wrote: | It is _better_ if the managers of technical people are | technical themselves. Otherwise you wind up with the | Dilbert "pointy-haired-boss" syndrome. The non-technical | manager is extremely easy to bullshit, so it's better for | the company in almost all ways. | ipaddr wrote: | An experienced manager is not easy to bullshit | regardless. Sometimes a non-technical manager is better | for many reasons. Having business domain experience can | be just as valuable | Ensorceled wrote: | > Welcome to the real world, if your work is interesting, the | clock might not turn on when I'm having fun. | | Ha! Yeah, I worked on a really cool project for a charity a | few years ago: "How many hours is this going to cost us this | week, you were working like a warrior?" "35" | amelius wrote: | > If your work is bullshot, I bill tighter than my lawyer | | Lawyers must hate their work. | Taylor_OD wrote: | I believe it has one of the lowest job satisfaction of any | white collar jobs. I've wondered that is folks didnt have | the massive student loans to pay off early on if they would | stick with it. | BurningFrog wrote: | Many law firms are incredibly well paid sweatshops. | skissane wrote: | > Lawyers must hate their work. | | A friend of mine is a criminal defence lawyer. I get the | impression he really enjoys his work - he gets to meet a | lot of people he never normally would (bikie gang members, | terrorists, murderers, drug dealers, drug addicts, etc) - | and he feels safe in doing so (he tells me that defendants | trying to harm their own lawyers is quite rare, rare enough | that he isn't worried about it). | | Once, at a work function (previous employer), I met one of | the lawyers from the contracts department. He was telling | me how he used to live in a rural area doing agricultural | real estate transactions, now he had moved to the big city | to do in-house contracts review for a multinational | software company. He was a top performer (indeed, this was | a function to reward people who'd been nominated as "top | performers" by their management)-but he didn't give me the | impression he really loved what he did, more that he was | just doing it to support his family. | zachlloyd wrote: | i see the point here. | | i do think giving space for hard work is important. i still | more often see the opposite problem of too much silo'd work | leads to wasted effort, but for some really hard problems, | having a bunch of space to think them through is beneficial. | ravenstine wrote: | Yes, I think this is undoubtedly true. I didn't really learn | until I advanced my career that, in some respects, being a | junior or mid-level developer is actually _better_. Being a | senior can be a slog, and while I got paid little in earlier | positions, I actually got to do more interesting things, screw | up more, and build things from scratch. | | The other thing that can encourage doing too much work before | looping in others is the culture of the team. You are lucky if | you can amass a team of people who all have the same attitude | of talking to each other frequently and handling a certain | level of interruption. I've worked on such teams and miss them. | Although pretty much everyone at any company you work at will | say "ask questions, don't hesitate, blah blah blah", there are | teams where people go _weeks_ not talking or sharing work, and | everyone is always too busy to get interrupted. If work gets | assigned in large chunks, as can happen for seniors in | particular, it can also just not make sense to loop in someone | temporarily if more time needs to be taken for the other person | to catch up. | rory wrote: | A good point, but the reason I have (and fight) this problem is | much simpler: | | I like writing code. I dislike talking to people. | 6gvONxR4sf7o wrote: | > It also offers chance to produce memorable work as nobody | remembers the set of 3 point tasks you completed ten sprints | ago. | | This is one of the more toxic ones. To get past senior, you | often need to be seen to do Big Memorable Things. It sometimes | leads to perverse incentives. | skrtskrt wrote: | To me moving beyond senior means you enable the entire team | to contribute together accomplish Big Memorable Things. | | This can mean a ton of things, which cannot all be served by | a single senior+ engineer: | | * mentorship | | * seeking out, establishing, and evangelizing best practices, | and not just coding best practices: architecture, | documentation, testing, ci/cd etc | | * high-level architecture knowledge and experience | | * evaluating technology choices: tooling, databases, | orchestration platforms, etc etc | | * assisting management and product with scoping and | prioritizing work | | * the ability to put your head down and crank out a solution | to something in code simply because it needs done and you can | do it better and/or faster than others | | * laying the framework of a greenfield project, maybe | sketching out the codebase or POC for juniors to take and run | with | | * ...and so on and so forth. | | A single person may be able to contribute all these things to | a team over a time frame of multiple years, but in a 3 or 6 | month time frame, most mortal engineers could only contribute | two or three. | belval wrote: | I mean it's not that toxic, if you are a good worker bee your | manager will usually notice and be happy with your | performance. Then from time-to-time you branch off to do | something more high-risk to add to your promo doc. | | I think a lot of people have weaker communication skills than | execution skills. So they could loop in everyone early on, | but their idea might get killed off because they failed to | justify it properly. If instead they leverage their execution | skills and make an MVP that will speak for itself, then they | bypass that issue. | 6gvONxR4sf7o wrote: | Maybe toxic is the wrong word. Perverse maybe. But I don't | think that being a good worker bee often gets people past | the senior level, at least from what I've seen. But also | getting past senior is rarer, so maybe what I've seen isn't | representative. | FpUser wrote: | >"if you are a good worker bee your manager will usually | notice and be happy with your performance" | | And other than some bonus never promote you. If you have | capability to be anything above that "worker bee" say / ask | exactly what you want. If not look for another job. While | this SCRUM / Agile bullshit is wide spread and even works | in some specific circumstances there are enough companies | that are not hung up on moving pins on dashboard and where | one can really grow. | | Work for yourself. Work with the manager, not for manager. | belval wrote: | > Then from time-to-time you branch off to do something | more high-risk to add to your promo doc. | | I agree, that's exactly what I wrote. | sodapopcan wrote: | Exeactly. There is too much emphasis put on rewarding those | who make big, disruptive change and large, solo wins. Someone | making a lot of little wins are just as valuable yet usually | don't any great accolates for it. Not to mention, putting one | person on a large-ish project is a great way to create silos. | closeparen wrote: | I think it's management and their "agile" philosophy that's | toxic here, intentionally depriving engineers of any sense of | ownership, autonomy, or vision-fulfillment over their work by | constantly bouncing them around across small disjoint tasks. | | I am incredibly fortunate to work in a place that values | ownership, both explicitly and in practice. Given how | widespread the opposing value system is, I'm afraid to ever | leave. | pojzon wrote: | I've faced worse issue. So you are thinking about problem | solution, you created a design and you ask ppl for their | opinionated view about the problem and your solution. | | Issue is - they cannot even give you a good feedback because they | are not that advanced. | | The issue of being a great engineer is that there are not many | great engineers you can have a constructive discussion with. | | You are sometimes even "expected" to deliver solution alone, | because there is noone who even grasps the concept. | | One could say its simply an incorrect team composition in this | case but well.. what can you do about it when you are also asked | to in the same time train ppl who clearly dont have the capacity | to match your level - and better - they are supposed to reach | that level soonTM. | reureu wrote: | Amen to this. In a similar vein, in a heavily resourced | constrained environment, the rest of the team may be really | competent but be struggling to meet their own deadlines so just | don't have the mental bandwidth or time to provide any | feedback. | | I've had this issue at a few jobs in the past, and I know I've | come off as the lone developer who ventured too far... but at | every step along the way I stopped, sent in a PR, scheduled a | meeting, etc but got virtually no engagement. And I was still | getting pressure from stakeholders to deliver, so had to keep | moving :-/ | | I think OP brings up an interesting problem, but I don't think | the solution is often as easy as sending in earlier PRs. It | might actually be a structural or cultural problem in the | organization. | cercatrova wrote: | The mistake is "doing too much work on their own before looping | in others." | | Can we edit the title to remove these kinds of clickbaity titles? | dang wrote: | Sure. | [deleted] | Ozzie_osman wrote: | We have a saying on our team, "don't go down the rabbit hole | alone". | | Honestly I think the reasons mentioned in the article for why | this happens are valid, but more frequently, people are a little | insecure about their work or a little too much of a | perfectionist, and that creates slightly enough friction to deter | them from sharing progress or asking for help early on. | commandlinefan wrote: | This whole post strikes me as somebody making up a world as he | believes it ought to be and then suggesting advice for navigating | _that_ world, rather than the real one. For example: | | > Always encourage engineers to show their work as quickly as | possible | | Yep, that sounds like _great_ advice. On "paper", anyway. I | tried to do that when I first started out, too. What I found was | that communicating "this is just an early draft, it'll be better | when I'm finished" was well-near impossible, no matter how hard I | tried. | adverbly wrote: | They missed one reason why it can happen: Because doing things | "the right way" is too slow, and the engineer is trying to skirt | around process because the company moves way too slowly. Not out | of malice or negligence, but out of a fear of the megacorp | killing agility. I've seen entire teams at megacorps or | governments try to keep others in the dark with projects that | would be crushed under strict corporate rules. | gmfawcett wrote: | It doesn't have to be a megacorp. Looping new people into a | deep problem takes time, and can kill momentum if not done in a | strategic way. Your personal time on any problem is finite, and | you can exhaust that time-budget on bringing the wrong people | up to speed. This is doubly true when the other person isn't on | your team or in your organization: e.g., bringing in vendor | support. (Maybe your experience is different; in mine, bringing | in remote experts doesn't guarantee a faster resolution.) | Veuxdo wrote: | Sometimes you have to dive into a problem, experiment, try things | out. | | There is such a thing as premature collaboration. | | If you want to be truly great at something, you need to practice | it consistently by yourself. | pojzon wrote: | Indeed, question made by managers is: | | "Can you train in spare time?" | | "While working on your own projects" | Trasmatta wrote: | I'm good at working on a team and looping in others. I also find | it to be one of the most exhausting parts of software | development. It's so difficult to constantly need to get feedback | and buy-in from other people, and takes away a lot of the | creativity and joy in programming (for me). | | Which isn't to say you shouldn't do it, just that it's one of the | things that makes me dislike working on a team. I actually think | this may be one of the factors in burnout for a lot of | developers. Writing code as a team is almost like writing a novel | with a few dozen other people, all of which have differing ideas | on how the book should be written, or even what it should be | about. It's hard to feel the joy in creating something when | you're only a small cog in the development machine, and every | decision needs a dozen voices of input. | | It's disempowering to feel like you're never able to make a | decision yourself, despite supposedly being hired for your | expertise in the field. | | > Always encourage engineers to show their work as quickly as | possible - an engineer on a project should never go more than a | week without showing something, and usually it should be more | like a day. | | "usually it should be more like a day" is bad advice in my | opinion, and a likely source of micro management. Let | professionals do their work. | Panoramix wrote: | I wholeheartedly agree, if you need daily feedback you're a bad | manager (unless you're in some exotic situation like a rocket | launch or something). | | This issue largely disappears if your engineers are given the | proper context, background and system overview. | | I'm not advocating everybody should take their project and run | with it for weeks on end, but daily updates are ridiculous. | TameAntelope wrote: | I'd actually flip that, and say if you can't give daily | feedback you're a "bad" developer (I'd probably use | "inexperienced" or "new" rather than "bad", because it's a | hard mindset shift and it takes time). | | In fact, not only should you be able to give daily updates, | you should be able to ship functionality on the daily. From | first line of code into production and in front of customers | should only ever take about 2 to 16 hours of work. | | If you can't work at that cadence, you're probably not being | as effective as you could be, as a developer. A "good" | manager enables you to work like this. | beefield wrote: | Thanks for this comment. It pretty much confirms my hunch | that I would not be happy in a "developer" role. I have | done quite a lot work that requires writing code. But often | it has been projects with literally months before there has | been anything that anyone might call functionality. | mh- wrote: | Please don't over-index on this comment. It's pretty out | of touch with how the majority of the field works. | dogleash wrote: | I used to work at an R&D company. While that cadence is | possible in a website mill, it's a laughable blanket | statement. | gffrd wrote: | Just wanted to say thank you for "website mill" ... I'm | reminded of this stark difference when talking with a | friend who builds ultrasonic hardware. | [deleted] | Trasmatta wrote: | I strongly disagree with this. This is an approach to | development that encourages an extremely limited and short | term view on development that leads to low quality software | and unhappy developers. It's also only remotely possible | with a certain type of software. | yibg wrote: | For larger pieces of work, some times it takes me more than | a day to just figure out what's where and where I can even | get started. I guess I can still give updates daily, but | it'll just be "still investigating". | | Hell, I've fixed 1 liner bugs that have taken me a week to | figure out. | mattferderer wrote: | As much as I love the feeling of writing something clever or | that feels really well done, I hate the feeling of realizing | it's the wrong thing even more. | Trasmatta wrote: | Agreed, and that's why I mentioned I think you shouldn't just | silo yourself. That doesn't seem to work either. I don't | really have a good answer or alternative, more just pointing | out how the dynamics of team based software development seem | to be optimized towards burning out programmers. I don't know | how to fix it, but it seems to be a problem. | | A first step is probably treating your developers skilled | specialists (hopefully you've hired a good team, of course), | and not just code monkeys who have to show their manager a | progress report every single day. | peakaboo wrote: | You do know how to fix it - you don't loop in others until | you want to. | | The problem is our industry, forcing developers to exhaust | their energy on pair programming in open offices. May as | well be in a daycare center with children all around. | Trasmatta wrote: | Ugh, my worst development job ever was one that had | mandatory full time pair programming. Full time pairing | is one of the worst ideas ever conceived in the software | world. | onemoresoop wrote: | Pair programming should be optional and for whoever wants | to get team members (especially juniors) up to speed and | on the same page. It could be very productive but like | all methods/tools that are shoved down everyone's throat | and forced to apply them, I could see them being a | disaster. | Trasmatta wrote: | I generally enjoy pair programming when utilized | occasionally and as needed, but mandatory pairing is just | horrible. | onemoresoop wrote: | Each tool has its use case. Forced use results in misuse. | dhosek wrote: | I actually found it quite helpful, not just for getting | up to speed. After moving to another division of that | company that didn't employ full-time pair programming, I | saw code of noticeably lower quality being produced. That | said, it was emotionally exhausting for me to do full- | time pairing and I'm not sure I'd go back to it. | [deleted] | daenz wrote: | The trick is to make the "right" decision yourself while | helping people feel like they were heard and had a chance to | give their input. | | From my experience, people don't actually want to control the | output of everything, they just want the opportunity to be | heard. What you do with it from there doesn't matter as much, | so long as the desired outcome is "correct". If the desired | outcome is not correct however... then you have to justify all | of the input that you didn't act on. | Trasmatta wrote: | The tricky part for me is that sometimes I did actually need | that input from others on the team. Sometimes it's all just | bikeshedding and a waste of time, but sometimes it does help | me from going down a rabbit hole that might have wasted weeks | of development. | | But regardless, I find that whole process exhausting and | disempowering, even if there is sometimes a benefit from it. | peakaboo wrote: | Completely agree with this, and this is why I simply don't loop | in others. | | I wrote a program the way I think it should be. Clean code, | super easy to understand, super low complexity. Anyone can | understand what it does. | | Thats fun for me, when the code is very simple, reads like | English and there are no complex functions. | | I don't do real software engineering however (just business | intelligence and python programs to extract and load data). But | when it comes to looping in colleagues, I avoid it for the same | reasons as above. | | Its exhausting. | drawkbox wrote: | > Writing code as a team is almost like writing a novel with a | few dozen other people, all of which have differing ideas on | how the book should be written, or even what it should be | about. | | I use this exact description when discussing balancing creative | side of the value creation project processes, design and | development over the value extraction side of products. Small | empowered teams with an almost startup mindset is key, but even | more is time to play to find solutions that can make products | that are more like friends than enemies to people. | | Engineering/development, creative and product | design/development are creative fields, a value creation action | and activity. | | Business, finance, marketing do not see many parts of this as a | creative action but a production line, a value extraction | action and activity. | | A large problem is the misunderstanding that new projects are | value creation not just value extraction, and rely on | creativity at inception. Once they are established they can be | more patterned and predictable and ramped up, but initially the | creative phase is the key to making good products. Smaller | teams, more empowering of the people that can create products | that get the early points right. Taking long enough in the | "open" mode before the "closed" mode is key, essentially | prototyping and play is needed, but rarely available in the | modern processes and project management systems where | engineering is simply "production". There is a pre-production | and post-production that is usually left out. | | For instance in game development, pushing through a project | process before the main game mechanic is "fun" is a problem. | You can't get creative on a forced schedule just as you | couldn't write a book that way or come up with a novel new | concept in some software app that should be a friend to users. | The prototype of the project or product must have some time to | simmer and iterate on. The first thing managers do is cut that | time and sometimes throw too many people at it resulting in | Mythical Man Month level mistakes leading to too many cooks. | When a prototype or early product has value mostly figured out, | then it can go into a more robust process to create variations | or iterations. The initial value creation will always be wildly | hard to estimate. | | Good examples of this in software are programming languages, | usually it is one person for a long time then others join in to | ramp up when the vibe of the language is set. Same with books, | movies, games, anything really. You can't have 10 people | drawing the same illustration or writing the same book, the | parallel part can be multiple people doing their own to see | which is best, but you can't have them all in on one creative | project without it being confused. | | I have seen companies turn into faction based wars when varying | groups don't clearly respect the value creation and value | extraction balance, the value creation MUST come before the | value extraction. The open mode before the closed mode. | | A great talk by John Cleese on the "open" and "closed" mode [1] | helps describe this, which I recommend and hope everyone I work | with watches. Value creators need time and creativity to create | value both in the "open" mode to explore/prototype/build and | the "closed" mode when things are decided to ship. The value | extractors always want people in the controlled "closed" mode | only, the "open" mode is non quantifiable and seen as almost an | enemy to the value extractors but is key to creating products | that are so good they are like friends to value creators and | the people using the products. | | The value extractors are who Fred Brooks talked about in the | Mythical Man month [2], they think things are a factory with | already figured out steps, when you are in a field that uses | originality, creativity, the mind over the physical, it isn't | like a factory or supply line. Every single project manager | needs to know about the Mythical Man month. | | Here's a great point by Steve Jobs about product stagnation and | the managers/business side [3] and how they can run amok if not | controlled to allow value creation to continue, and how | monopolies or problems that arise when only the | business/managers are in charge. This point is more about | larger companies than new projects but the same forces that | stop innovation at large companies also kill it in any sized | companies when there is no value creation / value extraction | balance. | | > _It turns out the same thing can happen in technology | companies that get monopolies, like IBM or Xerox. If you were a | product person at IBM or Xerox, so you make a better copier or | computer. So what? When you have monopoly market share, the | company 's not any more successful._ | | > _So the people that can make the company more successful are | sales and marketing people, and they end up running the | companies. And the product people get driven out of the | decision making forums, and the companies forget what it means | to make great products. The product sensibility and the product | genius that brought them to that monopolistic position gets | rotted out by people running these companies that have no | conception of a good product versus a bad product._ | | > _They have no conception of the craftsmanship that 's | required to take a good idea and turn it into a good product. | And they really have no feeling in their hearts, usually, about | wanting to really help the customers._ | | Modern project management processes promote shallow change over | deeper dives. They create a risk profile for anyone looking to | bring new innovations that might be hard to estimate because it | will be a perceptual hit. These rigid tightly wound processes | are horrible for creativity. Agile itself has been captured | with tightly wound controlling mechanisms like the daily | standup, and so much weight around trying new things as well as | perceptual hits for that. Anyone truly trying to make new value | will be seen as an enemy to these systems. Agile was created to | give product people more margin to build, but it has been | coopted into being used to control creativity which cannot be | controlled, it simply disappears when there is no open mode and | only a closed mode or nothing but value extraction. | | All of this is spelled out in "How Software Companies Die" as | well [4]. I wonder when if these realities will make it into | the business education curriculum. | | [1] https://www.youtube.com/watch?v=Pb5oIIPO62g | | [2] https://en.wikipedia.org/wiki/The_Mythical_Man-Month | | [3] https://www.businessinsider.com/steve-jobs-on-why- | innovation... | | [4] https://news.ycombinator.com/item?id=1866486 | Trasmatta wrote: | I don't have a lot to add except to say I loved this reply. I | think a lot of people might miss it since it's down in the | replies, maybe you could expand on it, and make it a blog | post at some point? | drawkbox wrote: | Thanks, your post also resonated when you mentioned exactly | the way I see it. I will be writing up more on this as it | is a theme of mine and have quite a bit here at HN, and | other areas where value creators are. | | Good news is there are lots of us like it, the problem is | since the value creators rarely control the funding and | sometimes lose the power to implement these the right way | before internal faction wars start. However at all good | product and all good companies, you'll see the respect of | value creation and the open mode. One day maybe | business/finance will see it with the same value. | | A couple of points as well, there is an internal and | external view of a product. The external view is really all | that matters, the market perception. The internal | perceptions and processes if they are made too tight or the | main focus, the external product suffers. This is one | reason I think remote companies that are smaller, or having | small teams, do better. They focus on their external view | over the internal. Most remote work is virtual just like | most communication today and especially the communication | with the people that use products. The external view needs | to be the main focus as well as simplicity, but also the | "friend" aspect of a product. Using a product should be a | simple joy, a friendly part of your day. External focused | setups work the best to achieve that. | n0w wrote: | > _Writing code as a team is almost like writing a novel with a | few dozen other people, all of which have differing ideas on | how the book should be written, or even what it should be | about. It 's hard to feel the joy in creating something when | you're only a small cog in the development machine, and every | decision needs a dozen voices of input._ | | This resonates with me. I think we do our best work when we | have the autonomy to apply our expertise. | | But at the end of the day, you're not the only one writing that | novel. If you have an idea of where the plot is going but your | teammates think it's heading somewhere else, it's going to be | very problematic. | | The other problem is that you _will_ make mistakes. Some could | be avoided by leveraging the experience of your teammates. You | also won't always strictly have the best ideas. Brainstorming | as a group can be a lot more effective than sitting alone for a | long time thinking hard about a problem (but also sometimes | hard problems need a lot of individual thought). | | I suppose my point is that I'm not sure where the happy medium | is? I've been on both sides of the "engineer working too long | alone before sharing" problem and I think it sucks. | | How do we enable engineers to do their best work but also allow | our teams to be successful? | rurp wrote: | Due to some turnover I ended up working mostly independently | for about a year at a previous job. Nobody cared one bit about | the code I wrote, just the end result. Overall it was great! I | was surprised at how productive I was in that time. I'm not a | partiularly amazing developer, but I managed to ship a ton of | work that held up quite well. | | Obviously there are limits to this approach and it wouldn't | work well for solving really difficult problems, but really, | 99% of day-to-day development work isn't that special. A | motivated and conscientious developer with average skills can | get an awful lot done with minimal distractions. ___________________________________________________________________ (page generated 2022-01-25 23:00 UTC)