[HN Gopher] How individual contributors get stuck (2017) ___________________________________________________________________ How individual contributors get stuck (2017) Author : glennericksen Score : 168 points Date : 2022-06-28 13:53 UTC (9 hours ago) (HTM) web link (www.elidedbranches.com) (TXT) w3m dump (www.elidedbranches.com) | [deleted] | efficax wrote: | To me the biggest blocker is unclear requirements in the edge | cases (this is maybe the final 10-20% of a project). You get to a | point where it's unclear which of a few options to move forward | with, in a way that will affect the UX of the feature, and this | isn't mapped out in the story or the wireframes. So you have to | go back to product and get direction, which often takes a lot of | time (product loves to meet, to measure, to a/b test, in my | experience they hate to just make a decision). In smaller orgs | this is often easier, the engineer can just decide, and then make | a note w/ product to follow up later with a final decision that | we'll follow back with later, and only if it seems better than | whatever decision was made. In a big org, process gets in the way | here. | rgbrgb wrote: | Good point, but why can't you do the same thing in a big org? | Of course there are different kinds of orgs, but in my | experience doing what you described (just make a decision | yourself and note it to stakeholders later) is always the most | expedient. The only ways I've seen it go wrong is if that | decision entails a lot of work (choose the simple thing) or you | get overly committed to a direction and don't actually want to | come back to iterate it. | | The slowest-to-ship engineers are the ones who refuse to do a | bit of design thinking or copywriting when they hit the | inevitable unspecced case and instead think "not my job!". It | really is your job to find all of those cases, but going a bit | outside your domain to suggest the simplest solution (usually | by coding it up) rather than spinning up the meeting merry-go- | round is going to make you 2x more valuable than the engineer | who just gets blocked. | BlargMcLarg wrote: | >Of course there are different kinds of orgs | | And a lot of those orgs do 'spinning up the meeting merry-go- | round' as a baseline. | | I would love to find solutions, run them through other | developers to make sure it won't be a disaster to maintain, | and present them. But more often than not, anything beyond 5 | minutes of investment isn't worth the personal time | investment given the organization. There are just too many | hurdles. | | From my experience, most developers are still treated like | idiot savant children capable of doing the one thing the | 'helicopter parent' managers can't do. | allenu wrote: | I've encountered this so many times in my career, having worked | on a lot of UI that product and UX designers came up with. | | At first I would spot potential missing pieces in the UI | designs as they were proposed and would work with PM and design | to come up with workarounds. I did also notice that PMs like to | set up meetings to go over them, but often the specific details | don't have a massive impact on the actual usability, but still | a decision has to be made. | | In the early stages, so much of the product design is | hypothetical to everyone. Even though you could drill down on | specific details, nobody really wants to, unless you're the | engineer who has to implement it. This often means it's hard to | communicate precisely the design issue you need to address (and | often, it's "only" an issue because the implementation has to | choose an option). | | So, what I eventually would do over time was just work as far | as I could until I had a concrete issue I could demo and | explain easily to PM and design. Before I'd bring up the issue | to them, however, I'd come up with a couple of best-effort | solutions. (Not completed, although sometimes I could hack | something together.) Usually I'd prefer one solution over the | other. I'd present both options and give enough pros/cons to | show why my preferred was better, but I wouldn't tell them | necessarily that that was my preference, just the facts about | what you get with it over the other. | | More often than not, product and design would just go with my | recommendation. It's true that they really don't care about a | lot of nitty gritty details, and often they have bigger fish to | fry, so it's a great way of making progress. | | Obviously, there are some tricks to how you present the pros | and cons to ensure you get your way, but obviously as a senior | member of the team, you need to do what you think is best of | the team and overall product. | dieselgate wrote: | This is a great article. In just looking at the lists of | where/why ICs get stuck I feel enabled to grow as an IC. | tunesmith wrote: | > Helping other people instead of doing their assigned tasks | | Hehe, that's totally me. That one is really hard, though, because | it's also arguably my job. Keeping other people unblocked is the | best way to accelerate the team's overall output. | pc86 wrote: | We've taken to reassigning tickets when getting consulted on | something and while I was pretty skeptical about the practice, | it actually works pretty well. Coworker needs your help, so | reassigns ticket 1234 to you. You know the ticket's assigned to | you, they can move on to something else without constantly | getting questions about the status, etc. Some tools are better | at tracking time from multiple people on one ticket than | others, so YMMV. | ramesh31 wrote: | >Sloppy looks like never getting sidetracked from the main | project but never finishing anything completely, letting the | finishing touches of the last project drop as you rush heedlessly | into the next project. | | But Sloppy gets promoted while Stuck gets a "meets expectations". | | The key is in knowing when it's ok to be sloppy. | adamius wrote: | Good list. Its not unlike what I keep on the wall. I call it the | potholes on the road. Whenever I feel like I'm stuck I try to | remember to check the list. If its on the list I can relax a bit | and to at least whatever otherwise useful extent forgive myself. | | This is how I stay on target and finish things. Perfection is | only a justifying set of sweet lies that prevent finishing. | dang wrote: | Discussed at the time: | | _How Do Individual Contributors Get Stuck? A Primer (2017)_ - | https://news.ycombinator.com/item?id=21169212 - Oct 2019 (83 | comments) | lamontcg wrote: | Some of these aren't necessarily bad. | | Sometimes when you're rebuilding the entire world its good to get | distracted with jumping into some firefighting (even when "not on | call") to get the dopamine hit of fixing a problem and being the | goddamn hero. | | Then you can go back in two or three days or something to being | Sisyphus. | | As the currently top voted comment points out that sometimes | going off and doing other things can also help "unstick" you when | you're feeling overwhelmed and burned out on one particular | problem. | | It is actually kind of annoying to have a manager that ALWAYS | wants you to be not distracted and ALWAYS perfectly focused on | whatever is your top priority. That just gets exhausting after | awhile, even if you technically agree that's the highest priority | thing you should be working on at any given time. | BlargMcLarg wrote: | If only management would use their inflation in statistics to | realize, if monthly contributions are consistent, there is | nothing to worry about having a bad week. | paganel wrote: | Maybe a little meta, but when did the programmers -> individual | contributors transition happen? | | Until a few years ago saying and writing "programmers" on forums | like HN was still prevalent, and then, after a certain moment, I | started seeing "ICs" more and more. | kevinventullo wrote: | "IC" encompasses programmer-adjacent roles like design, data | science, roles closer to hardware. Also, even within software | engineering, many aspects of the role do not involve | programming per se: design, documentation, rollout planning, | etc. | corrral wrote: | I've assumed it's a FAANGism. This is the only place I see the | term used. | stonemetal12 wrote: | It is wider than just HN. At work, IC tends to be the term used | by management. Mostly I think it came with "agile" and the | attempt to stop "not my job" responses to getting stuff done. | twblalock wrote: | It's nothing to do with Agile. It's just a short way to say | "employees who are not managers." | 121789 wrote: | I think it's the complete opposite - IC was created | (rightfully IMO) by technical contributors to reject the idea | that the only way to progress in your career and make a | bigger impact is to go into management. It's just the | recognition of a parallel career path | jack_h wrote: | If that was its purpose it failed. Many (most?) companies | have no progression path other than management, but they'll | happily call you an IC. | RC_ITR wrote: | Well, it was easy to be part of a team (even if you weren't | really) when you were physically collocated with said team. | | But now, unless you _really really_ are part of that team, you | are an IC. Programming, by nature of what it is and who does | it, always had a bunch of IC 's, but now the phenomenon is more | clear due to remote (which is something I recommend a lot of | people on here thing about as they design their career). | saddd wrote: | I'm not sure what you mean. In a corporate job ladder, anyone | who isn't strictly a manager and writes at least SOME code is | classified as an IC. That's not to say that there are no | managers who also write code, though. | RC_ITR wrote: | Yeah and I'm saying, from experience, people 'fall into' | being a manager by nature of informal mentorship | relationships that happen in person, but now you have to | more aggressively 'opt-in' to be a manager. | DragonStrength wrote: | Everywhere I have worked, "IC" meant "not a people manager," | so no, it is not a term which can be substituted with | "programmer." | codingdave wrote: | That isn't what IC means - it means "not management". You do | your job, whatever that may be and whomever you may be teamed | with, but do not have direct reports. | davidthewatson wrote: | I find it interesting that IC once meant, "integrated | circuit" in the same culture which exists here now, but | decades earlier. Having been on both sides of the false | dichotomy that's drawn between management and individual | contributors, my experience has been that great ICs don't | necessarily need management and great management are often | great precisely because of their individual contribution. | It's paradoxical that perfection may emerge despite the | fact that product, process, and people exist on a spectrum | that produces so much conflict. One wonders whether product | perfection is, in fact, emergent with respect to the | conflict around people and process. | RC_ITR wrote: | Yeah and I'm saying, from experience, people 'fall into' | being a manager by nature of informal mentorship | relationships that happen in person, but now you have to | more aggressively 'opt-in' to be a manager. | astrange wrote: | If you're a high level IC you can have people temporarily | assigned to you, though; it's assumed that you could be | doing managing if you wanted to, and sometimes you just | can't do your projects by yourself. | [deleted] | marcosdumay wrote: | IC is anybody that isn't management. Programmer means anybody | that creates programs. | | This article did indeed confuse the two (probably because the | author manages programmers but does not program herself), but | they are independent concepts. All combinations of IC/not IC | and programmer/not programmer exist. | yrgulation wrote: | Terminology copied from large code factories and assembly | lines, such as google, facebook and other modern day Chryslers | and Fords. Beats "worker" or "resource". | itsmemattchung wrote: | > Noticing how people get stuck is a super power, and one that | many great tech leads (and yes, managers) rely on to get big | things done | | Taking it one step further. Noticing how you -- yourself -- get | stuck is a superpower. But it's hard...really hard. | | When I get stuck on troubleshooting an issue, I can sometimes | fall in this trap that my wife calls the "blackhole." I obsess | over it. I cannot rid the problem from my mind. My 2.5 year old | even sees it in my eyes ; she'll glance up at me, wondering where | I am. | | Before reaching this "blackhole" state, I can start to feel when | I get tunnel vision.... at which point, I distance myself from | the problem. | | Hands off the keyboard. | | Go for a walk. | | And almost EVERY damn time, I'm able to solve the problem easily. | Just needed a fresh pair of (my own) eyes, a moment to get | "unstuck". | [deleted] | agumonkey wrote: | I'm trying to gather thoughts on how to approach problem | solving or long task in a way to chunk steps just right to | match my natural stamina. | | There are a few things that make working ok if not delightful: | | - generating ideas to try | | - having an idea of the space covered | | - keeping track of progress (even a well marked dead end feels | good, it's done work) .. bookmarks in a way | | - placing little context notes on bookmarks so when you jump in | you're ready to plug your mind in more easily | | - crafting a bed to try an idea with very low friction. Take a | good amount of time to devise your bench/lab and then iterate | smoothly. | | - all of this with the notion of quickly converging toward | what's good and trim what's not | | I'm failing hard at it right now but I still believe it's one | good way. | cheschire wrote: | This is why I start wordle in the morning, and if I don't feel | "close" after 3 guesses, I put it away until the evening. | scrumbledober wrote: | this sounds much less stressful than my wife and I doing it | before bed every night and realizing most nights "oh shit | it's 11:45 we have to do wordle in the next 15 minutes!" | fatnoah wrote: | >Before reaching this "blackhole" state, I can start to feel | when I get tunnel vision.... at which point, I distance myself | from the problem. | | I learned to do this as well after many late nights of making | no progress, only to basically solve the issue in the shower or | on the way to work the next day. | itsmemattchung wrote: | I definitely feel its one of the lessons I learn over and | over again. The brain has a great way to convince us: "Just a | little more longer... you'll figre it out. | | Sometimes grit is just NOT the answer. | bradstewart wrote: | This is so, so true. At this point, I'm not sure it's a | lesson I'll _ever_ learn. | | Despite experiencing the "shower solution" repeatedly over | the years, I _still_ cannot get myself to let go and take a | step back until I 'm literally too exhausted to continue. | | When I'm thinking clearly, it's obvious the optimal answer | is "take a break". But when I'm "in the stuck", taking a | break seems like the worst possible answer. Every. Time. | jasonladuke0311 wrote: | > At this point, I'm not sure it's a lesson I'll ever | learn. | | Same here. I've found myself going down rabbit holes so | ridiculously orthogonal to the actual problem that I was | embarrassed for myself. | barrysteve wrote: | We're so convinced consciousness is doing the solving | that more is always better. | datavirtue wrote: | Winner. | itsmemattchung wrote: | There _must_ be some psychological or clinical term for | this: to be stuck in some fixated state that prevents | forward progress unless a break is actually taken. | wiredfool wrote: | It's one of the themes of Zen and the Art of Motorcycle | Maintenance. A book on programming if I've ever read one. | hyperpallium2 wrote: | It may be that "being stuck" is "uploading the problem | and interconnections"... a necessary pre-condition for | the walk, the shower etc to work. | | It could be that one is stuck longer than necessary for | uploading... or it could be that one is only able to let | go when uploading is complete... | | What evidence would show which it is? | bradstewart wrote: | You're on to something here. | | If I had some signal that indicated "sufficient | information uploaded, algorithm running" it'd be easy to | stop. But the (obvious) problem is that signal is, | usually, the discovery of the solution. Which happens | well after all the being stuck. | | There is something comforting about accepting that | banging my head against a wall might just be a | requirement of figuring the thing out, though. | datavirtue wrote: | At the first sign of inhibited progress I go do something | else. It's like a reflex action now. It's almost painful | how much I have to rely on my subconscious mind to develop | software. Conscious mind stops working optimally...have to | quit. It's not worth energy expenditure or stress. | bcbrown wrote: | My office used to be right by the local art museum, and I was a | member. Whenever I felt stuck, I'd go take a half hour to look | at art, and usually a solution would quickly come to mind. | itsmemattchung wrote: | I'm seriously intrigued by how the unconscious mind works as | it relates to problem solving. Anybody here have | recommendations to literature that digs into this beautiful | phenomenon of taking breaks/walks resulting in the answer | manifesting itself? | LanceH wrote: | Obsessing over authentication and authorization. I've known no | greater time sink. | Aqueous wrote: | When I've gotten stuck it's usually because the previous engineer | completely screwed up the data structure design and in doing so | made it impossible to change. This boxes me in because I can't | implement the feature in an architecturally sound way without a | significant refactor. | | This has happened to me many times. | Trasmatta wrote: | Oh God this is where I'm at now. A series of questionable | decisions over the past 7 years have now solidified our | codebase into a horrible set of patterns that make even adding | a single new database column that we need to feed to the | frontend a Herculean task. It's so demotivating. | pacaro wrote: | This is where the fun begins for some of us. Coming in to a | codebase that has been growth focused for 10 years but now | needs to be rock solid and yet also allow the next 10 years | growth. | Trasmatta wrote: | It would be fun if that's what I was tasked with doing, but | instead I'm doing feature development, and being asked why | this small simple things are taking so long... | pacaro wrote: | Yeah, and that sucks for sure. And it's a measure of | management quality as to how they incorporate your | feedback on this | Trasmatta wrote: | Yeah definitely. I've been giving feedback about this for | around 2 years and there's some movement, but there | doesn't seem to be anyone at the company driving | architectural decisions, so nothing really seems to be | going anywhere. | ska wrote: | [narrator] The previous engineer was themself, 18 months ago. | | I turns out that usually (not universally!) the problem isn't | that the previous person did a bad job, but rather that they | made a set of tradeoffs that made sense at the time, and make | less sense now. | | Or it could be that you work with uncharacteristically | incompetent engineers, but that's not the first place to look. | cecilpl2 wrote: | Please take this the right way, but blaming your predecessors | is not a productive mindset, nor is it really the topic of this | post. | mgkimsal wrote: | But there are times when it's a valid explanation of the | current situation people find themselves in. | | When you get questioned about "why isn't this done yet? | $previousDevX said it would only take a day!" | | ... what words/phrasing can you use that don't - implicitly | or explicitly - 'blame' your predecessor in some fashion? | | And as @ervine pointed out, there may be times when I'm the | predecessor, but was hamstrung by time deadlines earlier and | now have far more debt to unravel than existed 6 months | earlier. But even then... while _I_ am the predecessor, | someone else made the decision to cut my effort short | earlier, and we all still live with that decision now. | theptip wrote: | It's true, but kind of a non-sequiteur. The post isn't | about getting blocked in general, it's about the internal | reasons/ways that individuals tend to get stuck on their | own. | | Furthermore, if the story you tell yourself is "I'm great, | the main thing that I get stuck on is when others mess up | and I need to fix it", then even if that is in fact true, | you miss an opportunity for acquiring self-knowledge by | investigating the patterns of self-inflicted stuckness. | | Put differently, maybe the mistakes of others are outside | your control, but your own weak spots (everybody has them, | it's fine) are within your control to improve upon. And one | of the more important jobs of a good manager is to use the | 30k ft view to help individuals to spot and work on | improving these patterns. | ervine wrote: | Eh, sometimes the predecessor is me, the fact that a large | refactor remains between me and the end goal is still a | blocker. | CamouflagedKiwi wrote: | It may well be that you're entirely correct, and this is what's | happened. But another dev out there might say the same thing in | a different situation, and the answer could be that they've | gotten stuck refactoring other people's code that didn't need | to be. | VyseofArcadia wrote: | > Helping other people instead of doing their assigned tasks | | This leads you to another sort of stuck, though. When an engineer | needs help, but everyone who could help is too busy with their | assigned tasks. | | I've been there. It sucks. You end up calling it a "blocker" and | then managers get involved to unblock you which leads to | resentment from the people/teams who were told to drop their | other important stuff to help you, and then they half-ass it and | it doesn't do much good anyway. | | Then again, this was when I was at the large org whose chart in | comic form has all the teams pointing guns at each other. | dskloet wrote: | Comic: https://bonkersworld.net/organizational-charts | samrocksc wrote: | This is really nice...plenty to think on. | voidmain wrote: | It's possible to take anything good to excess. For every piece of | advice, _someone_ probably needs to hear the opposite. | | But... if your manager is displeased with _most ICs_ for | brainstorming, considering edge cases, researching possible | solutions, refactoring, helping other people, testing, and | automating... you should probably consider working somewhere | else. These are all things the industry does too little of, and | that my company puts significant effort into encouraging and | rewarding. They are also important steps in growing into | (technical or people) leadership roles. And they are nowhere near | the top of the list of things that people waste time on. | sanitycheck wrote: | "1. Finish the last 10-20% of a project" | | This isn't getting stuck, the "last 20%" of a project takes 80% | of the time. This is when you start to get the REAL requirements. | ClumsyPilot wrote: | exactly, usually it turns out the final 20% are actually >50% | bpicolo wrote: | It's when the bits that were "unknown unknowns" start to | matter. | sgtnoodle wrote: | A lot of problems worth solving have a long tail of 9's to | chase down, i.e. 99.999% | | Self driving cars is one of those projects. | D-Coder wrote: | Early in my career, I learned that if I wasn't sure how | something was supposed to work, I needed to ask sooner rather | than later, because it was unlikely to get clearer all by | itself. No matter how ignorant it made me look. | giantg2 wrote: | I wonder how I get stuck and how to fix it. I wonder where these | people with the superpowers to identify it are in my org. | kelseyfrog wrote: | In my 15 years of experience, I see people get people get stuck | when they need to ask for help in much greater prevalence than | the other categories. This is often coupled with a perspective | drawn from toxic meritocracy - those who work harder get more | done. They are often sides of the same coin. | | What it looks like practically is a team member whose tasks start | to slip, mutate, and start to get called done without anything | actually delivering the goods. It takes a supportive team or an | active manager to stop and recognize what's happening. | | Depending on the individual, either ego or fear are the primary | drivers of the action and while everyone has their own demons to | wrestle, those who make great contributors can recognize their | demons and take steps to confront them. Mid devs often don't, | can't, or won't. ___________________________________________________________________ (page generated 2022-06-28 23:01 UTC)