“Another way to put this: Questions are wonderful for a deeper dive, but not a daily drive.” Nicely put!
Like the tension between tactile buttons and knobs vs flat touch screens in today’s cars.
I also think UIs will become infinitely personalizable. ‘They’ will even ask you how you want to see things differently and morph to taste. The UI you get at the outset will be a best guess starting point.
For now, a technique I’ll call the ‘bridge pattern’ is what I’m using in two apps I’ve been developing. It provides a hybrid UX: On one hand, you can use the app with trad panels, buttons, etc- but there’s also an AI chat panel available and you could drive the entire create/edit/delete experience from it.
It’s essentially a better realized co-pilot.
In the AI chat, on command (text or voice), you can do things like add tasks, search the system or create artifacts which show up as new, known-type UI things to touch/feel and interact with in familiar ways.
I’m also starting to imagine the app also providing an always on voice mode that talks with you (and you can talk back) at the same time as you use trad UI affordances. Will be tricky to be helpful and not annoy. Remember Clippy?
The trad UI will increasingly conform within preset/predesigned bounds. Behind the scene, the state of screen UI will constantly update the AI prompt context which simultaneously can be used to drive the ensuing trad UI state change or voice assist.
The Bridge Pattern links domain adapted agentic systems to old world human computer interfaces while folks catch up and adapt. Or, perhaps they never will, completely, and they will always want a few basic panels and buttons for common functions while the system adapts to them. Se la vie!
I think you're going to see it's all going to converge back to screens and data and panels and buttons.
People don't want to ask the same question over and over. They'll ask something, it'll be set up to show something, and that thing will be saved as something they can always look at. Stable pre-defined glances, not blank slates each time. Common questions will become buttons and panels again.
Most people ask the same kinds of questions about what they work on most of the time. Having to start from scratch with the questions every time seems like a step backwards.
Another way to put this: Questions are wonderful for a deeper dive, but not a daily drive.
Not sure you're suggesting questions always, but the comparison screenshots looked that way.
Why rewrites can be so difficult.
It’s easier if memories are in a formidable test battery and why TDD is essential when building with AI. You build with clear intention and get a system you can continue to improve months or years later.
Respect the memories.
Most software architecture assumes the implementation is the system.
That’s why rewrites fail.
The implementation contains years of accumulated memory: edge cases, operational lessons, regulatory constraints, production discoveries, failed experiments, and hard-won invariants.
The code runs the system.
The memory is the system
More gold from @addyosmani. A sampling:
“Spawning 8 agents doesn’t speed up your judgement time. It just makes the queue of things feeding into it much deeper.”
“… architecture is the urgent skill now. Knowing what belongs inside one agent and what is too much for it. I would add that you are a component in that system. Your attention has a known, low serial throughput. The system either respects that number or it routes around it by secretly lowering your standards.”
“We talked about technical debt and cognitive debt. The orchestration tax left unpaid is how you accumulate both at once. You merge stuff you didn’t read well. Your mental model of the codebase goes completely stale. None of this shows up on the dashboard today. It shows up when production breaks and you look at the system and realize you have no idea how it works anymore.”
I do a few things to deal with this:
1. Develop your own agents as you would junior employees and begin to ask your primary agent to delegate certain tasks. This allows you offload subsets of predictable tasks to known actors with increasingly deterministic results.
For example, I have a ‘Tidy’ agent that will continuously monitor ‘scratch’ content for cleanup tasks. As a new made-a-mess pattern emerges, instead of asking the prime agent to clean it up, directly, I ask it to train Tidy to recognize the new mess pattern and to handle it. Of course is also ‘skill’ the primary to use Tidy in the first place.
2. Limit your own ‘concurrent’ agent sessions to a number that allows you revisit each multiple times a day. For me this pans out to between 3-6 distinct conversations.
Each of these may be running parallel subagents or delegating as in #1. But beware of massively spawned subagents for every prime one, which will eventually overwhelm you, your workspace or both. Best to have no more than one or two sub armies running at a time. Now you can see why I made Tidy.
3. Dedicate sessions to orchestration debt payoff. This incurs a different ‘cheaper’ form of orchestration debt that can help you keep a few more plates spinning than otherwise.
All agent sessions aren’t equal. Balance the complexity and mundanity to achieve a more predictable stream of new releases.
4. Dedicate portions of the end of your day to close out long running sessions. This involves ensuring clean CICD runs with new revisions, cleaning up stale worktrees, updating tracking issues, communicating witj colleagues and … making sure the thing that you just built (what was it?) actually works.
Respect the Orchestration Tax it will not respect you. Great article, Addy.
More FUD that misses the point. White collar work is getting up leveled. Navigate the new world or grab a blue shirt (which could be a better life for many, actually).
Elon said it. People called him crazy.
Now Microsoft AI and Anthropic are saying the same thing.
"Most white-collar work will be fully automated in 12-18 months."
Meanwhile the government can’t comprehend how to keep up.
I’ve come to appreciate how valuable PII scrubbed usage patterns, derived from seemingly mundane product usage can be.
There’s a saying that if you’re not paying for product, you are the product (and so I am here as well). The new anonymized usage patterns gleaned from product use are the ‘content’ of this generation of apps and today’s builders are remised not to design for this.
This new value chain is not a one way street. Over time, it will serve to keep end AI consumer costs low- though you wouldn’t know it by how much we pay for certain AIs these days. This paradox is resolved by an emerging strata of cheap+good enough, good, and expensive+great LLMs with varying pricing models adapted to token volume by consumer segment.
AI world user content will be endlessly mined and rapidly commoditized in the next revision of model weights. xAI now owns the next link in the Cursor value chain and paid for it accordingly.
I’d love to see how they arrived at this evaluation. Mind you I’m a Cursor customer and I endorse it- but $60B seems steep for VS Code on AI steroids. The basis of a new xAI product strategy?
Historically, traffic is a) Jevon’s Paradox applied to the ‘free’ supply of useful roads and b) lack of market incentive for profiting owners to ration and build more (stacked, etc). The Boring Company and autonomous air taxis are the free market solution. You could also privatize roads.
See how Prufrock continuously mines - pushing and building at the same time.
The machines, from Las Vegas to Dubai, are remotely controlled from our Bastrop Operations Center.
These advances help TBC deliver more miles each year in the battle against soul-destroying traffic.
Jason Fried is one of our great writers, designers, and builders and has been an inspiration to me for years.
New things- and the new life they avail for others need a steady supply of Faith.
Amen!
Faith in eventually.
Making something new takes patience. But it also takes faith. Faith that everything will work out in the end.
During the development of most any product, there are always times when things aren’t quite right. Times when you feel like you may be going backwards a bit. Times where it’s almost there, but you can’t yet figure out why it isn’t. Times when you hate the thing today that you loved yesterday. Times when what you had in your head isn’t quite what you’re seeing in front of you. Yet. That’s when you need to have faith.
There are designs that are close, but not there yet. There are obvious conflicts that will need to be resolved. There are lingering things that confound you, confuse you, or upset you, but you know that eventually they’ll work themselves out. Eventually you’ll find the right way to do something you’ve been struggling with.
It’s hard to live with something that isn’t quite right yet – especially when it’s your job to get it right. It’s important to know when to say “it’s fine for now, but it won’t be fine for later.” Because moving forward is critical to getting somewhere. And, eventually, you’ll figure it all out. It’ll all work out in the end.
This is what I’ve always believed, and have always tried to practice. A dedicated faith in the eventual resolution of a problem, the eventual execution of a concept, and the eventual realization of the right design. Even when something’s poking out you don’t like, or something isn’t aligning quite right, or the words aren’t as elegant as you’d hoped, or something just isn’t easy enough yet, you need to have confidence it’ll all come together eventually.
Remember that what you’re making is in a perpetual state of almost right up until the end. And it's never right even after.
In the meantime, you just press on and keep making things, trying things, and getting closer and closer to the time when you can tie the loose ends into a perfect bow and present it to the world. What fun it is!
The danger with these two levels is going to extremes.
If you become too "agile iterative", you keep changing the macro plan because of local information. Meaning you go in circles.
If you become too "master plan", you fix the macro plan before you have enough local information. Then you end up in the wrong place.
This is why hill-climbing techniques are so important. Eg asking the right questions at the macro level, drafting a macro design, then diving down to spike at the integration boundaries to surface unknowns and detect time bombs.
@elonmusk Don't just survive reentry- harvest it.
Starship V3/V4 should evolve into a Rocket-Based Combined Cycle (RBCC) platform. Convert the “belly flop” drag into a propulsive heat shield. A sort of scramjet with the rocket “frame” as the engine.
Structural Intake: Use the forward flap/hull gap as a compression ramp. “The best part is no part”- no added pods, just geometry.
Active Transpiration: 3D-print porous Inconel/Steel intake lips. Methane “sweats” to create a boundary layer, then enters the flow for combustion.
Plasma Steering: Leverage the reentry plasma layer + MHD to “squeeze” flow without moving geometry.
By using the air-breathing mode for the high-altitude deceleration portion of the landing, you eliminate the need to carry LOX that the Raptor would have consumed for that same energy output.
Because the rocket is "oxygen-neutral" for that phase, tons of tank capacity is now available for additional payload during the initial launch from Earth.
AI-Assisted Unverified Details:
Isp Shift: Installed Isp moves from 350s (Raptor) to ~1,500s (Augmented).
Mass Fraction: Offset ~12t of landing LOX by harvesting atmospheric O2.
Payload Gain: Every kg of O2 not carried for landing is ~0.8kg of added payload to LEO.
Thermal: ”Inhaling” stagnation reduces peak heat flux on the nose, enabling faster turnaround.
The Proof: Tsiolkovsky Rocket Equation (Modified)
1. The "Standard" Landing Case (Rocket Only)
Delta-V required for landing: ~500 m/s (includes deceleration and hover).
Starship Dry Mass (M_dry): ~100,000 kg.
Exhaust Velocity (V_e): 350s * 9.8 = 3,430 m/s.
Mass Ratio Calculation:
M_start / M_dry = e^(Delta-V / V_e)
e^(500 / 3,430) = 1.157
Propellant required: 15,700 kg of Methalox. LOX portion (3.6:1 ratio): ~12,280 kg of Liquid Oxygen.
The "RBCC" Landing Case (Air-Breathing Phase)
- Mechanism: During the descent from Mach 12 to Mach 3, the RBCC engine captures oxygen from the atmosphere.
- Effective Isp: 1,500s (V_e = 14,700 m/s).
- Mass Ratio Calculation for the same 500 m/s energy: e^(500 / 14,700) = 1.034
Propellant required (onboard): 3,400 kg (Methane only),
Onboard LOX required: 0 kg.
- My two tokens worth :)
Living this.
Another bottleneck forming is verification of function and impact. This where white collar work is now congregating.
Kind of funny to think about how ‘QA’ is back in vogue.
📁 Marc Andreessen, co-founder of Andreessen Horowitz, says AI coding is not replacing programmers; it is turning them into “AI vampires”.
Who work more, sleep less, and produce far more. The blind spot is that productivity is now outrunning comprehension.
At scale, software becomes something people summon faster than they can understand or control.
“The supply of accessible material generates a demand for synthesis that did not exist when the material was inaccessible. A student who two years ago could spend a semester just locating the relevant texts can now spend that semester actually thinking with them.”
The pace of generating new insights is creating a new bottleneck: Assimilation, or application. And a tool, a mere stepping stone to new application is visualization.
What cheap access to inquiry leads to next is a demand to more efficiently assemble insights into testable form. To do that, we need to be able to see the possible shapes of that form. This is what Computer Aided Design (CAD) did for industrial manufacturing and something like ‘Dynamic CAD’ or agent-generated visualization is what is needed now.
The wave, almost upon us, is a new generation of tools that generate highly domain specific, or even individual human, bespoke visualizations. This new wave of ‘Gen-UI’ will in turn lead to Gen-App.
Imagine every piece of clothing you’d ever buy, custom-fitted, with your own choice of fabric, patterns, with buttons of your own style and construction. I happen to prefer snaps to buttons. Now, apply this pattern to computer applications.
For example, I’ve been working on a system for University of Texas engineering students that, essentially, is an AI ‘teaching assistant’. For each student course, it will provide all the same access to information that these GPTs grant us- along with a deep understanding of what the student has learned at any given point in time.
New AI TAs will personally adjust the conversation about any given topic to a dynamic understanding of where each student is at, at any moment during their course. To aid in this process, it may dynamically generate text, graphs, web pages, speaking avatars or other forms to communicate a difficult concept in ways that each individual student needs.
And this, in turn, will lead to an explosion of demand for more learning and, as this article aptly describes, more insights. It is nothing short of a divine flywheel of discovery and idea assembly that will yield us dimensions to Creation that we’ve only been able to get a glimpse of until now.
@GergelyOrosz And the bar for how well it performs and how customized it must end up being to meet the buyer’s (or their agents’) need is also forever raised. No more generic solutions for the masses.
Love the distinction and tips for navigating this big gray zone we find ourselves in. I’ve experimented heavily- from careful and minimal delegation to extended sessions of parallel agents running on well formed PRDs+Tech Specs. Three things really seem to help: 1) demand test driven development followed by 2) user journey e2e, then 3) adversarial/chaos testing (perf and security). Sometimes #3 can follow a half dozen iterative rounds of 1+2 to wrap up a feature or feature set. Skipping any of these steps always bites back.