Yeah this trope won’t die. You can win an internet thread with data that tells people they don’t know they’re better off, but you can’t win an election when they don’t believe it.
“Nobody likes my product because they are stupid”.
This is how I’ve implemented login several times now, and it comes from repeatedly having to undo a ton of assumptions about what a User Account is when attempting to modify a funnel to just actually work how people want it to on both sides of the equation.
Unless you’re operating in an anonymity preserving space, you can just do this and choose to integrate with passkey later.
The main disadvantage of this method is that you have to think about managing multiple users for an account sooner than you normally would, since sharing a password is no longer possible. I can’t think of a funnel or UX that isn’t ultimately improved by conscious effort here.
The other is of course that your security becomes limited by the weighted average of security of your users’ email providers, which will generally be better than you need. Passwords can then be your second factor here, when you finally need them, or you can use some other factor yet again. In B2B you can jump straight to SAML or OIDC connections.
In B2B or D2C contexts this has always just worked and the edge cases are generally worth solving for the benefits to acquisition.
> The semantic web has been, in my opinion, a category error.
Hard agree.
> Maybe this all changes when AI takes over, but AI seems to do fine without us defining ontologies, etc.
I think about it as:
- Hypermedia controls were been deemphasized, leading to a ton of workarounds to REST
- REST is a perfectly suitable interface for AI Agents, especially to audit for governance
- AI is well suited to the task of mapping the web as it exists today to REST
- AI is well suited to mapping this layout ontologically
The semantic web is less interesting than what is traversable and actionable via REST, which may expose some higher level, reusable structures.
The first thing I can think of is `User` as a PKI type structure that allows us to build things that are more actionable for agents while still allowing humans to grok what they're authorized to.
Great read, especially from the perspective of just trying to understand why people overfit certain thinking to certain problems.
My startups perspective: I think it’s hard for people to understand the subtlety from all the memes and hearsay.
We hear that you need to talk to your users to understand what to build, but I’ve seen this fall flat on its face and lead to extreme confusion, several times now, when you’re not talking to your users as a matter of observing your product/business model against reality to then update the axiomatic thinking that (hopefully) lead you to its current iteration.
I’ve seen this play out as a cringy ask to “let us know if you think of any other features you might like” met with puckered faces from customers that essentially said “or how about not because my job isn’t to build your product?”
This is Henry Ford / Steve Jobs talking about faster horses. You’re not asking your customers what to build. You’re asking them to help you understand the reality against which your logic plays.
Then there’s the opposite, where a business marches forward because some axiomatic thinking has determined that the macro environment should support it, not updating itself against a pending catastrophe in cash flows that leads to cuts that further undermine its ability to exist even within its own framework.
Design and test from first principles, but operate for the pain of as many rounds as possible. Maybe one day you can truly optimize and it won’t hurt as much.
> cringy ask to “let us know if you think of any other features you might like”
One of the worst examples I've seen is trillion-dollar corporations like Microsoft basically putting new features to the popular vote.
You can buy from them a cloud service to the tune of a million dollars a month, but if you notice a bug, they tell you to go try and drum up votes from other users on some public forum.
It's insane, to the point where you can point out that their own product A doesn't work with their own product B where literally the only purpose of A and B is to be used in combination and they'll go tell you to upvote a "suggestion" to fix it.
The hilarity of this is that votes (or customer opinions) are hugely biased when sampled like this. If a new product isn't out of beta yet, it has very few users to vote on its features. If a some subset of a product just doesn't work, then users ignore it and then it effectively zero users, so zero votes on its issues.
Microsoft has some really perverse incentive structures. Side note, their forums are insane. Most of the "help" is "just run sfc /scannow and then re-install windows" they very clearly do not care to fix actual problems or to help people. They approach problems from a very far distance using a one-sized fits all approach. I think this says a LOT about how ms operates. I do like how Unix is the polar opposite of this. Its very DIY and fix it yourself.
I wonder if Microsoft's "Most Valuable $whatever" program includes a stint at support forums as certification requirement? Because whenever I end up at the help forum, there's always a Microsoft Most Valuable $whatever user present, and they're the one writing the most useless, dumb, and usually irrelevant (template copy-pasting?) responses. It's as if they're doing it to score points outside of the forum.
I think you should be asking about their work, and try to understand their business processes rather than what they want from your software. Then you can spot their pain points and develop features for those. I know this is easier when you’re an internal developer, but the best way we have to spot important features (and the removal of some) is to simply spend a week in the shoes of an employee using the software. Everything which annoys you, annoys your users.
Agreed, it’s about understanding the problem they have or the thing they are trying to accomplish so you can invent a new or better way to solve it (or eliminate the need for it in the first place).
> This is Henry Ford / Steve Jobs talking about faster horses. You’re not asking your customers what to build. You’re asking them to help you understand the reality against which your logic plays.
There's also this joke that the absolute scariest thing ever is an user with an idea. As in:
"I need to go from A to B", so far so good, that's what we need to know an act on. Then the user has an idea: "What if midway I could change to a fresh horse?".
I mean, sure, yup, it's been done (changing horse midway to quickly deliver a letter)... But that's not how cars were invented.
As with any investment, there's always the classic "Past Performance Is No Guarantee of Future Results". But with Bitcoin a significant downturn could be an existential threat if miners decide it's no longer worth their time and money to keep the blockchain running.
I suck in the kitchen. If you asked me to make you a sandwich, I would have to go to the cupboard or refrigerator a few times to end up with all the right ingredients. Then I could at least competently assemble the sandwich. My family also loves antipasto salads, which are basically just like a sandwich without bread.
If you asked me to assemble 10 different sandwiches, and 1 antipasto salad, some of which I'm seeing for the firs time, I would attempt to gather all the ingredients, but ultimately end up going back and forth between the cupboard and refrigerator still. I might even think, on one of those trips, hey, I don't need the mayo anymore, so I can put it away, only to have to go back and get it again for a later sandwich. The end result would probably be all the ingredients for every sandwich on the counter at the same time, as I should have done.
I'm pretty smart though. I'm good at Abstraction. So, I assume I'm going to get another order from the family for a sizable amount of sandwiches and some more antipasto salad. I name each sandwich and salad type and then write down a list of ingredients for each sandwich so I can cross-reference it to assemble a master list of all required ingredients per sandwich when the next order comes in. I can then go to the cupboard and refrigerator once.
I then order each sandwich type by their shared ingredients, so that I can apply ingredients only once until I'm done with that ingredient (and then I could put it away, but I'm not a premature optimizer). The only issue is that some ingredients require slicing, like tomatoes, and tomatoes aren't sliced in the same manner for the salad as the sandwiches, and my daughter can't stand when the tomatoes and lettuce touch on her sandwich, and my other daughter wants the cheese and the meat separate. I don't want to overcomplicate the problem, but I don't want to Repeat Myself either, since I know I can grab the tomatoes and slice them all up in the same step, so I need to remember when I assemble my list of ingredients per sandwich and salad that some are exempt from the ordered application of ingredients and must be handled by a single, separate script for assembly.
I run this process a few times, and it works, but I learn that it takes me 35 minutes to do, and that there's now a hard requirement on a frozen item involved with one of the sandwiches that it not be out for more than 10 minutes, so now this ingredient itself must be exempted from the step where I grab all ingredients and my assembly instructions for the one sandwich that involves this ingredient must be very clear that I will still also need to grab that ingredient.
Then I learn/realize:
In-fact, 90% of the time I make a sandwich, or salad, I only make one at a time.
OR
Nobody wants to order sandwiches by name, they just want to give me a list of ingredients in the right order
OR
I am gradually making so many more sandwiches every day that my kitchen counterspace cannot support getting all the ingredients at once
OR
I only make the same sandwiches + one salad every day to the exact same specification
I had to work on an architecture like this for a company that had no business employing such an architecture. It sucked, but in attempting to help people on team "this is good" communicate with team "this is insane, terrible, illegal even?" I ended up probably growing more than anyone on either team.
When life hands you executives with zero accountability, make lemonade I suppose.
Central Banks have allowed for the creation of tens of trillions of dollars / euro into a bases that were only in the tens of trillions.
That glut of new money took a flight to quality in banks and things like tech companies. Such firms, and all the people that contract with them or are employed by them as downstream from this money thus had a warped cost to capital compared to everyone else.
It wouldn’t make sense to operate a business and not choose the customer who can support a higher price point over the lower one with an identical cost, and with such a large delta, increasing margin as a matter of price increase made fundamentally more sense than investing in cost reductions.
The fact is that Central Banks had the largest role to play here assuming that choosing to make more money over less money by simply raising prices is not inherently evil.
“Nobody likes my product because they are stupid”.