<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://fifthrevision.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://fifthrevision.com/" rel="alternate" type="text/html" /><updated>2026-06-17T03:26:23+00:00</updated><id>https://fifthrevision.com/feed.xml</id><title type="html">fifthrevision</title><subtitle>Chong Han is a software designer and maker based in San Francisco, California.
</subtitle><entry><title type="html">In no particular order</title><link href="https://fifthrevision.com/micro/2026/in-no-particular-order.html" rel="alternate" type="text/html" title="In no particular order" /><published>2026-06-16T00:00:00+00:00</published><updated>2026-06-16T00:00:00+00:00</updated><id>https://fifthrevision.com/micro/2026/in-no-particular-order</id><content type="html" xml:base="https://fifthrevision.com/micro/2026/in-no-particular-order.html"><![CDATA[<ul>
  <li>I love designing and building UIs. Like <em>love</em>, love. It is work that combines product thinking, UX, systems, and visuals all at the same time and it tickles every part of my brain. There are easily five iterations to get to a satisfying outcome: original idea, wireframes, implementation, iterating through the trough of disillusionment, and then the transcendence.</li>
  <li>I’ve gotten to a good state with the <a href="https://run.sunnyday.run">Sunnyday</a> Agent configuration page. Good for now at least; and I don’t use the word good lightly. There are still rough edges, and aspects of the page which are candidates for a teardown and redo in the near future as my understanding evolves. But at least everything feels and works well within the constraints it’s supposed to right now.</li>
  <li>That’s one of the great things about working with coding AI agents. They give me higher degrees of freedom in working and can express in higher fidelity. If I were to put it in an analogy, it’s akin to the transition from 2d to 3d. We gain a new dimension that brings it closer to the real thing.</li>
  <li>After working on agents for the last few months, I have a lot of thoughts about performance. All the benchmarks tend to flatten them down to a single dimension, and to be fair that’s what benchmarks are supposed to do. However, agent performance is a much more nuanced, especially because there is the what is not said gap between the lines of the instruction prompt. I will have more to say about that as I collect my thoughts.</li>
</ul>

<figure class="image ">
  
  
  <img class="" src="/assets/images/unfiltered/26-06-16/agent-configure.png" srcset="/assets/images/unfiltered/26-06-16/agent-configure.png 2x" alt="A screenshot of the configure page in Sunnyday, used to configure and test AI agents." />


  
  
    <figcaption><p>Snapshot of the current Sunnyday Agent configure page</p>
</figcaption>
  
</figure>]]></content><author><name></name></author><category term="micro" /><summary type="html"><![CDATA[I love designing and building UIs. Like love, love. It is work that combines product thinking, UX, systems, and visuals all at the same time and it tickles every part of my brain. There are easily five iterations to get to a satisfying outcome: original idea, wireframes, implementation, iterating through the trough of disillusionment, and then the transcendence. I’ve gotten to a good state with the Sunnyday Agent configuration page. Good for now at least; and I don’t use the word good lightly. There are still rough edges, and aspects of the page which are candidates for a teardown and redo in the near future as my understanding evolves. But at least everything feels and works well within the constraints it’s supposed to right now. That’s one of the great things about working with coding AI agents. They give me higher degrees of freedom in working and can express in higher fidelity. If I were to put it in an analogy, it’s akin to the transition from 2d to 3d. We gain a new dimension that brings it closer to the real thing. After working on agents for the last few months, I have a lot of thoughts about performance. All the benchmarks tend to flatten them down to a single dimension, and to be fair that’s what benchmarks are supposed to do. However, agent performance is a much more nuanced, especially because there is the what is not said gap between the lines of the instruction prompt. I will have more to say about that as I collect my thoughts.]]></summary></entry><entry><title type="html">The gap between possible and good</title><link href="https://fifthrevision.com/micro/2026/the-gap-between-possible-and-good.html" rel="alternate" type="text/html" title="The gap between possible and good" /><published>2026-06-07T00:00:00+00:00</published><updated>2026-06-07T00:00:00+00:00</updated><id>https://fifthrevision.com/micro/2026/the-gap-between-possible-and-good</id><content type="html" xml:base="https://fifthrevision.com/micro/2026/the-gap-between-possible-and-good.html"><![CDATA[<p>A lot of the discourse these days conflates what’s possible with what’s good. That’s understandable. Possibilities are exciting; they let us do things we couldn’t before, start new projects, and feel squarely in the driver’s seat.</p>

<p>But because it is possible doesn’t mean that it is good. Too often, we just let things happen. Our judgement gets fatigued when it takes more effort to understand and decide if they are worth our time and attention. And then we let them slip. The word slop encodes that energy.</p>

