This, unfortunately, takes time, as one has to restart many times because of ideas that turned out not to be as great as one had initially thought. And it results in software that is called "opinionated", and often does not follow what the "industry" does.
Also, where are the AI-operated startups?? Why has nobody’s openclaw biz gone multinational by now?
AI is not capable of empathy.
AI is not capable of having good taste.
I have an experiment to offer. Find a really, really great example of something poorly-designed, too busy or whatever other metric you want to use as your "poorly-designed" thing, then ask Claude what's wrong with it and how it should be improved?
This puts large orgs at a disadvantage because they are built to coordinate work across a collection of narrowly scoped roles and keep people in their lane, so they aren’t built to hire for and leverage broad skillsets.
Then we will soon forget how our airplanes works
The lies of this decade. Hopefully we will heal sooner than later
Defining what to build in enough details is how you get the business logic nailed down (aka essential complexity, aka the domain in DDD). Code is just formal writing and architecture is there for maintenance (a program can be in a single file).
Sure there are accidental complexity like the intricacies of the tech, but those are actually explained very well in the docs.
Unfortunately, humanity seems like a race destined to kill itself. People are more interested in how much they hate their neighbor or feel excited about an advertisement than anything meaningful. such a society has no basis for stable governance.
When you're creating art or even a product, what you create is a result of your particular values and particular tastes and those drive some sort of purpose for whatever it is you're creating. What you're building is, generally, made for the consumption or use by another person (even if indirectly), and we mostly have empathy and want those people to have a good experience with whatever we're creating. We think about our audience and weigh their particular needs.
When you use good software, you can sense the intent in what was made. The person (or team) combined their particular point of view with that of the goals of the user. At this point, I don't think agentic coding is going to give you that, at least not fully. It might get most of the shared values and common things right as a result of its training data, but a human still needs to edit the output or steer it on a good path that only they can see and which is part of a larger vision. For simpler needs, taste and values matter less, but for more complex things, it makes a difference, in my opinion.
It may not be your taste, but it certainly has taste, and its taste will only get better with more training. Yours, if you use it, will atrophy, as you reduce contact with the details of your problems.
Agentic coding is a replacement for your agency.
I'm sure we've all met someone who has a unique speaking style and might repeat phrases or words unusually often, but that still doesn't bug us as much as "the honest truth.." or "load-bearing.."
In this way each time ChatGPT or Claude is released, new memetic phrasology is emitted into the human psyche at astoundind speed.
Even with newer model generations larger efforts still seem to drift back towards "default choices" vs "steered specific aims."
In many areas, "good" taste is not particularly good anymore when it's everything's default style.
The edge then becomes finding the niches that (a) can be better served w/ non-defaults and (b) have economic characteristics that make it worth catering towards those.
I think the days of one-size-fits-all huge-scale-and-ROI SaaS swiss army knives are quite numbered, but I think the replacement world could be a much more vibrant ecosystem with a much more varied set of players.
I don’t see how this is any different. The input comes in a different section of context and potentially before rather than after generation, but that doesn’t change that human taste is needed.
let foo = {
if bar {
1
} else if baz {
2
} else {
3
}
};
Unfortunately not all languages are Rust.AI lets people get personalized software for "free" as derivative of existing work. Think adobe suite but with the 5% that an individual needs.
Then taste loses value as everyone has their own software.
That's where I am in that train of thought at least. Pretty grim I know.
I sometimes think, "what art would a rogue AI consciousness create to satiate its own artistic impulses?"
If the target audience was fellow rogue AI entities, I don't think there's any guarantee that such art would be compelling to humans, or even comprehensible.
And if its a human directing the AI so that the output is compelling to humans, then there's a human in the loop, whose "values, intent, and taste" matter.
How do you know that? AI is also software. Who controls that software?
Plus, AI picking up data from real human means they will also incure bias aka "taste".
This is a a very good and succinct summarization.
What I'm also observing recently also is that pretty much every product tries to expand to do things that completely different products used to do, and become a mega-product-for-everything. It's like a Zawinski's Law on steroids.
Then images.
Then videos.
Now there is games in it.
And you can follow users instead of communities now.
And instagram has videos.
And pinterest has videos.
And imgur has videos.
And youtube has games.
And tiktok has longer videos.
And twitter also added images, videos, and then longer posts.
And tumblr has added videos, then communities that you can follow instead of users.
It feels like if a social media survives long enough it just turns into facebook.
I'm not trying to buy a labyrinth.
From the user's perspective, sure. Or when a particular product or version ships, then it's "done" as far as that version is concerned.
But from the maker's perspective... nothing will ever be complete. Even in the most meta sense possible.
Philosophy is fun :)
The opinions are those of the creators and that isn’t changing with AI.
I agree that with AI it's very tempting to throw together a bunch of code without any thought of the longer term. But a lot of people are acting as if all programmers are artisans that produce well written code following the highest standards. That is just not true.
Anyone that has worked in an enterprise context knows this. You spend more time saying no and finding justifications than in the editor.
That said, if you think developers have never enjoyed telling other people what to or not to build, I recommend checking out Stack Overflow.
Claude is better because it validates its work visually and seems to have a more intuitive sense of what makes an interface pleasant to use.
Codex manages to be both rigidly literal about the spec but also prone to adding unnecessary explanatory text, helper elements and visual clutter, oddly like a 1990s ERP system.
The role of product manager/product design is literally to turn whatever is being asked for into the optimal solution someone would actually want to use - it's this translation instinct that is missing from AI.
Yes, it looks like people've choosen chat interface. They don't like filling forms.
> Individuals work with agents to produce changes independently, each operating a small software factory. Each change might make sense on its own, but together they start to resemble Frankenstein’s monster rather than a carefully shaped sculpture.
Before agents people do the same and our code bases not perfect.
Behind software not only creator, it's people who interested in and users. To make software creator needs a factory.
> Making software is getting easier.
Nope, cuz we have a lot of Frankensteins and chat interface
> Individuals work with agents to produce changes independently,
> each operating a small software factory.
>
> [...] together they start to resemble Frankenstein’s monster
> rather than a carefully shaped sculpture.
Do solo developers consequently have a bit of an advantage today when it comes to producing tasteful, opinionated software?I thought so too, makes you fuzzy and stuff inside. I wonder if this person behind X template is limited to software though? Curious if we can feel the aura of the sweatshop workers' "experiences, perspectives and hopes and dreams" while using our smartphones and gadgets. It's nice to think about, isn't it? AI couldn't replicate these intangible and difficult-to-quantify delights.
This week Porsche showed the mission-S concept, not even a screen in the car. Few features, dedicated to driving and I guess the user manual won't be a 500 pages book. In France Dacia Sandero (low cost car with only basic features) is the most sold in the country. I am not a fan of Steve Jobs and never owned an Apple but, correct me if I am wrong, he wanted a limit set of useful and perfect features for his products.
I believe this is going to be a huge filter moving forward.
Retooling thought to be delivery-oriented is very difficult.
And I’m still are, with the difference that I still enforce this at agent and code review level because I believe a solid foundation is important for long term success, especially now that it can be cheaper to achieve if you choose to
Well thought out and built software is so satisfying to use that I would be very sad to see it go. Particularly given that the current crop of frontier labs don't really seem to care that much about the craft and feeling of software (at least relative to their other priorities.
That mowed lawn. That email message. That meal they made for you. They are windows into some specific humans.
> The product changes are primarily additive... I think the reasons for this is that it's lot easier to add new capabilities, than rethink existing capabilities.
This is perhaps the biggest difficulty in Product, and the core of the Innovator's Dilemma. Changes or removals, fundamentally, fuck with how somebody uses your product. It is very, very rare to ship a feature - something that inspired somebody in Product, got all the internal stakeholders to sign off, including getting leadership to fund it - and have nobody use it, so that it isn't controversial to remove it; even then, removing it competes with resources for adding something else, so it's still controversial to remove it. When somebody uses something that you fucked with, you risk them churning, that simple.
Coming up with good features to add is not hard. Everybody and their grandma has ideas. A simple spreadsheet can count which ones are most popular and are proposed most often. This should not, in and of itself, dictate what you build next, and bad Product leadership looks like following mass diktat.
Good Product leadership is not afraid of the consequences of fucking with the user. Good Product leadership has both the courage to reformulate the offering and gets the reformation right, because they intuitively understand the user, the domain, and where they sit in it, better than anyone else. They ship stuff that fucks with you because they understand the difference between the bad kind of being fucked with, and the good kind. And if you churn, then you churn. So be it. You can't actually make everyone happy all the time, so focus on making happy the people who get it, and accept losing the rest. That's also easier to say when you have $100k in ARR with $1k ACV, compared to $5m in ARR with $2.5m ACV.
Good Product leadership is rare because good leadership is rare. AI has nothing to do with it.
I can count on one hand the number of PMs in my career who understood the platforms they worked on outside of their extremely narrow domain - and even then that narrow specificity was often a distorted lens that came from the customer interviews they did that they remembered or found evocative. And this just gets worse the further up the chain you go.
Engineering knows that the best way to improve a product is to dogfood it. Nothing beats regular lived experience long enough for the human brain to start its pattern recognition. But nobody wants to eat their own dogfood, they want the kibble from another brand that has all the shiny marketing attached.
If I had my way, I'd stick PMs into shadowing sessions with Support on the regular for sentiment analysis. No relying on Support management to relay upwards trends - there's far too few Support managers worth their salt.
I somewhat agree with you, and think you're right at least part of the time. The main disagreements I have are (a) dogfooding is not a panacea; it can result in products that are built for the user who pays the least rather than for the wider market, and (b) too often, Product is simply not hired from the market. Product rarely works when the person coming into the role was a software engineer who got an MBA, unless the product is also used by software engineers. I can't imagine trying to lead Product for, say, Excel, without a background as an accountant or banker, who lived with the problem day-in-day-out and has strong opinions about what the solution looks like.
Yeah, look at modern AAA games vs. small indie games.
It used to be taken as a given that the software houses one respected didn't actually work like that. Steve Jobs and Johnny Ive yelling at their minions about user experience. Even Bezos sending the dreaded question mark. Great software was the work of a team translating an auteur's personal vision into software... while the blue chips like IBM churned out useful but soulless software by the corporate method above
Somehow most people don't seem to believe this anymore, despite the repeated failure of corporate environments to produce better software.
As with most creative pursuits, the best things happen when there's a clear point of view.
Unfortunately, the best things aren't always the most commercially successful, because products are only a small part of what makes a company successful. I think we're seeing this play out in the software market.
JIRA might be objectively awful, but it still manages to print money!
He said the lifecycle of a program ends when the development team is disbanded or when knowledge transfer fails to happen. But these days, people develop with AI. Will that knowledge actually remain? There's a slightly tircky point here
Of course, even in the past, once a codebase got big enough, everyone was writing code on top of an incomplete theory. But when you delegate work to AI, the theory itself isn't yours anymore, which makes it even trickier.
While it is in some sense harder, there are also opportunities, because the reach of a person is bigger and one can refactor more frequently to align with the theory being developed without the cost that used to be associated with this. AI is also effective for producing materials to teach the theory, increasing the chance that others can contribute coherently to a product.
Deep artful craft requires inhabiting work beyond basic professionalism and requirements. You set aside self and ego and commit yourself as a tool to create.
It’s a value system created via example and culture. We have to be ready to prioritize reflection and learning, meaningful feedback, dialogue, certain kinds of humor even.
So it’s sadly not healthy or sustainable in many settings.
Edit: thank you for this post. It was a nice humanist reaffirmation.
A lot of good software, if not most of it, doesn't come from "the industry"...
Couldn't agree more. It does reflect many of the values of what an ideal product should be based on the developers' experience.
my guess is they're asking their "factory" for features without considering the product as a whole, which would be in agreement with the article. but features must be considered and integrated as a whole, not the sum of their parts.
Well... when you look at the org chart of many companies, the answer is obvious. Either there is no person responsible for anything at all, and everyone works for themselves, or there are dozens of little fiefdoms, competing for budget, staff and anything else.
But it's rare these days to have one person or even a committee that actually takes responsibility for a product as a whole and most importantly has a joint, shared and agreed-upon vision: how should the product look like, what should the product accomplish and how should the product be architected?
And then on the opposite side we have companies like VW, Microsoft and other craps who are constantly going downhill because there's no person behind the products.
I wouldn't mind if they accepted they are building utilities so that there's no need to reinvent the wheels every quarter. Windows 7 was pretty much done. Just add small amount of features (like wsl) over time, but they had to butcher it to add metro. It's like reinventing pry bars and concrete blocks.
Working software gets remade because 'delivering' a project, which includes both development and marketing, looks good on resumes, not because the users want it.
If there are quarterly reports there has to be Number Go Up growth.
The net result is enshitification, with income models that rely on exploitation and forced lock-ins, not on voluntary mindshare attracted through quality.
UX-first software that isn't the result of corporate infighting, and isn't automatically aligned with corporate values, still exists in niche boutique developer spaces, but not so much elsewhere.
The biggest issue is that AI changes none of this from the top end, but may change it from the bottom up. If vibe coding becomes more popular bought/subscription options will first be replaced by DIY vibe coded custom tools with some longevity, and eventually by compute soup which improvises tools on request.
Pension funds and insurances? Sure, they love stable stock that predictably pays dividends and doesn't move around much. They have giant amounts of money they need to keep safe and utilities have a captive client base with low risks, while also having a predictable expenses schedule, and price increases of suppliers can trivially be passed downstream to the consumers. That's true for classic utilities - power, gas, phone, internet - and for "software utilities", stuff like SAP or, at least in the past, IBM.
But the general stock markets? They have been driven rabid by unicorns making return rates that are completely unreasonable. Everyone is just chasing the next hype. One day it's crypto, one day it's NFTs, one day it's cloud computing, next day it's AI. And Microsoft decided during the cloud computing heydays to finally enter that fray... and that was when shit went down hard.
Well .. I'd love for AI to vanish ... but ... that statement is also wrong.
It insinuates that prior products are all great. I think this is not universally true. Take GTK. I think gtk2 is better than gtk3 which is better than gtk4 (and gtk5 will be wayland-only). But none of them, individually, was really that great to begin with. QT also feels just way too huge - I get that you get a lot of functionality, but to me it often feels as if these toolkits aren't that great. And the competitors are often worse. This is not solely confined just to the code that powers them, but documentation as well. The gtk4 documentation is a total joke. I learned more about GTK3 from the python examples by the way, which were well documented - I think lazka (Christoph Reiter) wrote or at the least organised most of that (for python-gtk3). Barely anyone seemed to want to use python-gtk4, so that part also could be seen in the documentation being worse for a long time (I have not checked this in the last some months, but back when I checked it, it was that way, it almost seemed like 100x more users of python-gtk3, and even that became a slow dying breed ... evidently the www took a huge toll on the traditional GUIs).
Yet https://linear.app/Homepage doesn't scroll without jank on mobile.