Concept

Malleable Software

conceptproduct-managementdesignai-toolssoftware-development

Malleable Software

Malleable software is software that adapts to the user’s intent rather than locking the user into the designer’s mental model. The term is used by Max Schoening to describe a design philosophy for the AI era: software should work closer to the interests of the people who use it than the interests of the corporation that made it.


The failure mode it names

The typical failure mode of non-malleable software: the tool is built around the designer’s mental model. Users learn the tool’s vocabulary and adapt their intent to fit the interface. “Conditional formatting” is a feature name; the user’s intent is “highlight cells where sales dropped year-over-year.” Non-malleable software requires the user to know the first before they can do the second.

The historical reason for this constraint: implementing arbitrary intent required users to learn precise vocabulary. There was no other way to communicate intent to a computer.


The AI inflection

Language models can interpret intent expressed in natural language without requiring the user to know feature names. This removes one of the historically binding constraints on malleability.

The implication: the design challenge shifts. Before AI, the problem was “how do we surface the feature?” After AI, the problem is “how do we understand what the user actually wants?” Understanding intent is now the hard problem; implementing intent is not.

Schoening’s claim is that this shift should change what software companies invest in. Instead of investing in taxonomy design (what are all the things the software can do?), the investment should go into intent inference (what does this user want to do?).


Relationship to agency

Schoening pairs malleable software with a claim about agency as the new scarce resource. If software is malleable — if it can respond to any intent the user expresses — then the constraint on value creation is not the tool but the user’s clarity of purpose. Do you know what you want? Do you act on it decisively?

The design implication: products should be designed to expand user agency, not just expose features. The question is not “what can users do with this?” but “what do users want to do, and are we removing every obstacle between wanting and doing?”


Relationship to Vibe Coding and AI-native development

Vibe Coding and malleable software describe the same shift from different vantage points. Vibe coding describes how developers interact with AI to build software; malleable software describes how end users interact with AI-enabled products. Both centre on the move from fixed vocabulary to natural-language intent.

Michael Truell on Cursor and the World After Code uses different language — “the world after code” — to describe an end state that is substantially the same: software logic that is directly comprehensible and editable without requiring the user to learn a formal language.


See also