<p>I’m not here to gatekeep possibilities. I love possibilities, but I also care that things are good. Good can be achieved when we—the <em>people</em> who are involved in and affected by new possibilities—spend time poring over them and iterating on them. Extending our care and exercising taste.</p>

<p>Now that we know that things are possible, let’s spend time making them good.</p>]]></content><author><name></name></author><category term="micro" /><summary type="html"><![CDATA[A lot of the discourse these days conflates what’s possible with what’s good. That’s understandable. Possibilities are exciting; they let us do things we couldn’t before, start new projects, and feel squarely in the driver’s seat.]]></summary></entry><entry><title type="html">Why I’m building Sunnyday</title><link href="https://fifthrevision.com/writing/2026/why-im-building-sunnyday.html" rel="alternate" type="text/html" title="Why I’m building Sunnyday" /><published>2026-05-15T00:00:00+00:00</published><updated>2026-05-15T00:00:00+00:00</updated><id>https://fifthrevision.com/writing/2026/why-im-building-sunnyday</id><content type="html" xml:base="https://fifthrevision.com/writing/2026/why-im-building-sunnyday.html"><![CDATA[<p>The last few years have been a spectacle of wonder and dismay. Wonder because I’m consistently awestruck by the velocity and voracity of AI progress. A technology that is profoundly sophisticated while being deceptively simple. Occasionally capable of doing things that blow my mere mortal mind, and then stumbling down the gentlest steps. And above all it is a fascinating piece of technology that is proving its hype.</p>

<p>I have vivid memories of my intro to NLP class back in grad school 15 years ago. I did okay if I recall correctly; math was not my strong suit and we spent the entire semester solving various mathematical flavors of finite state machines. Towards the end of the semester, the professor mentioned something about state of the art statistical methods and how they had a roughly 10 point gain on the puny finite state machines that we’d been prodding the entire time. Little did I know then that 15 years later humongous NLP applications would be writing code better than the 75th percentile software engineer.</p>

<p>I bring that up to say that the one thing I failed to appreciate then was how much more than a “user interface” language is. I have always seen it as an alternative (or additive) to the GUI windows, buttons, and clicks model. When I saw the <a href="https://gchristensen.github.io/enso-portable/">Humanized Enso launcher</a> back in the day, I was convinced that this was the future of how we used computers. What language models demonstrated however is how much language can be used to wield computers.</p>

<p>What’s dismaying is that it feels blatantly obvious in hindsight. There are these things that we stare at that stare back at us that we don’t appreciate. I have long believed that the next big thing will come out of left field. I keep looking out for it, and yet I missed the gorilla walking through the frame. The NLP class was back in early 2011, and the AI labs formed circa 2015. A friend gave me a demo of GPT2 around 2020 when it was all around text completion. I <em>scoffed</em>. I obviously lack the acumen for predicting the future.</p>

<h2 id="language-as-action">Language as action</h2>

<p>I’m here today to rectify that. I’m currently working on a project called <a href="https://sunnyday.run">Sunnyday</a>, which is the culmination of several ideas I have been exploring over the past few years: agentic harnesses, reliable repeatable AI workflows, and the human interface to use them effectively.</p>

<p>My favorite thing about computer programming is that you can build whatever you can dream of. AI feels like a much more expansive and accessible version of that idea. Natural language is native to how we think, which makes it far more expressive than the rigidity and formality of traditional programming languages.</p>

<p>The deeper shift is that language is not just how we describe things, it is also how we direct action. We ask, instruct, negotiate, refine, and coordinate through language. What makes AI powerful is that these language models can manipulate language itself and combine it with vast knowledge and the ability to use software, allowing us to turn mere words into orchestrated processes and outcomes.</p>

<p>We already see the broad use of these systems in apps like ChatGPT and Claude. They can take your words, infer your intent and turn those into documents, software, presentations, and actions across a growing number of integrations ticking up by the day. The gap between thought, instruction, and execution is rapidly shrinking.</p>

<p>Most of the popular AI agents today only work with a human in the loop. People who use these agents describe the experience as collaboration, and many of the product names reflect that – copilot, cowork, etc. <mark>Sunnyday takes the opposite view in this regard.</mark> I’m interested in the ergonomics of using an agentic AI system that runs in the background. The hard problems here are not AI; they are about creating agents that can gather sufficient context to reliably complete a task, and identifying situations where handoffs happen between human and agent.</p>

<p>Relatedly is thinking through the composition and control flow in these kinds of systems. Many of the systems today are unbounded work streams. These are continuous series of tasks and objectives with no clear delineation which want to consume more and more context. My thesis here is that for a system like Sunnyday, there is a Goldilocks unit of work that is small enough to be reliable, large enough to be useful, and composable into work that is larger, more sophisticated, and more <em>alive</em>.</p>

