4,462 karma · joined February 20, 2007
Beyond that though, I'm really interested in foods that could be created that don't mimic existing foods derived from animals or plants. You could imagine a nutritionist defining requirements - combinations of proteins, fats and carbohydrates, various micronutrients. Now add the aesthetics of taste, texture, consistency etc. Some of these would be "ready to eat," either hot or cold, but others could be raw materials for traditional cooking: shred a block of this solid stuff, fry it in that liquid oily stuff, and drizzle some thick spicy stuff on it. Marketers to invent names, of course. Maybe we even get food tailored to us individually, based on specific nutritional needs, fitness goals, religious restrictions or palate.
This doesn't sound appetizing, so I think it would be a gradual process, where new products come out that aren't quite like natural foods, but are still acceptably tasty, and cheaper or more nutritious. Gradually we get things that are quite different. It would take a while, but I suspect in a few hundred years we'll have things that are unimaginable today but as accepted as cheese, beer or sausage. And with much, much lower impact on the biosphere.
I've only read a bit of it, but what leaps out at me is that it's clearly written prepandemic. It assumes its audience only knows in-person work, and remote work is this weird radical thing that only a few companies do. Understandable, as that was true 18 months ago, but wow have things changed!
Oddly, I bet it'll be hard or impossible for Zapier to write an updated edition, as they don't know what the pandemic has been like for the rest of us. Heck, I bet the experience of pandemic remote work varies widely.
Rather than argue the pros and cons, I'm more interested in seeing how distributed organizations will evolve. Slack and Zoom are getting the job done, but they are wearying. Organizations that aren't deliberate in designing their collaboration process will probably spin their wheels a lot.
Software development does have more focussed tools for collaboration, like GitHub, GitLab, Jira, Basecamp, Trello, StackOverflow, Figma and so on. So what are remote-first companies doing to improve productivity and minimize coordination overhead? Is it about finding the right modes of communication? Is it about distributing work differently? Is it building shared context to make communication more efficient?
I'm aware of (at least some of) the things that companies like GitLab and Automattic have written about their practices. Who else is thinking and writing about this?
First, elite practitioners identify flaws in the standard practices of some corner of the industry and figure out a way to ameliorate them. They give it a name so they can talk about it, write about it, organize conferences etc. They're mainly interested in disseminating this good idea.
The idea becomes popular, and a cottage industry springs up. Some of the original proponents become consultants, but there are others who were early adopters, and many more who are jumping on the trend. You also get an ecosystem of open source and commercial tools. This starts to warp the original ideas, as they stop being about purely about improving results and incorporate a bias for generating more consulting or tool revenue.
This drives wider adoption. Companies start looking for people with experience in the new thing, and people start putting it on their resume. It gets applied in situations it wasn't meant for, sometimes on purpose and sometimes by accident. You start to see "no true Scotsman" discussions where detractors claim they tried the thing and it didn't work and proponents claim they weren't doing it right. There's also cargo culting, where people who don't really understand the ideas try to implement the practices with varying degrees of success.
Eventually things get watered down to the point where the terminology starts to just mean "good" or "cool". The actual practitioners stop using it because it's no longer useful for communication and it falls out of favour.
But. All is not lost! The original ideas were good, and they've been widely disseminated. They get taught to young people joining the industry, and they start to be part of "how we do things." They don't need special names to distinguish them from "mainstream" practices because they are the mainstream. In fact, young people sneer at them because duh, without knowing what they were a reaction to.
You can see this with Agile, Lean and DevOps. On the business side, "disruption". The cycles are slower and maybe less intense in more CS and pure coding domains, but you find it there too with scripting languages, object oriented languages, TDD. Functional programming is leaving the consulting phase and seeing wider adoption.
This is probably not how we'd like to think things work. But they do work.
But it was quickly coopted to be "ops, but cooler" because these sysadmins write code too. And then even that definition started to get coopted by people using it for other things. These days it can mean anything. Frankly, I see it as a small red flag. Anyone who uses it is basically jumping on yesterday's trendy jargon, and that's not a good sign.
Back in the day, email was great. A listserv targeted to a specific community of people that know their netiquette is the best way to collaborate.
So the statistics are being skewed. We don't really know by how much, because the article doesn't say how many went to the hospital for Covid-related symptoms.
Now consider the opposite. The lights are off because the bulb burnt out. That's a lot less ambiguous. If you want to doubt the causality you've got to get all mystical.
- A process wrote 125 GB of logs, why?
- It was compiled with VERBOSE=true, why?
- The build config was changed on 7/12/2021 by Steve, why?
- Issue #5988, need to collect data one why that process crashes so much.
In order to get the "because" we have to imagine another state of the world where you DID turn on the lights, and further speculate that this would have been effective to illuminate the room. That's counterfactual, because the fact is that it's dark in here.
- the switching costs for programming languages are very high, even if you're switching to an established language
- it's hard to evaluate a new programming language; you don't know if it's good until you've written something non-trivial
- learning a new language takes a lot of effort, particularly for languages that aim to be better than existing languages; better implies different
- given all of the above, early adopters will probably not use the language for their day job, they'll use it for hobby projects; hobbyists are price sensitive
I don't actually think having to compete with free is actually that much of an issue compared to the above. Even free languages that are genuinely improvements over more mainstream alternatives face multidecade slogs to create a small community and get some adoption.If a person breaks a promise to you, he's a lying liar who lies. If Facebook recommends a political group to "at least 3 people," that's not a broken promise. That's an amazingly effective tweak to the recommendation algorithm. The same goes for all sort of claims people make about Facebook:
- You were paid in Rubles! (It's not like there was a salesman that should have been suspicious. Facebook gets paid in Rubles *all the time* because they have millions of Russian users and many, many Russian ad customers. No human looked at the ad before it went up.)
- You're allowing people to post hateful things! (Again no human reads all the posts. There are people that review a tiny percentage that have been flagged for one reason or another, but they'd have to employ a sizable percentage of the world's population to review everything.)
- You're censoring conservatives! (Same thing, nobody is checking the political affiliation of posters before allowing posts to go up.)
The fact is, this thing has never existed before, and basically no human inventions have reached this many people before, and it's frigging hard. Zuckerberg and the rest, are making it up as they go.All that's not to say that Facebook is awesome and the criticism is unwarranted. I personally don't use Facebook anymore for all the usual reasons. We should absolutely be talking about the role of social media in society, and how it's really warped public discourse, polarized the polity etc. But "it's easy, if you would just do this one thing, everything would be peachy" is absolutely the wrong conclusion and people seem to insist on reaching it every damn time Facebook comes up.
Collective bargaining is inherently about eliminating competition between workers. That is, it creates a labour monopoly to balance out a labour monopsony. That might (might!) be a good thing for autoworkers. It would be an unmitigated disaster for software engineers, and the tech sector in general.
People who write code are unbelievably productive compared to just about any other job function, and software engineers (who we'll define as people who write code for tech companies) are even more so. Part of eliminating competition between workers is making sure that nobody works harder than anyone else. That would be devastating to the productivity of software engineers, which would make them less valuable to tech companies. That would lead to a decline in salaries, and general stagnation of tech.
Another aspect of preventing competition is seniority. One of the archetypes of the tech world is the wunderkind—the brilliant kid fresh out of school that rockets to the top. A union would tell that kid, "sorry, you'll have to pay your dues as a junior engineer for 5 more years, then you'll be eligible for promotion. In the meantime, we'll give that job to cwp, he's got the required seniority."
Just think how this would affect tech companies. Sorry, you can't pay more to attract the best. If you're really careful about interviewing, you might be able to find some people with both skill and seniority, but it'll be tough because smart, ambitious people have all gone to Wall St or whatever industry has the best opportunities.