TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Work is work, in which returns diminish (2020)

227 pointsby typingcyclistover 2 years ago

19 comments

d0liverover 2 years ago
Humans are probably a lot more like plants than distributed computing systems. Everyone likes a different environment. We bear different kinds of fruit. You can&#x27;t just uproot a person randomly and move them around and expect everything to be the same. We put roots out into every available nook and cranny, bending around each other to get what we need. Throwing a new person into the mix changes everything.<p>Reasoning about humans as cogs is inevitably going to be a really awful way to get people and companies to be productive - most of it isn&#x27;t that. However, humans, like plants, are able to survive and sometimes thrive in really terrible conditions _despite_ those conditions. This is what you see at Amazon; if you throw enough money at anything then you&#x27;re going to get some kind of result. But, despite Amazon, Microsoft, and Google having billions and billions of dollars to throw at this stuff we mostly still grab for Open Source tools (and so do they). That&#x27;s largely because the workflows the Open Source community use actually work and that&#x27;s mostly because they get the human stuff right.<p>The whole &quot;man hours - overhead = man joules&quot; thing doesn&#x27;t math and using that as a basis for any kind of analysis is going to lead to weird places. There are elements of human workflows that fit into these boxes - the really mundane work. Reasoning about mundane processes through this lens is maybe a good idea to the extent that mundane work can&#x27;t be swapped out for more interesting work. The problem is that what we really want is to excel at the stuff that isn&#x27;t mundane (the force multiplier shit) and that needs an entirely different framework that reasons about humans as humans rather than machines.
评论 #32821514 未加载
评论 #32822704 未加载
评论 #32821128 未加载
stavrosover 2 years ago
Regardless of the content, it strikes me that this author is a bit stuck in his own head? He uses rare words when common ones will do (&quot;dyad&quot;? What&#x27;s wrong with &quot;pair&quot;?), passingly mentions obscure terms for no reason, and in general writes like the less the reader understands, the smarter the material was.
评论 #32820117 未加载
评论 #32820136 未加载
评论 #32820898 未加载
评论 #32821526 未加载
评论 #32820483 未加载
评论 #32821107 未加载
评论 #32820380 未加载
评论 #32821896 未加载
评论 #32822064 未加载
评论 #32820496 未加载
评论 #32823703 未加载
phuffover 2 years ago
I know this has been discussed and rediscussed but the notion of thinking about human organization blackboxes trading work with each other the same way we think about how distributed systems blackboxes trade work and communication with each other I think is a huge insight for helping software engineers understand the complexity of human organizations.<p>You want to avoid single points of failure, optimize bottlenecks, build in redundancy in similar ways etc. Etc. It&#x27;s a great insight.
评论 #32819427 未加载
burlesonaover 2 years ago
Previously submitted 18 times. Most extensively discussed here: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22797687" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22797687</a>
评论 #32818359 未加载
jollybeanover 2 years ago
&quot;The work capacity of an organization scales, at most, linearly as new members are added. &quot;<p>WTF? This is a bad way to think about the &#x27;division of labour&#x27;.<p>One man cannot ever get over a 10 foot wall.<p>Two men together can absolutely do it.<p>&#x27;Work&#x27; is not the measurement, &#x27;productivity&#x27; is.<p>Even the fleeting thinker, who works only 1 day a week, but shows up every day, may be absolutely critical to making things work. Paid for that input, when it matters, not &#x27;daily wages&#x27;.
评论 #32819302 未加载
评论 #32820292 未加载
评论 #32820421 未加载
评论 #32819317 未加载
评论 #32819084 未加载
robotresearcherover 2 years ago
This analysis assumes that a unit of work is fungible. This may be nearly true in a large org on average but may be far from true in a small org.<p>To see this, consider that adding a sales person to a group of engineers, or vice versa, could have a nonlinear improvement in revenue.<p>It’s an awful buzzword to be sure, but superlinear gains from functional diversity is called synergy and it’s possible.
评论 #32821004 未加载
评论 #32820166 未加载
评论 #32821875 未加载
评论 #32820592 未加载
评论 #32822494 未加载
评论 #32819636 未加载
knorkerover 2 years ago
There&#x27;s a lot of good here, but also:<p>&gt; Successful new products can be incrementally integrated with the existing products where it makes sense, and tooling, libraries, and frameworks can be developed by force multiplier teams to reduce both time-to-market of new products and the carrying costs of existing products<p>Yeah... This is why communication is often needed in a full mesh.<p>Look at major companies (ehem, one in particular) and see if you think their products make sense in their integration.<p>Like did chat app X team talk to chat app Y team? Likely not.<p>Larger orgs move slower because they&#x27;re trying to build coherent larger wholes. And that&#x27;s harder.<p>It&#x27;s not hard to launch 10 chat apps a year if it doesn&#x27;t have to fit into any coherent whole.<p>Like do you think DigitalOcean just needs to hire disconnected teams, and will end up with something that <i>isn&#x27;t</i> a frankenmonster crying &quot;kill me&quot;?<p>Their VM service works fine. Adding another that works fine is not hard.<p>Building all services needed for a major customer to &quot;go cloud&quot;... you won&#x27;t get there that way.<p>(Not saying DO is doing anything wrong. Quite the opposite. I&#x27;m saying they can&#x27;t just hire 100 parallel teams and end up being AWS)
jdouganover 2 years ago
This reads a lot like Engelbart&#x27;s work on organizational augmentation&#x2F;collective IQ etc. Tough stuff to get right.<p><a href="https:&#x2F;&#x2F;robm.me.uk&#x2F;2021&#x2F;07&#x2F;collective-iq-improvement&#x2F;" rel="nofollow">https:&#x2F;&#x2F;robm.me.uk&#x2F;2021&#x2F;07&#x2F;collective-iq-improvement&#x2F;</a><p><a href="https:&#x2F;&#x2F;www.dougengelbart.org&#x2F;content&#x2F;view&#x2F;256&#x2F;340&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.dougengelbart.org&#x2F;content&#x2F;view&#x2F;256&#x2F;340&#x2F;</a>
trhoadover 2 years ago
I must be stupid because I understood very little of this. The cynic in me says it sounds a lot like pseudo-intellectual-babble, but maybe I&#x27;m wrong.<p>I can pick out so many parts that seem to be an extremely odd take on things, but this one stood out:<p>&gt; the total time spent communicating will grow quadratically as the work capacity of the organization grows linearly.<p>The assumption being that everybody needs to speak to everybody else as the organisation grows, which is a spectacularly daft assumption.
评论 #32821852 未加载
dirkcover 2 years ago
&gt; Therefore, our only hope for superlinear productivity lies in changing the task which is being executed.<p>This is the key insight for me. If you&#x27;re adding people to a team but you&#x27;re not putting them in a position to affect what work that is being done you will be stuck with the linear scale as the ceiling<p>This helps me explain an intuitive belief that I&#x27;ve always held for a long time, you should have a say over what you&#x27;re doing. If I can&#x27;t influence what work is being done and how it&#x27;s being done, I don&#x27;t feel like I can contribute much.<p>I was hoping the rest of the article would talk about how to build an organization geared towards empowering employees, but it seems to focus on strategies for dividing up work and suggesting that companies should just become more companies under one umbrella to try and reach the linear scale ceiling, blegh!
molsongoldenover 2 years ago
I periodically reread this post to remind myself of the communication overhead involved when scaling an org. People love to model headcount and work capacity linearly but it just never works out that way (and Coda explains why).
评论 #32819183 未加载
Barrin92over 2 years ago
this article is the unholy alliance of buzzword and business speak combined with little non-trivial content. Human organizations don&#x27;t function like distributed computers just because one assumes so, they don&#x27;t simply do static work.<p>The most glaring problem is that there&#x27;s no quantity&#x2F;quality distinction in the piece. The core theory is:<p><i>&quot;The work capacity of an organization scales, at most, linearly as new members are added&quot;</i><p>This is trivially untrue because larger groups enable new complexity to emerge. 10 people can&#x27;t build you CERN, even if you give them endless amounts of time. They don&#x27;t hold enough information. A city isn&#x27;t merely a village of 150 people multiplied by a thousand, and so forth. Quantity has a quality of its own and new behavior emerges from changes in size itself.<p>Factoring work into little modules as the article suggests is the same kind of error behind microservice advocacy. The interesting thing isn&#x27;t the performance of parts of the system or the sum of its parts, but only of an organization <i>as a whole</i>, including dynamics <i>between</i> it&#x27;s parts, which in any complex system aren&#x27;t linear, dynamic or even predictable.
semasadover 2 years ago
We can discuss if we agree&#x2F;disagree, but something about this post is non-debatable: any change in the way of work is trying to innovate in a 200,000 years &quot;business&quot;, we should take this more serious.<p>Maybe, remote work is a first step? we have been working side by side (at the same place) for a lot of time, and this change is the first one impact one of the most important metric: productivity.
评论 #32821139 未加载
solidistover 2 years ago
Software is &quot;nice&quot; because I can flex muscles and achieve things independent of &quot;work.&quot; Many endevours require groups of humans to do; it is tablestakes.<p>Writing is the same, and hence why I like it so much.
stevebmarkover 2 years ago
Could someone summarize this article? This article is condescending and very poorly written, I can&#x27;t stand to try to finish it.
评论 #32821361 未加载
MuffinFlavoredover 2 years ago
How many of us don&#x27;t like our jobs?
015aover 2 years ago
&gt; Keep the work parallel, the groups small, and the resources local.<p>I think about this a lot in software organizations. Like most takes, I&#x27;m probably wrong.<p>Keeping work parallel is, well, hard, and context dependent. Not worth commenting on. Keeping groups small is something we have plenty of prior art on; as Bezos said, two pizza teams, whatever. I may disagree with his exact number, and he may disagree with how much pizza I can eat in one sitting, but the gist is there.<p>Keeping Resources Local is the most interesting one.<p>The biggest productivity sinks I observe in my own line of work, and those around me, is absolutely quantified proximate to: &quot;dependency on this thing we don&#x27;t control&quot;. Here&#x27;s an example: Everything has to be run in our one single kubernetes cluster. That cluster has some rules about how things are deployed, to avoid tragedies of the commons, like isolated namespaces and process security levels and whathaveyou.<p>What&#x27;s interesting, to me, is how this could so easily and correctly be viewed as either a productivity gain or sink. On the one hand: Teams don&#x27;t have to create and manage their own kubernetes clusters. Big win, that sucks to manage. On the other hand: we <i>do</i> have to integrate and hold a dependency on the Kubernetes Team or the DevOps team for X, Y, Z of this feature development. That&#x27;s a negative.<p>I think it turns out being related to that next Principal From Beyond Space And Time: You can develop force multipliers, but oftentimes the development and maintenance of those force multipliers becomes a non-local resource that every team suddenly gains a dependency on.<p>Its really easy to see the upside of a shared cluster. But let&#x27;s say I&#x27;m on a team that just needs to get a static site hosted on the internet. Well, rules are rules, we use k8s; for my team and my work, this &quot;asset&quot; is actually a net productivity loss. We never would have hosted our own cluster in the first place, maybe we use fly.io or whatever. You can argue that the standardization or the single-pane-of-glass security controls or whatever ultimately make it a net organizational win, but I think that&#x27;s diving too specific into the example: the point is that these force multipliers can actually become force dividers over time, as their complexity increases to account for a wider variety of complex use-cases, and left behind are the (significant number of) teams still on square 1 or 2.<p>I don&#x27;t want to understate how big a problem I think this is in modern software engineering; I think this is a big contributor for why software teams oftentimes trend toward stagnation. The buzzword is Complexity, but more specifically: every force multiplier is an abstraction layer which hides complexity, poorly, then you hire on new engineers or need to train up in a part of the system you&#x27;ve never worked in, and the abstraction disappears.<p>I&#x27;m not saying any of this to suddenly present a solution. I don&#x27;t know. Some of the things I think about though:<p>I know this is oftentimes perceived as a soundbyte, but: I really think the best engineers are those with a really strong allergy to complexity. And, unfortunately, in most organizations this isn&#x27;t rewarded. We reward &quot;woah that&#x27;s an awesome, complex system you designed that accounts for fifty-six different use-cases, exceeds expectations&quot;. We reward &quot;woah, you were absolutely on top of that incident, you identified that fix super quick&quot;. We don&#x27;t reward &quot;woah, that comment you left on that other guy&#x27;s RFC about how we shouldn&#x27;t implement this was extremely well-reasoned, exceeds expectations&quot;. We don&#x27;t reward &quot;that thing you built hasn&#x27;t had an incident in two years&quot;.<p>Every organization is different; because every engineer is different. Some organizations are better than others. But I think the average isn&#x27;t allergic enough; and I think its not even close.<p>Second; I think Bezos&#x27; model of &quot;everything should be an API&quot; is extremely good, and roughly zero companies take it to the extreme it should be. Teams should communicate with each other the same way they communicate with customers, in every meaningful way. Instead, what we oftentimes end up with is: oh, you&#x27;ve got an API that you want on api.mycompany.com, you&#x27;ll have to use the API Gateway that the Service Platform team developed, then use this npm library we published to expose a standard API interface, and register your schemas with...<p>At a deep enough level, this guidance <i>will</i> start breaking down. For example, with apis: You probably do want your api on api.mycompany.com, or at least mycompany.com; so there&#x27;s at least some coordination with the team that runs the domain name, and some kind of gateway may be necessary. For websites, ultimately there&#x27;s one bundle to serve, and as much cohesion in design patterns between pages is a Good Thing. But, similar to the allergy to complexity, I think our industry-wide allergy to inter-team dependency isn&#x27;t strong enough.<p>This can oftentimes surface in the very tactile details about how things are developed. Let&#x27;s say your goal is: a single centralized documentation page for the API. Routes are managed by twenty different teams depending on the product. This is a massive coordination problem. First, we could ask: Does it need to be single and centralized? Or could each team, which corresponds well to a product, get their own product.api.mycompany.com domain name, then they run everything? The prevailing wisdom is: nah it needs to be centralized; and there&#x27;s that lack of an allergy surfacing again. But ok; We The Company say every team needs to expose a GraphQL API or whatever, schemas on some HTTP-accessible path, register with the load balancer, register with our schema repository, and we&#x27;ve basically slid down the hill toward making this coordination problem as difficult as it possibly could be. What if, instead, we did something like: the team which runs this documentation platform runs jobs which regularly scan <i>every</i> repository in our Github org, looking for a landmark file that says back &quot;I&#x27;m a service register me&quot;; and they get automatically registered? That would help reduce coordination a ton! Now, what if that landmark file was, say, just a GraphQL schema file? &quot;As long as you put your GraphQL schema file anywhere in your repository, we&#x27;ll find it and you&#x27;ll get documentation instantly&quot;.<p>I think one of the core things that every member of engineering leadership needs to do is: keep an inventory of the &quot;typical dependencies&quot; an average team in your company has on other teams. API gateways, kubernetes or AWS infrastructure, logging pipelines, metrics dashboards, alerting, downstream services, libraries; if a team generally has to interface in ANY capacity with something another team owns, write it down. Regularly revisit that list; query your engineers to see if its grown or shrank; then make an active effort to shrink the size of the list, or the size of every dependency on it. In large orgs, there is quite possibly no more impactful way to increase the productivity of your teams than right-sizing this list (usually down).
评论 #32823337 未加载
raydiatianover 2 years ago
Jesus Christ author, this isn’t the GRE. Use simpler fucking English.
评论 #32820558 未加载
评论 #32821135 未加载
BEMBIYGYover 2 years ago
Helo