<h2 id="the-bet">The bet</h2>

<p>All the work that I’m currently doing is at the harness level. The leverage points I’ve identified are in interaction design – setting users up to create successful agents, building good feedback loops, and clarifying how an agent gets invoked – and in control flow, where the questions are how we know a task succeeded and how we help the agent take the optimal action. In between the two layers are substantive design choices around prompt engineering, memory, and environment setup. The final layer is the models, but there are way better resourced labs working on this. Worth watching, not where I can contribute.</p>

<p>The bigger risk is finding big categories of work that Sunnyday is good at. It may feel intuitive that repeatable work is naturally in Sunnyday’s wheelhouse, but the shape of the work matters a lot. Repeatable and mundane tasks will work better and more reliably with a well-designed software process that is now cheap to build. For tasks that require human check points, a hands-off approach is not a good fit. Tasks that require computer use are premature at the moment and will continue to stay adversarial, especially with threatened SaaS providers.</p>

<p>The bet that I’m making here is that horizontal capabilities matter. Frontier labs are building models and harnesses, and focusing on big dollar opportunities. Startups are taking them into verticals – the most obvious play here at the moment of course. The horizontal layer for specifically shaped AI problems – such as a repeatable reliable agent – is an opportunity, and one that plays to my strengths in both AI and UX.</p>

<p><mark>My hope is that in a few years, hands-off agentic processes are a first class primitive that people reach for</mark>, and the patterns for building them well will trace back to Sunnyday.</p>

<h2 id="closing-thoughts">Closing thoughts</h2>

<p>Lately, I keep thinking about the work that Terry Winograd and Fernando Flores did with the <a href="https://en.wikipedia.org/wiki/Language/action_perspective">Language-Action Perspective</a> in the previous artificial intelligence epoch. The core insight around <em>all information is communication</em> and that <em>language is action</em> is right but computers back then were limited in what they can do. In this era of language models, we are afforded a much broader canvas to use language to do things with. The challenge now is to create harnesses, structures, and scaffolds to help put them into productive forms.</p>

<p>This project is a culmination of multiple years of work. Sunnyday encapsulates <a href="https://github.com/johncch/axle">Axle</a>, my open-source agent library which was started 3 years ago to explore AI automations<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. Sunnyday is, more or less, a hosted version of Axle with capabilities that make it work as a hosted web service.</p>

<p>Both Sunnyday and Axle stand on the shoulders of <a href="https://dspy.ai/">DSPy</a> and the <a href="https://github.com/vercel/ai">Vercel AI SDK</a>. DSPy was pivotal in changing how I think about giving structure to language and the way language can be manipulated in a formal and structured manner. The way I thought about provider composition in Axle was influenced by the Vercel AI SDK.</p>

<p>No work stands alone and none can endure without the forge of the real world. I am immensely stoked about the work I’m doing with Sunnyday. If you got to this point in the article, I’d love to talk. There is a lot of work to be done here, and I’d love for you to be part of it.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>There is an interesting story here: originally, Axle was conceived as a pipeline based LLM harness like GitHub Actions and other workflow runners. However, the shape never quite fit. As AI gained tool use and other agentic capabilities, it became a more and more awkward fit: when does the AI decide to handoff to the next stage versus completing it within its own context? The question prompted a reflection around linear versus recursive composition, and here we are. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="writing" /><summary type="html"><![CDATA[A platform for repeatable, reliable agents]]></summary></entry><entry><title type="html">10 thoughts about AI in 2026</title><link href="https://fifthrevision.com/writing/2026/ten-thoughts-about-ai-in-2026.html" rel="alternate" type="text/html" title="10 thoughts about AI in 2026" /><published>2026-01-16T00:00:00+00:00</published><updated>2026-01-16T00:00:00+00:00</updated><id>https://fifthrevision.com/writing/2026/ten-thoughts-about-ai-in-2026</id><content type="html" xml:base="https://fifthrevision.com/writing/2026/ten-thoughts-about-ai-in-2026.html"><![CDATA[<p>2025 is a fever dream for AI. At the top end are dizzying financing and data center deals. Underlying that are companies of all shapes and sizes scrambling to build new products. Everyone has an AI marketing headline now. And all major AI labs produced substantial improvements to their models.</p>

<p>My favorite so far is Opus 4.5; I use it extensively to think and build software. It really complements my working style and is at its most compelling when I can use it to get myself unstuck. I alternate that with GPT 5.2 thinking, which is a slightly inferior model with tone issues<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. Gemini felt good when I tested it, but I didn’t find much reason to prefer it over the other two.</p>

<p>These days, I find myself in a privileged position where I use AI and build AI products full time, which affords me a unique vantage point. AI has changed my workflow in the last 3 years more so than the previous decade, and yet there’s a thrum of change ahead.</p>

