[HN Gopher] When Everything Is Important but Nothing Is Getting ... ___________________________________________________________________ When Everything Is Important but Nothing Is Getting Done Author : goopthink Score : 153 points Date : 2022-05-23 17:17 UTC (5 hours ago) (HTM) web link (sharedphysics.com) (TXT) w3m dump (sharedphysics.com) | seydor wrote: | When Everything is Grey but Nothing is Getting Read | lbriner wrote: | Lots of really good points in here. I have worked at various | companies who have struggled after the initial growth. Hubris can | take over and we feel the need to over-extend, to sit at the big- | boys table, to court the corporates with their fat (but very | tight) wallets. | | I think a common cause is simply fear. There is a lot at stake | when you have 50+ employees. Maybe those one or two markets are | not big enough to support what we need any more so instead of | razor focus and discipline which helps, we try and build | everything for everyone and a lot of it is simply wasted effort. | We also start having teams so instead of a design decision being | taken by the entire management (and can get shouted down), it | just gets done because "the design team" regardless of the value | it is actually adding or not. | | In extremis, we see the FANG companies who have so many | engineering staff, we can only hypothesize about what most of | these people even do for 40 hours per week on massive salaries. | goopthink wrote: | OP here -- something I didn't touch on is that this is really | common when a company transitions from early-stage to mid | stage. The operations of a small company and the operations of | a mid size company (and the operations of a large company) are | completely different. The problems start to happen there is a | mismatch between what you are and what you think you are. If | you implement big-company practices for a small startup, you're | often going to be overburdening the team and losing agility. | When you are a med/large company but operating like a small | company, you'll see chaos and inefficiency. Part of the problem | is that there's no clear line. Observant engineering and | product leaders tend to have an intuition for when practices | need to change... I think team size and revenue/contract size | (for B2B) are good heuristics. But more often than not, it's a | stumble through the transition and folks feel the pain before | figuring out the solution. | dcow wrote: | > Part of the problem is that there's no clear line. | | This is what baffles/wonders me about the state of the art in | building companies. It seems so anecdotal and ad-hoc. Case | studies and good advice, while they exist, are from "previous | generations" and "we do it differently" because "culture". It | feels like society has to continuously reinvent solutions to | managing people and projects rather than building upon proven | and effective strategies. I guess, perhaps, I am betraying my | own lack of knowledge of this domain. Maybe there are tried | and true tactics and I've just never experienced them. | Related, it really feels like there should be a sub-field of | "sociology" set on improving the efficiency of groups of | humans using objective methodology that yields consistent and | reliable results... | sumanthvepa wrote: | > it feels like there should be a sub-field of "sociology" | set on improving the efficiency groups of humans | | Yes there is. Its called organisational behaviour. Most | b-schools have some faculty specialising in it. Cornell,I | think, has a whole department in the school of Industrial | and Labor Relations. They're pretty good. | bombcar wrote: | I wonder how much lost productivity comes from people saying | "if only it had feature X" to salesmen to be polite instead of | a simple "we're not interested and won't be buying". | mason55 wrote: | It's the difference between being a feature factory and | having a real product strategy. | | If you actually have some kind of customer in mind, and you | have ideas of problems that you're solving for them, then | this can be valuable feedback _even if it 's a lie._ Digging | into the feature might expose you to a new customer problem | that weren't aware of. You can talk to other customers and | prospects and understand if this is a problem they have as | well. You can take that information and extrapolate it into a | real set of use cases, think about the size of the market of | "customers who have this problem," and decide if it's | something that makes sense to tackle with your product. Then | you can design features to solve the real problem. | | If you just have a feature factory then all you'll do is | build the feature as the prospect specified. You'll go back, | they'll still say no, and now you have no idea how to market | this feature or if it would even be useful for anyone else or | it's just built around the customer's internal process. | goopthink wrote: | "The Mom Test" is an _awesome_ look at that -- how bad | questions and worse feedback leads to a lot of wasted effort. | Highly recommend it. http://momtestbook.com/ | perlgeek wrote: | > Be really careful with the yellows: if there is low impact, you | might be confusing work for progress. If there is low urgency, | you might be overestimaging the value of your work. | | On the flipside, if only high-urgency projects get done, you end | up becoming a 500+ employee IT service provider without a proper | Identity and Access Management System (IAM), without a Privileged | Access Management system (PAM), a haphazard, ad-hoc secrets store | and so on. | | That's all fine and good for a 10-person company, you can get by | like that when you're 100, above 200 maybe it starts to get | icky... | | Yes, I understand that if really nothing progresses, you have to | prioritize ruthlessly, but you cannot keep doing only high | urgency projects forever. | ketzo wrote: | No real comment other than damn, what a solid-gold piece of | writing and advice. Felt like I was just nodding along to every | other sentence. Awesome stuff. | | I particularly liked breaking down "priority" into the | intersection of urgency and impact. | eastbayjake wrote: | This was a really great article and case study. The problems (and | eventual solutions) will be familiar and unsurprising to readers | of _The Phoenix Project_ : https://itrevolution.com/the-phoenix- | project/ | SemanticStrengh wrote: | hey that's called modern physics open-problems | marktangotango wrote: | After the MVP is found, then the real work begins in building a | company. We all understand that if everything is a priority, then | nothing is, but often times, business resources don't. Support | wants bugs fixed to keep customers happy and to re-sign. Sales | whats features to land their whales. Engineering wants to work | off tech debt, refine, and innovate. Etc.. I've found that a | formal "Intake" process works wonders. Engineering needs an | advocate to take these disparate priorities and refine what, when | and how to address. It's really that simple, and that complex. | Finding someone to own it. Sometimes it's impossible depending on | the Org and personalities involved. | jrvarela56 wrote: | Think you nailed it by breaking it up by groups of people with | different lists. | | Literally every group/dept/team has a list. Someone/process has | to arrange that into a single list for the group that builds. | If you have more than one group that builds stuff, then more | output lists and more complex the transformation from input | lists to output lists. | | Guess this is a simplistic summary of what PMs and Eng managers | do. | hinkley wrote: | > Engineering wants to work off tech debt, refine, and | innovate. | | I know I'm not the only one who is backing away slowly from the | concept of tech debt, and I'm not the only one trying to drag | other people with me. | | Tech debt has turned into hippie-dippie bullshit in the minds | of many people. It was an attempt at enlightened self interest | by appealing to the bean counters, but if you're talking to | bean counters you've already lost. | | The developers want easy things to be easy so they don't have | to spend half their time slogging through code that does | everything the wrong way, half their time explaining why | everything takes so long (heading toward infinity), and half | their time implementing new functionality. And yes that's 3/2 | which is why we have people doing 60 hour work weeks. | | A long time ago I saw a speaker claim that it's not tech debt, | it's wear and tear. I don't know if I agree entirely with that | characterization, but I definitely think that it's less wrong. | opportune wrote: | Tech debt is too general a term to be useful. | | A lot of what people call tech debt is just working code that | they don't understand (maybe because all of the people that | did understand it are now gone). Or it's complex, which may | just be because it's dealing with a complex issue and | accumulated lots of bug fixes over time. Or tech debt is just | nitpicky design choices which may very well be not-great but | aren't actually causing any problems. None of that is worth | investing in beyond a fix-as-you-go, in my opinion, due to | there usually being problems to solve with much greater | business impact. | | On the other hand, you have tech debt like: a complex set of | dependencies/services with poor interfaces that makes what | should be simple changes very complex and risky. Something | implemented so inefficiently that it's slow enough to impact | UX or wastes a lot of computing resources ($$$). Or code that | is just so, so bad that making any change is like walking in | a minefield - and while a lot of engineers are way too quick | to put code in this bucket, I do think it's possible (eg a | complete ball of mud application with tons of global state, | very poorly applied concurrency patterns, extreme lack of | parameterization in favor of copy-paste). | | That said, I have often seen "tech debt" used as a | rationalization to work on some nitpick with no business | impact and without a clear improvement. In my opinion, this | is partially because working on such tech debt can be very | easy: it doesn't require understanding more complex business | requirements, it might be very easy to test with existing | integration tests, it has little risk to production, and it | doesn't have task/planning dependencies with other people. | goopthink wrote: | OP here. We had a _lot_ of discussion about where Tech Debt | falls on the spectrum of projects to work on. That merits its | own post. But the gist of it is that resolving tech debt has | value. The challenge is that most engineering organizations | are awful at describing and communicating that value. | | For example: "If we refactor this code and migrate to a new | server, we'll be able to deploy in 15 minutes instead of 6 | hours, and we'll be able to ship features faster to customers | with lower risk. This means that we'll get back ~90h of | engineering time per week (6 hours x 5 people x 3 teams), and | our defect rate will go down by 50% (We see 10% of customers | churn due to preventable defects).. Therefore, there is | $702,000 savings in engineering efficiency (more time | available) and would decrease churn by 10%, resulting in [X] | more value retained." | | Once our engineering team started thinking about the business | case for why tech debt should be prioritized, they started to | make really compelling arguments for why something needed to | be worked on, and we could evaluate it against explicit | business/feature requests. This value rolled up into the form | of decreasing costs or increasing revenue. | | Again: resolving tech debt has value, and the engineering | _leadership_ needs to work on figuring out what that value is | and how it stacks up against all of the other valuable work | that the company wants to do to grow. Engineering leaders who | don 't understand this often struggle at the executive level | and ultimately fail the teams they represent. | cgio wrote: | Once the engineering team started thinking about business | cases, they started wasting time they could be dedicating | to engineering. I know where you come from, on a similar | journey, but when things don't work, adding things to do is | the worst option. | yen223 wrote: | The problem I think is engineering haven't figured out good | ways to measure software productivity, and so it's very | hard to make the kinds of estimates that we need to | properly justify work that otherwise delivers zero | immediate business value. | | (I also suspect that not all refactoring work is equal, and | that most refactoring work don't result in any positive | engineering or business improvements.) | babyshake wrote: | Easy, you just measure the lines of code added. More code | means more productive. | goopthink wrote: | This is very fair! We used a few guide posts: | | - 1: Keep asking "why is this valuable" until you get to | the money questions. It's often a few layers deep. Not | being able to get at that (missing an ability to | quantify) was in itself something that engineering | leadership needed to work on. After all -- how can you | prioritize between two things if you can't figure out | what value they create? | | - 2: Most engineering teams know that they might be able | to save some time by refactoring. We figured out the | average hourly cost of engineering effort and used that | as a multiplier for time saved by a new project's | implementation. You can take it a step further and | subtract the cost of working on a project from the time | it ultimately saves you to remove "dumb" refactors that | take longer to deliver than time they save. | | - 3: If you can't get to a tech debt's value, that's a | red flag as to if it actually creates value. This was | true for features and business requests as well. We also | said no to features that "felt good" but ultimately | created zero value (some redesigns included). "Rewriting | something in a new language" because a new sr manager | with strong preferences joined the team was a big culprit | of these sorts of projects. | | - 4: We also often asked if a tech debt project needed to | be done independently of other work, or if it could be | included as part of a new feature that we were working | on. An example was that one team pitched rewriting a | microservice because it had no API. On the other side of | the company, we had a project to get rid of that feature | entirely and replace it with a different functionality. | If tech debt projects were handled entirely within the | domain of engineering, we would have spent weeks | rewriting something _only to throw it away a month | later_. Hence the need for bubbling tech debt up to the | single stack rank, and thus treating tech debt projects | the same as any other project we were working on (with | appropriate visibility, buy-in, and evaluation of value | /urgency). | RugnirViking wrote: | Reading these comments and replies has me very | interested. I think talking about technical debts and | ways of quantifying it is definitely worth another post. | I'd read it! | pgwhalen wrote: | > A long time ago I saw a speaker claim that it's not tech | debt, it's wear and tear. | | It sounds like you agree with the idea in general, but just | don't like the current metaphor. Can you expand on what about | this alternate metaphor fits the phenomenon better? | dvtrn wrote: | I've found myself holding a bit of chagrin at the term | 'technical debt' lately as well, mostly because it feels like | saying it, pointing to it, quantifying it, and shoving 'it' | under people's noses and proving its there (not to mention | the usual ceremonies of what I'd like to do about it) isn't | doing me any favors anymore. | | And at that point.... | | ....I don't know that simply calling it something else is | going to help. | | _Yes I 'm a bit jaded, grab a drink, next one's on me_ | user3939382 wrote: | My analysis is that the problem is "tech debt is bad". Just | like real debt, there are times when you sign your name to it | on purpose because it's a good decision. For example, early | on in a project when the requirements are fuzzy and | undiscovered. | | Like financial debt, you pay interest on tech debt, so you do | want to strategically pay it down when the stars align, maybe | you've recently put out some new features, and you can buy | the political capital with customers (and by extension, | management). | | Debt isn't a bad analogy but an appreciation for the nuance | would be nice, I don't commonly see that. | shkkmo wrote: | Technical debt is unavoidable, but letting technical debt | grow without managing it is a great way to kill a project. | | Explaining the benefits of paying down particlar pieces of | technical debt is important, but another important piece of | the puzzle is talking in advance with stakeholders about | when, where and how much technical debt you want to take on | to launch a product. When the existence of technical debt | isn't talked about until it needs to be repaid and thus | comes as a surprise, the conversation becomes a lot harder. | Additionally many of the decisions about how much technical | debt to take on to launch something can be improved by | bringing stakeholders directly into the conversation, at | least on a general level. | mason55 wrote: | This is one of the main things a good leader should be doing. | Not just execs, but up and down the chain, one of the most | valuable things a leader can do is get everyone pointed in the | right direction. Make decisions about priorities, communicate | those decisions to the team and the rest of the org, and then | commit to getting them done. Ruthlessly prioritize and be | willing to say no. | | It's not actually easy, for a number of reasons. One is | organizational. If your boss isn't doing the same then then | it's going to be harder for you to do it. If you're responsible | to multiple people who don't have any common chain of command | then it's going to be really hard. And it involves saying "no" | and standing your ground. | mandeepj wrote: | To those who are interviewing these days for a leadership | position, the article has details for answering questions related | to managing conflicting\multiple priorities ___________________________________________________________________ (page generated 2022-05-23 23:00 UTC)