Malleable software – a new paradigm of software development for an LLM age
When we work and live in a physical space that we control, we tend to evolve it to suit our own needs. As Stewart Brand writes in his book How Buildings Learn: “Age plus adaptivity is what makes a building come to be loved. The building learns from its occupants, and they learn from it.”
Malleable software: Restoring user agency in a world of locked-down apps
This is a delightful essay by ink & switch.
The rigidity of software isn’t just a minor inconvenience. It can seriously impede people doing important work. The doctor and writer Atul Gawande has written about how computerization in the medical profession is leading to record levels of burnout. For instance, doctors would once skip irrelevant fields when filling out paper forms; now the software forces them to fill in those fields, and they have no power to edit those software rules. As Gawande says of one doctor: “Spending the extra time didn’t anger her. The pointlessness of it did.”
Every one has felt this emotion. In fact, the very notion of Minimum Viable Product is a result of the fact that we have to balance so many user needs that we choose the lowest common denominator because we are fundamentally treating a multi-variate problem. To simplify, we choose commonality which is antithetical to what software is supposed to do – which is high leverage over limited marginal costs.
Here’s another manifestation of the same problem – the evergrowing feature request backlog
When different users have different needs, a centralized development team can’t possibly address everyone’s problems. And for that matter, when a developer does try to cram too many solutions into a single product, the result is a bloated mess. To avoid this trap, good product teams learn to decline most user requests, leaving a long tail of niche needs unserved.
Of course, this led me to think about greasemonkey scripts and the web extensions model
A good plugin system makes it easy for users to get started customizing with a minimum of effort, because they can install plugins that other people have created. A plugin API also has the key benefit of stabilizing the contract between the underlying application and various extensions, helping with ongoing maintenance.
…
There are other problems too. Going from installing plugins to making one is a chasm that’s hard to cross. And each app has its own distinct plugin system, making it typically impossible to share plugins across different apps.
…
The limits of the underlying platform can also limit what they’re able to do—for example, browser extensions can’t modify server-side behavior, severely limiting the features they can provide.
Enter the hot topic dujuor
We think these developments hold exciting potential, and represent a good reason to pursue malleable software at this moment. But at the same time, AI code generation alone does not address all the barriers to malleability. Even if we presume that every computer user could perfectly write and edit code, that still leaves open some big questions.
One thing to ponder – is the result that we have an app model in the first place where the majority of our users are consumers and not co-creators because that’s what the majority of humanity wants to do?
How does this analogy apply to software? Many applications are avocado slicers. They’re a bundle of functionality targeted at some specific use case: planning a trip, tracking workouts, organizing recipes. Because an app needs to handle many tasks associated with a use case, it sometimes doesn’t handle any of them particularly well. You may have come across situations where an app is missing some functionality that’s important to you, while simultaneously including extra bits you don’t need.
Put another way – there’s a reason why avocado slicers continue to sell even when everyone knows that knives can do the job.
The rest of the post highlight the various components ink&switch have developed in the form of infra and malleable documents that bring these ideas together. With no intention of downplaying it, they sound like Google Wave, albeit now with an LLM component to it 🙂
I am excited for where this takes us. I personally like the concept of “local first”, “sync next” and then leverage that for community inspired creations. I also very interested to apply this into consumer loops for consumer apps.
This is something that games have been kinda leveraging for a while. However, when done intentionally, I personally think this is the future of “community” in games.
#ai #dev #devTools #development #malleableSoftware #models #productManagement #products #programming #software