<p>Here are ten not quite predictions for 2026.</p>

<ol>
  <li>The AI product that solves memory gets the market. For me, what stops the current crop of excellent models from feeling like AGI is the lack of robust memory. Forgetting is a difficult thing to get used to. Starting with a blank slate<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup> in every language model interaction feels jarring in the face of their overwhelming reasoning prowess.</li>
  <li>Coding agents will hit an improvement plateau. The current challenges in software engineering cannot be solved with only model improvements. The next step in engineering productivity will require the ability to inspect and use software environments. This is partly an ecosystem issue, and partly because key capabilities do not exist yet.</li>
  <li>There will be a rise in tooling and advocacy for formal interface definitions. AI is already writing code at a speed that is difficult for a human to review thoroughly. If AI writing code can be thought of as capable but capricious, then the best way to harness that is to bind them to well-defined interfaces. As people stop spending time at the code level, we will start to see more time on schemas and contracts.</li>
  <li>There will be a rethinking of how layers compose and route information beyond today’s transformer stack. It feels like both the transformer architecture and scaling laws are reaching the point of diminishing returns. If we are to see a leap in capabilities, for example, to better handle spatial reasoning, we will have to rethink the inputs and outputs of the model which would necessitate rethinking how the network is constructed.</li>
  <li>New hardware optimizations inform model design. Prior models are in a way constrained by what GPUs can do. Given the amount of resources and scrutiny that AI labs are investing in chips, I would expect the new generation of models to be co-designed with hardware primitives.</li>
  <li>Voice AI remains a niche. Voice AI has two major problems. First, as intelligent as the models are, AI is remarkably bad at reading social cues. Second, AI has a cadence problem. Speaking is a distinct domain from text and this is not simply adding a text-to-speech on top of generative models.</li>
  <li>There will be emerging signs of personalized software. I have said this before: I believe we are at the end of the write once run everywhere economic model of software creation. In the world where code is cheap, a good use of the excess capacity is to build software in such a way that meets each user where they are.</li>
  <li>Use cases that are popular in ChatGPT will unbundle. People often talk about chatbots as if they only regurgitate facts, but in practice they are enlisted to perform all manner of tasks like researching, writing documents, building websites, and so on. Coding agents have already spun off into their own thriving category, and more will follow.</li>
  <li>There will be a new, popular UI paradigm for AI tools. This feels long overdue, and 2026 feels like the time. It is wild to me that in the three years since ChatGPT hit the market, the models have gone through multiple stepwise improvements, but the UI is essentially the same. Chat interfaces have a lot of virtues; they are a great fit for the language-based interactions that models require, but they are absolutely stressed by many of the use cases today.</li>
  <li>Siri, powered by Gemini, will still disappoint. While I have no doubt that the Gemini model that Apple will use is capable, our expectations for what a good AI product is have risen over the past few years. Siri is situated in a different context, and as such a good model alone is insufficient to meet what the enthusiasts expect from Apple.</li>
</ol>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>There was a period of time where GPT 5.2 would constantly add parentheses (this is the key) and it was driving me crazy. I managed to change that, but it was unclear to me how I did it. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2">
      <p>Every provider technically has memory as a feature, but this “memory” lacks details and nuance. Neither of them has the right solution. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="writing" /><summary type="html"><![CDATA[A designer's vantage point on AI]]></summary></entry><entry><title type="html">Progress is a game of inches accumulated over time</title><link href="https://fifthrevision.com/micro/2026/progress-is-a-game-of-inches.html" rel="alternate" type="text/html" title="Progress is a game of inches accumulated over time" /><published>2026-01-10T00:00:00+00:00</published><updated>2026-01-10T00:00:00+00:00</updated><id>https://fifthrevision.com/micro/2026/progress-is-a-game-of-inches</id><content type="html" xml:base="https://fifthrevision.com/micro/2026/progress-is-a-game-of-inches.html"><![CDATA[<p>I write this as a reminder while I reflect on the old year and look forward to the new. I have heard all the proverbs in this vein, and as I grow older they take on depth. Even as I yearn for the alternative.</p>

<p>It’s easy to be impatient. I secretly wish that building the next feature or dieting for 3 months will get me everything that I want. First, there is no magical destination that will solve the unease I expect it to cure. Second, if it is something I want, I should work toward it even when it’s slower than I’d like. More importantly, if the work is meaningful, I have to keep doing it.</p>

<p>In that perspective, a year is a mere segment in the marathon. That is the inch that I toil in.</p>]]></content><author><name></name></author><category term="micro" /><summary type="html"><![CDATA[I write this as a reminder while I reflect on the old year and look forward to the new. I have heard all the proverbs in this vein, and as I grow older they take on depth. Even as I yearn for the alternative.]]></summary></entry><entry><title type="html">An AI God would be a dereliction of our duty</title><link href="https://fifthrevision.com/micro/2025/an-ai-god-would-be-a-dereliction-of-our-duty.html" rel="alternate" type="text/html" title="An AI God would be a dereliction of our duty" /><published>2025-11-10T00:00:00+00:00</published><updated>2025-11-10T00:00:00+00:00</updated><id>https://fifthrevision.com/micro/2025/an-ai-god-would-be-a-dereliction-of-our-duty</id><content type="html" xml:base="https://fifthrevision.com/micro/2025/an-ai-god-would-be-a-dereliction-of-our-duty.html"><![CDATA[<p>I’m a firm believer that we, humans, are primarily preoccupied with what other people are up to. The social instinct is something that is hard-wired. Politics, alliances, rivalries, and gossip – all human drama –are part of that.</p>

<p>AI may become the best information retrieval and even information using machine in the world. But it remains a tool. Not even a peer. There is no real reason why humans should be concerned about the opinions of AI much less the edict from one.</p>

<p>If there comes a day where we would rather defer to AI, then we would have indeed done our worst harm.</p>]]></content><author><name></name></author><category term="micro" /><summary type="html"><![CDATA[I’m a firm believer that we, humans, are primarily preoccupied with what other people are up to. The social instinct is something that is hard-wired. Politics, alliances, rivalries, and gossip – all human drama –are part of that.]]></summary></entry><entry><title type="html">Writing is an intuition and muscle</title><link href="https://fifthrevision.com/micro/2025/writing-is-an-intuition-and-muscle.html" rel="alternate" type="text/html" title="Writing is an intuition and muscle" /><published>2025-11-01T00:00:00+00:00</published><updated>2025-11-01T00:00:00+00:00</updated><id>https://fifthrevision.com/micro/2025/writing-is-an-intuition-and-muscle</id><content type="html" xml:base="https://fifthrevision.com/micro/2025/writing-is-an-intuition-and-muscle.html"><![CDATA[<p>I thought I would write more when I started “unfiltered”. But that wasn’t the case. The format was one challenge, but it wasn’t the main obstacle.</p>

<p>I realized I was missing two things.</p>

<p>First, the instinct to turn ideas into prose. A good writer acts while ideas are still alive. They fade for two reasons. Sometimes we take too much of an inside view and we underrate how compelling they are. Other times, we overwork them so much that it feels impossible to start.</p>

<p>Second, the habit itself. Turning thoughts into writing is a skill honed through repetition and practice. When I don’t write regularly, it starts to feel difficult. The longer I wait, the more daunting it becomes.</p>

<p>I’ve always want to write more. I would love to write more. Writing is the best way to wrestle with ideas and communicating them to others. Maybe it just comes down to making it a priority.</p>]]></content><author><name></name></author><category term="micro" /><summary type="html"><![CDATA[I thought I would write more when I started “unfiltered”. But that wasn’t the case. The format was one challenge, but it wasn’t the main obstacle.]]></summary></entry><entry><title type="html">Shifting sands of complexity</title><link href="https://fifthrevision.com/micro/2025/shifting-sands-of-complexity.html" rel="alternate" type="text/html" title="Shifting sands of complexity" /><published>2025-06-03T00:00:00+00:00</published><updated>2025-06-03T00:00:00+00:00</updated><id>https://fifthrevision.com/micro/2025/shifting-sands-of-complexity</id><content type="html" xml:base="https://fifthrevision.com/micro/2025/shifting-sands-of-complexity.html"><![CDATA[<p>A few observations about complexity while working on <a href="https://github.com/johncch/axle">my agent library</a>.</p>

<ol>
  <li>One of the foundational decisions that we have to make when designing software is where to place complexity. In a way, designing is about discovering complexity and shifting it between the user and system. As designers, we are making assumptions and decisions about what to solicit from the user and what to bake into the design.</li>
  <li>Complexity here refers to decisions or steps taken as part of accomplishing a task. An example of complexity is something as mundane as naming a file. They are often trivial as individual units, but when accumulated they can make a task feel complex and frustrating unless the user is well trained.</li>
  <li>Software is excellent at encoding decisions programmatically and is thus great at removing these from the user. There was a movement around <a href="https://en.wikipedia.org/wiki/Convention_over_configuration">sensible defaults</a> a decade ago or so that aimed to decrease the amount of decisions that needed to be made out of the box. The end result is perceived simplicity.</li>
  <li>There is no free lunch however. By its nature, simplicity is diametrically opposed to control. What is made not explicit must be implicit, either in terms of effort required to discover them or the ability to access them in the first place. In the latter case, it will sometimes make a design awkward–that is, users will have to contort themselves to take advantage of it–or, a non-starter.</li>
  <li>It is extremely difficult to hide complexity completely. If a choice can be completely removed without consequences, then it is either redundant or obsolete. The reason options exist and matter is because users are not a single homogenous bloc. People want to make use of technology to achieve certain means and the diversity in needs and preferences are as kaleidoscopic as people themselves.</li>
  <li>Sometimes new technology can emerge that changes the landscape of complexity. Language models are a prime example of that. The ability to use language–one that is native to us–as the medium and interface opens up much more possibilities compared to the crude resolution of commands and GUIs. This introduces new possibilities and thus complexity into the system. Current AI apps punt them onto the users but as the field develops, we will start seeing the complexity shift again.</li>
</ol>]]></content><author><name></name></author><category term="micro" /><summary type="html"><![CDATA[A few observations about complexity while working on my agent library.]]></summary></entry><entry><title type="html">Usefulness and Design</title><link href="https://fifthrevision.com/writing/2025/design-and-usefulness.html" rel="alternate" type="text/html" title="Usefulness and Design" /><published>2025-05-02T00:00:00+00:00</published><updated>2025-05-02T00:00:00+00:00</updated><id>https://fifthrevision.com/writing/2025/design-and-usefulness</id><content type="html" xml:base="https://fifthrevision.com/writing/2025/design-and-usefulness.html"><![CDATA[<p>A designed thing should be useful; a useful thing doesn’t have to have been designed.</p>

<p>This may sound like a contrived truism. Yet, by examining how design relates to usefulness, we can understand its impact more clearly.</p>

<p>Let us define a few foundational ideas here. <em>Things</em>, in this case, refers to the things we make. Our proclivities that make us <em>Homo Faber</em><sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>; our propensity to make things that we can use, and to be shaped by said things as well. This definition transcends the physical realm–they can refer to ideas, software and even abstract systems<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>. Design here refers to the deliberation in making, or in my own <a href="/writing/2024/design-still-matters.html#:~:text=Design%20is%20the%20deliberate%20arrangement%20of%20materials%20with%20concerns%20over%20time%20in%20order%20to%20achieve%20a%20desired%20outcome%20for%20people%20involved">formal definition</a>, <em>the deliberate arrangement of materials with concerns over time in order to achieve a desired outcome for people involved.</em></p>

<p>The definition of usefulness used here supersedes its pragmatic and utilitarian notion–that is, useful only because it creates a tangible positive outcome–and incorporates the postmodern lens of values and judgements. A thing is useful because humans use it. It can be useful because it enables us to do more things (e.g., hammers), because it helps us organize activity (e.g., processes), appeals to our sense of aesthetics (e.g., ornaments), or useful because it social signals. As designers, these are all usefulness insofar as they meet the users’ needs.</p>

<h2 id="undesigned-usefulness">Undesigned Usefulness</h2>

<p>Usefulness does not require a thing to be designed. As a rudimentary example, tree stumps can be useful as seats. A taller stump can serve as a table. These may not be great pieces of furniture but they are intuitively useful to us and serves as a baseline measure of seating utility. Historically, humans have been very good at finding purpose in things and repurposing things to serve needs in our daily lives.</p>

<p>However, when it comes to human made, <em>artificial</em><sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup> things, the boundaries become less clear. I argue that everything that is made has, by necessity, been designed. The challenge henceforth lies in understanding what is it designed for and how usefulness manifests from the design.</p>

<p>At the risk of simplification, consider the invention of the internet. By all accounts, the rise of the World Wide Web grossly exceeded the expectations of its inventor, Tim Berners-Lee, which originally intended the system to be a tool to help CERN researchers organize and share documents within the organization. If you squint, the internet today still contains traces of the original vision, with wikipedia being the quintessential example, alongside with social media, videos, commerce, and everything other human activity under the sun. One could say that the internet today is a conglomeration of ideas, <em>designs</em>, that evolved from and stacked on top of the original idea of exchanging information within a network.</p>

<p>This example may give us a hint of what usefulness means. A thing has designed usefulness if it fulfills the promise of its original design. A thing has emergent usefulness if it turns out that it solves a problem adjacent to the original design. A thing may even be accidentally useful if it solves an unrelated problem.</p>

<p>Usefulness is not a static quality but one that evolves with human effort. The internet was designed for research. It then also proved useful for information other than research. Subsequently, when there was too much information, the search engine was designed to help users navigate it. Then e-commerce, and so on and so forth.</p>

<h2 id="design-as-a-tool-for-manipulating-usefulness">Design as a Tool for Manipulating Usefulness</h2>

<p>Design is the human effort that changes the usefulness of things. To quote Herbert Simon, “Natural Sciences is what is, Design Science is what it could be”. In an almost circular definition, design (science) is the <em>thing</em> that we came up with so we can make things new and differently useful.</p>

<p>In contemporary design practice, we are drilled to first understand who is it for, and then we work to find a solution that satisfices<sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup> all the requirements and constraints that we uncover. Very often, the outcome here–the designed usefulness–is a result of narrowing the scope of inquiry and better fitting the designed thing into the environment in which it is to be used.</p>

<p>Consider email, a longstanding staple of workplace communication. Originally developed as a digital replacement for traditional mail, even email itself has evolved in features and functionality as workplace needs changed. Yet, as workplace priorities shifted towards rapid collaboration and responsiveness, email’s limitations became increasingly apparent. Recognizing this mismatch, companies like Slack were able to design a solution that quickly took over large swaths of email workflows.</p>

<p>Even in this case, you will find people arguing that what Slack was doing wasn’t novel, that they were merely repurposing group chat ergonomics into a corporate environment. It is herein where design is most potent. It is the act of recognizing the mismatch and reconfiguring existing technologies to fit the situation which not just replaced but expanded what workplace communication is capable of.</p>

<p>While scope narrowing is common, it doesn’t always have to be the case. In fact, one can take an existing object and aspire to broaden it a larger audience. The designers of the Aeron Chair wanted their ergonomic chair to <a href="https://www.hermanmiller.com/stories/why-magazine/don-chadwick-interview-aeron-sustainable/">fit bodies from the first to the 99th percentile</a> and designed a chair with different sizes and configurations<sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup>.</p>

<p>Usefulness is not synonymous with features. In fact, oftentimes features are exponentially correlated with complexity which means a higher learning curve. Drawing on Thomas Sowell insight that “there are no solutions, only trade offs”, design is about selecting the set of trade offs that best satisfices. By doing design over time, we hope that design contributes to an ever-evolving and expanding repertoire of designed usefulness in the world.</p>

<h2 id="designed-usefulness-in-ai">Designed Usefulness in AI</h2>

<p>I want to briefly address AI, as it was the impetus behind my exploration of usefulness. AI is often described as a <a href="https://mitsloan.mit.edu/ideas-made-to-matter/impact-generative-ai-a-general-purpose-technology">general purpose technology</a>—a technology applicable across many domains—which prompted me to consider deeply how design shapes and clarifies the usefulness of such versatile innovations.</p>

<p>It may be instructive to examine the surge in AI circa 2022. A few things stuck out to me. First, prior to ChatGPT, transformer-based large language models (LLMs) were an interesting technology that appealed to a niche audience. There were useful applications, notably in autocomplete, but it was minute compared to what came after the ChatGPT moment.</p>

<p>ChatGPT was the first breakthrough designed useful thing in LLMs. ChatGPT was an a conversation-tuned model built for turn-taking beneath a familiar chat interface. The underlying technology (GPT-3.5) was a slight improvement over the status quo then (GPT-3), but the shaping of the technology did the heavy lifting. By making it easy for people to interact with the model, it unlocked immense user interest and drew widespread media attention.</p>

<p>Second, with the turn-taking chat interface is being as popular as it is, through the increased adoption and continued evolution of the technology behind it, we are seeing a lot of different types of usefulness emerge from its use. People are not merely asking questions of the AI model, but providing text copied from other sources, and then eventually articles, tabular data, images, and all sorts of other data they want the AI model to work with. Today, ChatGPT-like clients are able to search the web, do deep research, and are asked to do more than what it was designed for. The chat interface is starting to show its seams and limitations.</p>

<p>Lastly, from emergent usefulness comes new designed usefulness. We are seeing a lot of other builders taking vertical problem spaces and building dedicated solutions for them. The most successful example right now is in code generation. Tools like ChatGPT and the models behind them are very adept at generating code. New entrants, like <a href="https://www.cursor.com/en">Cursor</a> and <a href="https://windsurf.com/">Windsurf</a>, brings the same capabilities into the IDE where code is being written today. Others, like <a href="https://lovable.dev/">Lovable</a> and <a href="https://v0.dev/">V0</a>, enable people who didn’t previously write code to build software using chat interfaces. There is no doubt there are tons of such examples in the making as we speak.</p>

<p>It becomes clear to me that this is a cycle that plays out and will continue to play out over and over again. First, someone design something to be useful. The usefulness will encourage new emergent usefulness, then others will figure out how to take that and turn it into new designed usefulness. Design, whether formally practiced or not, is in the heart of this transformation.</p>

<h2 id="usefulness-and-design">Usefulness and Design</h2>

<p>Most people become designers, regardless of whether that’s their title, because they are motivated to bring usefulness into this world. As a practitioner, I really wanted to explore the tension between the usefulness that is intended as an outcome of design, and the myriad of organic ways that usefulness emerge. Is usefulness an outcome of human endeavor, or is it somehow an inherent property of the world?</p>

<p>For me, it has become evident that usefulness is deeply rooted in both human perception and human effort. Design, both as intent and craft, plays a big part in the formation and transformation of usefulness, and it is a continuous process over time. We shape our environment and are thus shaped by our environment. The outcome is shaped by collective design done by millions of people across generations.</p>

<p>Building in software, especially in SaaS for a long time, there can be a myopia around design that is rooted in the beliefs, processes, and artifacts within the industry. When I apply these narrow lenses towards AI, I get stumped. However, if usefulness is to be the barometer, then the tools that are available to me opens up.</p>

<p>AI is one of the few recent developments in a long time that challenges my paradigm of software design. It has, to some estimation<sup id="fnref:6"><a href="#fn:6" class="footnote" rel="footnote" role="doc-noteref">6</a></sup>, unprecedented potential to improve our lives-and ultimately, only as useful as we make it.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Don Ihde &amp; Lambros Malafouris, <a href="https://link.springer.com/article/10.1007/s13347-018-0321-7">Homo faber Revisited: Postphenomenology and Material Engagement Theory</a>. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2">
      <p>For example, democracy. In a systemic case however, you run into complex arguments about desirable outcomes, which is out of scope for this essay. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3">
      <p>The artificial, according to Herbert Simon, refers to things intentionally designed or constructed by humans rather than naturally occurring phenomena. Unlike the natural sciences—which study existing phenomena (“what is”)—the sciences of the artificial concern themselves with human-made artifacts, systems, and structures, exploring possibilities (“what could be”) through design, intention, and adaptation to specific goals and contexts. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4">
      <p>Satisficing, a term coined by economist and cognitive scientist Herbert Simon, refers to a decision-making approach that seeks a solution that is “good enough” rather than optimal. It acknowledges practical limitations, such as bounded rationality, limited resources, and incomplete information, emphasizing feasibility and adequacy over perfection. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5">
      <p>There is generally no free lunch. In this case you can argue the trade off is in price or aesthetics depending on your preference. Underestimate the softer qualities of usefulness at the designers’ own peril. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:6">
      <p>Or doom, depending on your perspective. <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="writing" /><summary type="html"><![CDATA[Examining design’s relationship to usefulness]]></summary></entry><entry><title type="html">Weighing good goods</title><link href="https://fifthrevision.com/micro/2025/weighing-good-goods.html" rel="alternate" type="text/html" title="Weighing good goods" /><published>2025-04-10T00:00:00+00:00</published><updated>2025-04-10T00:00:00+00:00</updated><id>https://fifthrevision.com/micro/2025/weighing-good-goods</id><content type="html" xml:base="https://fifthrevision.com/micro/2025/weighing-good-goods.html"><![CDATA[<p>I recently purchased a <a href="https://www.amazon.com/dp/B003VELZQU">Tanita scale</a>, and it’s been a reminder that <a href="/writing/2024/good-products.html">good products are delightful</a>. It was an opportunistic purchase. Somehow I shattered the kitchen scale that I had for years and not too long ago I saw <a href="https://youtube.com/shorts/8mi1f6UATks?si=rDLx69mnpgpv0Uup">a chef’s recommendation on YouTube</a>.</p>

<p>The thing about the Tanita is that it’s as if someone has thoroughly considered what makes for a good home kitchen scale and made the scale-iest home kitchen scale that they can make. The performance is impeccable; it displays weight changes instantly and there’s even a precise mode that goes down to 0.1g (fun fact: coffee beans are about 0.2g each on average). The controls are logical and satisfying. One of the problems I had with the previous scale is that it did not have an off button - it turns off automatically and frequently when I’m in the middle of using it. Lastly, it feels good in the hand, a hefty enough chunk but small enough to stow away. Also, the raised platform separate the weighed to the weight display and that’s a nice touch.</p>

<p>I expected to like the scale but I didn’t expect to love it. I find so much joy in weighing things and knowing how heavy they are that I’m constantly finding excuses to use it. Everything from weighing out my morning coffee beans to pasta servings. Good products should make you want to use it more, find new ways of using it, and just shout it’s virtues from the rooftop. That’s the standard I need to hold myself to when building new products.</p>]]></content><author><name></name></author><category term="micro" /><summary type="html"><![CDATA[I recently purchased a Tanita scale, and it’s been a reminder that good products are delightful. It was an opportunistic purchase. Somehow I shattered the kitchen scale that I had for years and not too long ago I saw a chef’s recommendation on YouTube.]]></summary></entry></feed>