<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Usecraft</title><description>Thoughts on the future of CAD and design craft</description><link>https://usecraft.com/</link><language>en-us</language><item><title>Tactile Thinking</title><link>https://usecraft.com/essays/typewriters/</link><guid isPermaLink="true">https://usecraft.com/essays/typewriters/</guid><description>Rediscovering typewriters has made me aware of how the tactile experience shapes thinking. What role might tactility play in the future of CAD?</description><pubDate>Sat, 09 May 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://usecraft.com/_astro/hero.BPPKERZu_1scWEn.webp&quot; alt=&quot;&quot; width=&quot;960&quot; height=&quot;406&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;&lt;p&gt;For as long as I can remember, I’ve been fascinated with machines and how they work. I grew up with the soundtrack of my Dad’s Smith-Corona typewriter hammering away like a machine gun. I’d play with his typewriter when he wasn’t using it. Over the past few years, I rediscovered typewriters and have found them to be useful and interesting in ways I hadn’t quite anticipated.&lt;/p&gt;&lt;p&gt;I’ve discovered that I’m most interested in standard-sized office typewriters from roughly 1960-1984. These feel more like tools and less like antiques, and their industrial design is modernist and beautiful. They’re every bit as designed as a device made today by Apple, with the added benefit of being completely serviceable. It’s extraordinary that these 60 year-old machines can be brought back to life with some solvents, fresh oil and new rubber.&lt;/p&gt;&lt;p&gt;Typewriters from this period are the culmination of a century of continuous development in mechanical engineering and ergonomics. They also reflect an intense period of technological change. They feel like the last great effort from amazingly skilled people who were trying their hardest to hang on to what they had built.&lt;/p&gt;&lt;p&gt;Another reason I chose typewriters from this period is because I wanted to use them to help me think through ideas I’ve been wrestling with. “Modern” typewriters offer the kinds of creature comforts that help the typewriter disappear while writing.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://usecraft.com/essays/typewriters/&quot;&gt;Read the full essay&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>AI&apos;s Heavy Freight</title><link>https://usecraft.com/notes/heavy-freight/</link><guid isPermaLink="true">https://usecraft.com/notes/heavy-freight/</guid><description>When bringing a new technology to market, how it&apos;s positioned matters. How might the computer industry shift the public&apos;s perception of AI?</description><pubDate>Sat, 02 May 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Back in the late 2000’s, I was brought on by a former client to design an API infrastructure startup named &lt;a href=&quot;https://cloud.google.com/apigee&quot;&gt;Apigee&lt;/a&gt;, which is now part of &lt;a href=&quot;https://cloud.google.com/&quot;&gt;Google Cloud&lt;/a&gt;. Apigee gave me a front-row seat to see the power of good framing and the impact it can have on the long-term success of a technology.&lt;/p&gt;
&lt;p&gt;Apigee’s executive team practiced and refined the company’s pitch every day. My job during the early stages of the company was to take the pitch and turn it into an identity, marketing website, applications, and sales materials. We continually refined the messaging and product as the API infrastructure market grew, and this continued until Apigee was well-established and on its way to IPO.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Apigee’s leadership understood the framing game:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Figure out what problem you’re solving and why it’s important.&lt;/li&gt;
&lt;li&gt;Find a framing for this problem that makes sense. Communicate why people should care and how they will benefit.&lt;/li&gt;
&lt;li&gt;Work to get the market to accept your framing of the problem.&lt;/li&gt;
&lt;li&gt;Ensure the product you create is a better fit for the problem you have framed than the products your competitors offer.&lt;/li&gt;
&lt;li&gt;Adjust the framing and product based on market needs, the competitive landscape, and public perception.&lt;/li&gt;
&lt;li&gt;If you do these things better than your competitors over a sustained period, you’re going to win.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Things get much tougher if your framing is off:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you have a good product, but your framing is off, then you’re likely to struggle with being successful in the long run.&lt;/li&gt;
&lt;li&gt;If you have great framing but your product doesn’t meet the expectations you’ve set, you are vulnerable.&lt;/li&gt;
&lt;li&gt;The more out of sync your framing is with what the world needs, the harder it will be for the world to accept what you’ve made.&lt;/li&gt;
&lt;li&gt;If you fail to adjust your framing or your products based on shifts in the wider landscape, then you’re likely to be overtaken by someone who can do both better.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are indications that the computer industry may be in the process of learning some hard lessons around AI’s problem framing.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Steep Grade&lt;/h2&gt;
&lt;p&gt;If you want to get a sense about how AI’s problem framing is being received out in the wider world, &lt;a href=&quot;https://www.theverge.com/podcast/917029/software-brain-ai-backlash-databases-automation&quot;&gt;this essay&lt;/a&gt; by Nilay Patel, is worth a watch.&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=1RKGWg2Ex2U&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;&lt;a href=&quot;https://daringfireball.net/linked/2026/04/23/patel-software-brain&quot;&gt;John Gruber at Daring Fireball lends his support&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Something is profoundly off in the computer industry when it comes to software broadly and AI specifically. It’s up for debate what exactly is off and what should be done about it, but the undeniable proof that something &lt;em&gt;is&lt;/em&gt; profoundly off is the deep unpopularity surrounding everything related to AI. You can’t argue that the public always turns against groundbreaking technology. The last two epoch-defining shifts in technology were the smartphone in the 2000s, and the Internet/web in the 1990s. Neither of those moments generated this sort of mainstream popular backlash. I’d say in both of those cases, regular people were optimistically curious. The single most distinctive thing about “AI” today is the vociferous public opposition to it and deeply pessimistic expectations about what it’s going to do.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Both authors make it clear that there’s something amiss with AI’s framing and what’s being produced with AI, despite there being genuinely useful things created with it.&lt;/p&gt;
&lt;p&gt;The high-level pitch of AI is that soon, it’ll do all the things. This is a hard pitch to swallow if you do a thing you’ve worked hard to be good at it, and someone tells you that thing won’t be nearly as valuable in the not-too-distant future. Understandably, the people on the receiving end are going to get angry and be distrustful of the people who make this pitch. When companies lay people off in preparation for the day when AI will do all the things, then people will take this as evidence that the pitch is true, and they will increasingly distrust the things made by the people who made the pitch.&lt;/p&gt;
&lt;p&gt;This is the heavy freight that AI is currently carrying, and unless the computer industry can find a way to reframe AI and the problems it chooses to solve, I expect people to become angrier and the grade the computer industry is traveling on will get steeper. This is not a good long-term recipe for success, especially if you’re betting on a technology that can only get smarter if people are willing to feed it with more of the things that they care about.&lt;/p&gt;
&lt;p&gt;I think Patel and Gruber both did an excellent job calling attention to the problem, but I didn’t get the sense that they had solid ideas about what the computer industry might pursue instead of automation.&lt;/p&gt;
&lt;p&gt;So I’d like to explore whether there might be a different framing around AI, and I’d like to propose some rough ideas around how the computer industry might start to shed the heavy freight of its current AI framing — or at least shift it in ways that can be demonstrably beneficial to humans.&lt;/p&gt;
&lt;p&gt;Let me start by zooming out to the pandemic.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Brittle real-world systems are the more pressing existential problem.&lt;/h2&gt;
&lt;p&gt;One of the things that was shocking about the Covid pandemic was how quickly it brought into focus what’s really important. It showed us just how brittle, fragile, and interconnected the systems we rely upon are.&lt;/p&gt;
&lt;p&gt;During the early stages of the pandemic, solid real-time information was very hard to come by. People created grassroots systems for tracking the spread of Covid and communicating out situational awareness. This is software at its best — helping people be more informed and connected in a dynamic situation that’s evolving in real time.&lt;/p&gt;
&lt;p&gt;One of the great lessons of the pandemic is how important it is to have humans who are good at making decisions based on messy and incomplete information in unprecedented circumstances. The number of lives saved and lost came down to the decisions people made based on their understanding of what was at stake.&lt;/p&gt;
&lt;p&gt;Another lesson of the pandemic was how important the running of the real world is. When the normal functioning of the world was at risk, we discovered who was an essential worker, and who was not. I remember the shock of recognition when I realized all the essential people that contribute to the supply chain that delivers toilet paper to grocery shelves were orders of magnitude more important and vital than the people that do my job.&lt;/p&gt;
&lt;p&gt;The pandemic affirmed the utility of software, but also affirmed the importance of humans as creative problem solvers who can act on information, experience, and intuition.&lt;/p&gt;
&lt;p&gt;When the pandemic hit, we were dealing with an event that had significant existential repercussions and it was remarkable to see how we collectively threw everything at the problem we could. One example was people rapidly developing cheap open source ventilators in an effort to shore up an overwhelmed hospital system.&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=ODwkveIe7Cc&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;In order respond to the next crisis effectively, we need to have a surplus of extremely skilled, resourceful, and creative people who can come together on very short notice and use all of their problem-solving skills and experience to find out-of-the-box solutions for out-of-the-box situations.&lt;/p&gt;
&lt;p&gt;I think a healthy society needs to have a reserve of these people at the ready. There’s no way to know in advance what kinds of skills and talents might be needed. The recipe will change depending on what kind of crisis we’re dealing with. Many of the kinds of people needed when a crisis hits might not directly interface with computers when providing some vital service in a time of need.&lt;/p&gt;
&lt;p&gt;Automating or accelerating what we already do with software won’t really help us to build in the kinds of resilience we’re going to need to have in order to deal with the world’s increasing environmental, economic, and societal pressures. Without some care, we might even find that speeding things up will destabilize things further.&lt;/p&gt;
&lt;p&gt;Also, it’s hard to square the idea that superintelligent AI will be a  benefit to humanity if people believe (or see) that it’s going to result in them being less valuable and useful at an industrial scale.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Enabling human creativity is a far better framing than making computers more intelligent.&lt;/h2&gt;
&lt;p&gt;If AI really is being made for the benefit of humanity then perhaps the job for AI should be to focus on generating a stockpile of creative resources and capabilities so that we can mitigate the worst effects of the next inevitable destabilizing event.&lt;/p&gt;
&lt;p&gt;The resources to generate in this case aren’t computer resources. They’re &lt;em&gt;human&lt;/em&gt; capacities. Our ability to imagine and invent from as many perspectives as possible is the thing we need to develop and grow.&lt;/p&gt;
&lt;p&gt;Computers are amazing tools — and I think AI can be an amazing tool — but the shape of a tool determines its function. If AI is going to be a good tool, one that enhances people rather than degrades, replaces, or disenfranchises them, then we need to take a very hard look at what work this tool is supposed to perform for us.&lt;/p&gt;
&lt;p&gt;Sir Ken Robinson’s talk on creativity suggests a way forward:&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=iG9CE55wbtY&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;Robinson defines creativity as “The process of having original ideas that have value”. He characterizes creativity as a ruthlessly squandered resource that should be cultivated and encouraged. He asserts that fostering the faculty of creativity is the best way to ensure that we’ll have the collective wherewithal and diversity of thinking to solve tomorrow’s unforeseen problems.&lt;/p&gt;
&lt;p&gt;The job for AI then isn’t just to make computers smarter. The application of AI needs to be in the service of making people smarter, more creative, more inventive, and better able to pool their collective problem-solving capabilities so that we can improve the world we live in.&lt;/p&gt;
&lt;p&gt;People will lean into the tools and technologies that allow them to change things for the positive, but in order for this to happen, they need to have AI tools that enable people to solve the kinds of problems that really can have a positive impact on the human condition.&lt;/p&gt;
&lt;p&gt;Deepmind’s Alphafold &lt;a href=&quot;https://deepmind.google/science/alphafold/is&quot;&gt;https://deepmind.google/science/alphafold/is&lt;/a&gt; an excellent example of this, so I think there’s ample evidence that AI &lt;em&gt;can&lt;/em&gt; be used to create incredibly important applications with a wide downstream benefit for people.&lt;/p&gt;
&lt;p&gt;If the computer industry wants to start shifting the framing of AI, then it needs to care about what kinds of things we choose to make with AI. We need many more Alphafolds, and we need them fast enough to be able to credibly shift the narrative around AI before people decide they’ve really had enough.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Thoughts on shifting AI’s framing&lt;/h2&gt;
&lt;p&gt;With the gargantuan resources in play around AI, it’s going to be very hard to change AI’s trajectory in a meaningful way. It might be that we’re living in a world where the computer industry has lost the ability to determine its own future and direction.&lt;/p&gt;
&lt;p&gt;Once enough people buy into the idea of AI being a race where the victor takes all, is it even possible to choose a direction that’s selective around where we make use of AI and where we don’t? I honestly have no idea. Sometimes the train can’t be stopped when the freight is too heavy.&lt;/p&gt;
&lt;p&gt;However, I hope the computer industry will decide to frame AI differently now that it’s becoming apparent there’s a significant misalignment between how AI makers see the tech and how the rest of the world sees it. I think this is the prudent play to make, but it would require a change in ambition, focus, messaging, and outcomes.&lt;/p&gt;
&lt;p&gt;With this in mind, here is a list of incomplete thoughts about how we might go about shifting the framing around AI. Hopefully you’ll find some food for thought here.&lt;/p&gt;
&lt;h4&gt;1. Recognize that the framing we choose for AI determines the kinds of products we’ll make.&lt;/h4&gt;
&lt;p&gt;If you’re an AI maker, and you’ve convinced the market (and yourself) that AI is a zero sum game up for grabs between the good guys and the bad guys, it’s unlikely that you’re going to spend much attention figuring out what today’s tech is really good for. Instead, you’re going to try and deliver the thing with existential implications because that’s what the market now expects, and that’s where the big incentives are. Right now, this feels like a case of &lt;a href=&quot;https://youtu.be/ewDS5ROrLcE?si=boURtgsCi8nJrY4f&quot;&gt;target fixation&lt;/a&gt;  on a massive scale.  The only way out of target fixation is to look at a different target.&lt;/p&gt;
&lt;h4&gt;2. Adopt a much narrower problem framing&lt;/h4&gt;
&lt;p&gt;The more AI can be used to solve legitimate problems that people have, the better the pitch. The more AI enables people to solve the problems they care about, the stronger the pitch. Given that the vast majority of problems people face are messy and have real-world dimensions and repercussions, there’s always going to be a limit to how much AI can do on its own. The more honest and realistic the pitch, the easier it is to deliver against expectations.  A narrower problem framing may also buy the computer industry some much-needed time. If we’re making things that we don’t fully understand because they aren’t constructed in a way that makes them open to inspection, this is an incredibly shaky foundation upon which to build. It’s hard to trust the assertion that this technology is going to be the thing that changes everything when even the makers of it can’t really anticipate what it will do with each new generation.&lt;/p&gt;
&lt;h4&gt;3. Commit to make things that add to people rather than take away.&lt;/h4&gt;
&lt;p&gt;This requires that we take full responsibility for the benefits and harms around AI. Our eyes need to be wide open here. Damage done whether we notice it or not is still damage. This also means that we need the same kinds of regulatory structures and safeguards in place that we see in the medical industry to ensure that AI is being developed in accordance with the public good. One of the challenges that comes with building a foundational technology that’s used to make other things is that the makers of the technology will be judged by the things people make with it. The more safeguards there are in place to ensure the tech is being used for the greater good, the more likely it will be used for the greater good.&lt;/p&gt;
&lt;h4&gt;4. Demonstrate genuine interest in fostering human creativity.&lt;/h4&gt;
&lt;p&gt;We need to treat the study of enabling humans to be more creative as a first class problem — and this isn’t just about being more creative with computers. This is understanding the rich tapestry of creativity, invention, and expression writ large. The more we can understand what creativity is and how to foster it, the better we’ll understand what subset of problems can be aided with the help of computer-enabled things. We’ll also be able to recognize what sorts of things prevents humans from reaching their full creative potential. You’ll recognize that we’re taking this subject seriously when people are able to create entirely new classes of useful, interesting, beautiful, and functional things — not just build the same things faster and with less care. You’ll also be able to see it when the next generation of creators can start to make inroads on problems that have stumped humanity for generations.&lt;/p&gt;
&lt;h4&gt;5. Figure out which problems are software shaped.&lt;/h4&gt;
&lt;p&gt;Solving software shaped problems well can make a huge difference in the lives of people. Attempting to make non-software shaped problems amenable to software solutions will certainly cause harm, and will further reinforce the collective perception of AI as being harmful.&lt;/p&gt;
&lt;h4&gt;6. Conserve what already works well.&lt;/h4&gt;
&lt;p&gt;If you’re a company that already produces software that does something genuinely valuable, take good care to ensure that what you add to your products is genuinely aided by the inclusion of AI. People can tell the difference between a feature that’s added for their benefit versus a feature that benefits the company that makes the software. Once you put those capabilities in the software, it’ll be very hard to remove them, so take care. If the AI-enabled capabilities you’re adding require that you treat your customers (or the things they make) like food, this will not result in shifting the framing of AI in a positive direction, and it will likely degrade the goodwill you’ve built up over years.&lt;/p&gt;
&lt;h4&gt;7. Give people greater control and agency.&lt;/h4&gt;
&lt;p&gt;One of the easiest ways to take fear away is when people have a sense of control over their conditions. There’s a big difference between helping someone do a thing and doing the thing for them. So much of today’s AI usage seems to be focussed on having AI do the thing. There are huge opportunities for AI to augment how people do things, but this is a much harder problem to solve. It requires having a deep understanding about what problems people have, how they want to work, and what they need. This understanding can’t be generated by sifting through the extremely weird slice of the human condition that finds its way online. The digital design for a building or a website does not contain any record of whether it is well-suited to the problem it is supposed to address.&lt;/p&gt;
&lt;h4&gt;8. Give people the ability to own and shape the fundamental technologies they use.&lt;/h4&gt;
&lt;p&gt;We have more than 60 years of software not being organized in this way. Having worked for one of the world’s premiere CAD software companies I can tell you that people are tired and frustrated by having so little control over the software they rely upon to do their jobs. Huge opportunities here. Enable professionals to make their software fit the way they work and you’ll see the benefits of AI-enabled software compound over time.&lt;/p&gt;
&lt;h4&gt;9. Create software that people can shape to fit their way of thinking.&lt;/h4&gt;
&lt;p&gt;If we spend the next decade focused on the problem of making software fit people with the same vigor and enthusiasm that we spent making people fit to software over the last two decades, we’ll be in a much better place. Surely with the help of AI we should be able to move twice as fast as we did before. Software that can understand what people are asking for is an incredibly useful capability to build upon.&lt;/p&gt;
&lt;h4&gt;10. Build fundamental AI technologies so that they can be understood.&lt;/h4&gt;
&lt;p&gt;We don’t yet know how to do this, but it’s hard to see how AI can be made to reliably work in high-consequence real-world contexts without the ability to definitively verify the results and the chain of reasoning. The more black box a technology is, the less people can and should trust it when lives and livelihoods are at stake. If the AI technologies we currently have can’t help us get to ground truth, then it’s likely that we haven’t discovered the right fundamental AI building blocks.&lt;/p&gt;
&lt;h4&gt;11. Give people the information and tools that help them make smarter decisions over time.&lt;/h4&gt;
&lt;p&gt;When humans get to decide the things that are important to them, they feel a sense of agency. Making good decisions requires integrating information from multiple sources, only some of which may be online. We need to invest in tools and technologies that can help people become better, more thoughtful decision makers. The pattern-seeing abilities of LLMs are a remarkable capability, but the ability for foundational models to make these patterns understandable to humans feels significantly less developed. The ability for AI to accurately communicate  in pictures, animation, 3D models, immersive experiences in real-time is still in its infancy. Huge opportunities here.&lt;/p&gt;
&lt;h4&gt;12. Create incentives for people to make better use of AI — and their own potential.&lt;/h4&gt;
&lt;p&gt;The hard problem of figuring out what AI is good for has to start with an admission that it won’t be good for everything. For example, we now make refrigerators that can notify us when our milk needs to be replaced. It’s hard to imagine that the talented people who worked on this couldn’t have made better use of their gifts on more pressing problems. What people make with AI will color what people think about it. If we want to change the perception of what AI is good for, we must incentivize people to make good things that really can make a difference.&lt;/p&gt;
&lt;h4&gt;13. Treat all of these things as first-class problems to solve today, not something we’ll eventually do when computers are superintelligent.&lt;/h4&gt;
&lt;p&gt;Assuming that computers will one day be smart enough to do all these things is feels like an awfully big IOU to write given the costs incurred to deliver today’s AI. I’d wager that unless we can figure out how to do the things I’ve described above, I doubt we’ll be wise enough to build the guardrails in place to ensure that we get to enjoy the best outcomes from our superintelligent friends should they arrive. Perhaps the way we’ll be able to tell that AI is in alignment with us is by the things we have it help us make. If what we make is something that disenfranchises a huge swath of creative people, that’s a pretty good sign that the companies that make AI are misaligned. However, if the result of AI is that it helps us build up the reserves of creative capacity to help us mitigate (or even prevent) the next destabilizing event, we’d have good evidence that the makers of AI are in alignment with the greater needs of humanity.&lt;/p&gt;
&lt;h4&gt;14. Have humility to travel farther.&lt;/h4&gt;
&lt;p&gt;If we’re going to set out to do a big thing that is paved with unknowns, approaching the problem with humility may be a necessary precondition for success. To make something novel means accepting the possibility of failure. The problem of AGI could be significantly harder than AI boosters are willing to admit. Perhaps building AGI will be more like building a cathedral that takes generations to construct. I don’t know nearly enough about AI to have a well-formed opinion about whether this is true, but I do know that when you’re making something new, it’s always better to underpromise and over deliver.&lt;/p&gt;</content:encoded></item><item><title>The Great Teacher</title><link>https://usecraft.com/notes/great-teacher/</link><guid isPermaLink="true">https://usecraft.com/notes/great-teacher/</guid><description>What conditions need to be present to quickly acquire a new skill? Turns out they&apos;re the same conditions needed to invent new products. </description><pubDate>Mon, 27 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Some years ago, I was feeling stuck at work. The product problems I was working on were exceedingly hard to move and I was struggling to feel a sense of progression.&lt;/p&gt;
&lt;p&gt;I decided I needed to learn something far removed from the world of software. I wanted it to be something concrete. I wanted something that I’d have no expectation of ever being good at it. I wanted something that would feel like an accomplishment. I wanted to learn something &lt;em&gt;cool&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I chose unicycling.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;figure class=&quot;note-figure note-figure-wide&quot;&gt; &lt;div class=&quot;note-figure-wide__image note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/largemarge.T84HWNzB_Zjsojx.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;3001&quot; height=&quot;2251&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure-wide__caption note-figure__caption note-figure__caption-inner&quot;&gt;[↑] 26” Surly Conundrum mountain unicycle with a 4” tire and hydraulic brake. What could possiibly go wrong?&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;I had seen videos of people riding unicycles with fat tires and thought it looked like a blast.&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=kKPDURIcZEc&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;Common wisdom is that you should start out on a small unicycle with a 20” wheel so that your feet are close to the ground. That didn’t interest me. I wanted to ride something &lt;strong&gt;BIG&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;So I bought a 26” Surly Conundrum unicycle and protective gear, suited up for battle, and headed down to the garage in our apartment building, found a way to get up on the thing, and started to learn.&lt;/p&gt;
&lt;p&gt;After fourteen half-hour sessions over two weeks, I was able to mount, tool around, ride in figure eights, and voluntarily return to an upright postition more often than not.&lt;/p&gt;
&lt;p&gt;I was shocked by how easily it happened and later came to realize that unicycling had taught me valuable lessons about learning, but also about making software.&lt;/p&gt;
&lt;p&gt;Here’s what I learned:&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;h2&gt;1. Choose something worth learning.&lt;/h2&gt;
&lt;h4&gt;Find a thing that calls to you.&lt;/h4&gt;
&lt;p&gt;The first and most important thing I did was follow my intuition that this would be a fun thing to learn how to do. Sometimes it’s better to not overthink things.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;When setting off on a project, It&apos;s important that you choose a skill or a problem that you&apos;re invested in. The more invested you are in what you&apos;re doing, the more likely you&apos;ll stick with it when things get hard.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Choose something you think will be hard to master.&lt;/h4&gt;
&lt;p&gt;One of the easiest ways to not learn a thing is to think that you should be good at it. No one goes into unicycling with the expectation that they’ll be good at it from the start. My expectation that unicycling would be hard forced me to acknowledge my ignorance in how it was going to go. I was able to give myself permission to be bad at it. There’s freedom in this.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;When choosing something hard to do, it&apos;s important to acknowledge what you don&apos;t know. Questions are more important than the answers. The difficulty of the problem relative to your understanding much shape the approach you take. Acknowledging the possibility of failure is a precondition for solving a wicked hard problem. &lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Choose something where your ego isn’t at stake.&lt;/h4&gt;
&lt;p&gt;It was helpful to choose a thing to learn where I had nothing to prove. No one ever starts out looking good when unicycling. Humility is a useful when you’re learning a new thing as it keeps you open to the hard lessons you’ll learn along the way.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;When there&apos;s a lot on the line for a project you&apos;re working on, or if that project can&apos;t fail, then you&apos;re almost certain to work in ways that result in fewer lessons learned.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Have a reasonable starting goal in mind.&lt;/h4&gt;
&lt;p&gt;I kept my goals modest so that I’d be more likely to have a win at the end. I’d be happy just to learn how to get up on the unicycle and tool around. The more constrained the initial problem, and the clearer you are on what your desired end state will be, the more likely your effort will be successful.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;So many software projects fail because they are all-or-nothing propositions. A key to being successful is to choose the kinds of problems that generate something useful along the way.&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;h2&gt;2. Create the space for learning.&lt;/h2&gt;
&lt;h4&gt;Accept that failure is the most common state.&lt;/h4&gt;
&lt;p&gt;The desire to get something right is one of the greatest impediments to learning something new. Learning happens when you discover that the world doesn’t work as you think it does. If somehow I’d been magically able to unicycle the first time, it would mean that I had learned nothing. Since I knew the failure was inevitable and would likely result in my crashing in various undignified ways (unicycles are inherently unstable machines), I understood that the project would require some preparation, and some safety equipment.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Anticipating what&apos;s at stake for your project before the work happens is a good way to improve the odds you&apos;ll be successful. If you understand the nature of the problem you&apos;re trying to solve, it will help you to figure out what you&apos;ll need to have in place to increase the chances you&apos;ll be successful in the long run.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Find a safe place to practice and fail.&lt;/h4&gt;
&lt;p&gt;I decided I’d learn in the garage in our apartment building. It was flat and would be big enough to roll around and quiet enough in the evenings that no one would see my failures. When you think you’ll have an audience, you’ll be less likely to put yourself in a position where you can fail.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;I think this is one of the reasons why so many useful software capabilities start off as side projects.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Mitigate the consequences of failure.&lt;/h4&gt;
&lt;p&gt;I assumed that I’d get injured without protective equipment. I invested in shin guards, wrist guards, and a helmet.  When you reduce the consequences for failure then you don’t have to try and avoid it, and you can learn faster.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;So much of a software project&apos;s success comes down to how it&apos;s set up and what the rules of engagment are. Is there space to fail? Do we have the kinds of infrastructure in place where we can push changes to production regularly, safely, and cheaply? Can the problem we&apos;re hoping to solve be broken down into smaller parts? Is the team supported by leaders that will back them when mistakes happen?&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;h2&gt;3. Get  to work.&lt;/h2&gt;
&lt;h4&gt;Break the problem down into logical components.&lt;/h4&gt;
&lt;p&gt;I assumed that there would be two major problems to solve: Riding and mounting. It seemed reasonable but my understanding of the problem turned out to be incomplete. More on this two paragraphs down.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Unexamined simplifying assumptions is one of the most common ways software projects fail. They can be hugely consequential but can also escape our notice quite easily. Make it a habit to identify and articulate the simplifying assumptions you are making when you embark on a software project. You&apos;ll often end up figuring out the thing you need to test that will determine whether you&apos;ll be succesful in the long run.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Figure out what the first step should be.&lt;/h4&gt;
&lt;p&gt;My research indicated that the easiest way to start was sitting on the unicycle while hanging on to something. Also, given the height of the unicycle, mounting felt daunting. I was most interested in learning how to ride, so sitting and trying to move felt like the right place to start. Besides, even if you could somehow learn to mount a unicycle, would it count as mounting if you can’t figure out how to get moving?&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Product teams can often spend more attention worrying about how a particular feature or capability will be adopted, rather than focussing on the heart of the thing they are trying to make. Getting to the heart of a problem -- the thing that everything else hinges on -- is key to making rapid progress when building new software.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Double check to ensure that there aren’t other important problems to solve.&lt;/h4&gt;
&lt;p&gt;Once I let go of the wall for the first time, I quickly discovered that safe dismounting was also a problem to solve for. I think learning by doing and letting the problems come to you can be a valid way to operate but thinking more clearly is helpful too — especially in situations where overlooking something important could have significant repercussions. It’s a good thing I started with unicycling rather than DIY paragliding.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;A great number of software projects fail because it&apos;s easy to overlook all of the things that must be true in order for a project to work. What are we missing or overlooking? What do we wish were true that might not actually be true?&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Operate within the current limits of your understanding or skill.&lt;/h4&gt;
&lt;p&gt;When you try to ride a unicycle beyond your skill, you’re on your ass and fast. Successful unicycling is really the practice of delaying the moment when you’re on your keister. If you can delay that moment indefinitely, then you’re a pretty good unicyclist.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;When designing software it&apos;s always important to be aware of the limits of your understanding. Don&apos;t design more than can  be reasonably built. North star vision exercises almost always write checks that designers and software organizations are not prepared to cash.&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;h2&gt;4. Learn through encountering, recognizing and understanding failure.&lt;/h2&gt;
&lt;h4&gt;There’s no way to learn how to unicycle without putting your ass in the saddle.&lt;/h4&gt;
&lt;p&gt;You can’t unicycle by proxy. You can’t workshop it, no user journey will get you closer, you can’t storyboard it, you can’t plan it in advance, you can’t mock it up, you can’t low-fidelity prototype it. Putting your ass in the saddle and having some skin in the game is the only way to learn.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;So much of the design process is geared towards reducing the chances that a bad idea will come in contact with the real world. This has the result of depriving designers and the teams they serve the opportunities to learn as quickly and as deeply as they might.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Create the conditions where success and failure are clear.&lt;/h4&gt;
&lt;p&gt;Unicycling is awesome in that success and failure are binary. If you’re up, that’s a 1. If you’re on your backside, that’s a 0. The clearer the distinction is between these two states, the easier it is to judge your progress and diagnose problems.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;So many software projects can get mired because a team doesn&apos;t have clear ways to determine what success and failure looks like. This is a consequence of making things that touch many people at a distance where the impact of design choices can not be easily observed.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Make failure fast and cheap.&lt;/h4&gt;
&lt;p&gt;When starting out in unicycling, failure happens almost immediately. Gravity operates at 9.8m/s, and it’s always operating. Strictly deterministic systems that are easy to observe make great environments for learning. The cost of learning unicycling is inversely proportional to how much protection you’re wearing and how much health insurance you have.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;The easier and safer it is to make a change, and the clearer success and failure are, the faster software teams can learn.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Diagnose what doesn’t work and adjust&lt;/h4&gt;
&lt;p&gt;Much to my surprise, the riding portion of unicycling was pretty straightforward: lean forwards and keep the unicycle moving with you. Unhappy path avenues were more complex and varied. If you lean too far to one side or another, you tip over. If the unicycle moves too slow relative to you, then you fall forwards. If the unicycle moves too fast relative to you, then you fall backwards. For the record. It’s much preferable to let the unicycle roll ahead of of you as you gently drop to your feet behind it. I learned this after I took my feet off the pedals while I was still moving and ghost rode myself into a rapid unscheduled disassembly event.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;The lesson here is to not overthink too much before you embark on a software project. It&apos;s always going to go differently than you think it will. As long as you are paying attention to the signals, you can adjust as you go.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;When the cause of a failure isn’t clear, reduce the number of variables you’re juggling at one time&lt;/h4&gt;
&lt;p&gt;Getting up on the unicycle turned out to be more of a challenge than I had anticipated — owing in part to the altitude of the unicycle I chose to learn on. I found that it was helpful for me to build up the motion of mounting one step at a time while observing the outcomes. I also found that building a routine of rituals that I repeated gave me a good foundation upon which to judge whether the next new thing I did was an improvement, or a step in the wrong direction.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;In software, it can often be helpful to build up iteratively by establishing a baseline that you know works and then experimenting as you go. If you make too many changes at once, it can become hard to diagnose what the cause of a problem is.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Don’t argue with reality.&lt;/h4&gt;
&lt;p&gt;One of the harder lessons I learned was what happens when things would start to go south and I’d attempt to compensate. When an unstable system is out of equilibrium, poorly applied corrections can exacerbate the problem. Imagine what happens to Wile. E. Coyote when he hits a wall. So much for dignity.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Arguing with reality is a very common mistake for software organizations to make when they are driving towards a goal they&apos;ve set for themselves. It can take real courage to admit that the thing you were tasked with making won&apos;t work.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Learn to anticipate when it’s about to go poorly.&lt;/h4&gt;
&lt;p&gt;After I was able to consistently recognize the signs that impending failure was approaching, it became easier to gracefully dismount. The more practice you have, the easier it becomes to anticipate correctly. The ability to anticipate is a sign that you’re in tune with the problem space you’re operating in.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Being in tune is how you get to be able to trust your gut and intuition, critical ingredients for any designer hoping to make something new that hasn&apos;t existed before. Building deep domain knowledge is also critical for being able to build something new in software. After all, almost all of the simple and easy things have already been invented. You can&apos;t make something truly novel if you don&apos;t know your stuff.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Notice when you’re repeating mistakes. It’s a sign there’s something you need to learn.&lt;/h4&gt;
&lt;p&gt;I definitely struggled with getting up reliably during my second week of unicycling. It took me maybe a hundred tries to get a feel for how to mount with the right pressure on the pedals. Sounds like a lot, but it only takes about 30 seconds to get into position and give it a go. When working in a situation where the unknowns outweigh the knowns, the cheaper it is to try a variety of things out and learn from them, the faster learning happens, and the more likely you’ll discover the right solution.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;There&apos;s a big difference between trying a lot of things in Figma, and trying a lot of things in working software. You&apos;ll learn much faster and find better solutions if the cost of trying out ideas in software is cheap.&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;h2&gt;5. Learn through repetition.&lt;/h2&gt;
&lt;h4&gt;Daily practice facilitates nervous system rewiring.&lt;/h4&gt;
&lt;p&gt;I found that practicing each day had the greatest compound effect as my nervous system rewired to incorporate the lessons learned in the past. Repeated small changes paid greater dividends over time compared to me trying to brute force my way into unicycling competence.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Getting into the habit of releasing small additions to software, and building the muscle memory through continual releases is one of the most important skills a product design team can learn how to do.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Repetition over time will eventually free up cycles for higher-level thinking.&lt;/h4&gt;
&lt;p&gt;When I started, I had to focus very intensely on what I was doing. Learning how to unicycle involves rewiring your nervous system so that more of the the activity is handled subconsciously. This frees up mental cycles for observing what’s happening while it’s happening.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;As designers, when we focus too much on process rather than outcomes, we&apos;re not able to give ourselves over to the thing we&apos;re making. The more complex and involved the process, the longer it takes to reach a state where you can focus on outcomes and impact. There&apos;s a world of difference between learning a set of dance steps and performing the dance so that your audience feels something.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Find balance first, then aim for flow.&lt;/h4&gt;
&lt;p&gt;I’ve always had good balance from cycling, so it only took a few days for me to be able to tool around the parking garage in our building — and after a few weeks, I experienced flow. It was surprising to reach this state so quickly given my assumption that unicycling would be hard to learn. That said, the inherent instability of unicycling meant that flow state was often rudely interrupted as gravity took over. The important takeaway here is that flow is the thing that happens when you do a bunch of other things right, and flow stops when you do one or more things wrong. If I had tried to aim for flow without first having the basics in place, I think I would have struggled a great deal, or ended up in traction, or both.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;The ordering of problems is incredibly important when you&apos;re in the business of inventing new technologies or products. What&apos;s the core of your product? What&apos;s the first real bit of value that the whole thing hinges upon? Spend the majority of your attention there. If you&apos;ve made something that really offers value, inventive humans will figure out a way to use it, even if there&apos;s almost no first user experience or polish. That can come later after the thing you&apos;re making is humming along.&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;h2&gt;6. Celebrate your wins.&lt;/h2&gt;
&lt;h4&gt;Define what success looks like&lt;/h4&gt;
&lt;p&gt;There are at least a couple of different framings for success that are important where unicycling is concerned. On the macro scale, success is pretty easy to spot. When you’re up for as long as you want to be up, and you can gracefully come down when you want to stop, you can count that as a success. On the micro scale, there are a bunch of different steps you need to take in order to mount the unicycle, get it moving forwards, make left turns, right turns, cycle in place, and  return to the ground. Each has success and failure states. Thankfully, they’re all quite obvious and easy to discern.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;When making something new, I think it&apos;s quite easy to not think about all the things that must be true for a particular feature to be successful. Figuring out what those hard parts are requires smart people to work very closely together to talk through what the obsticles and challenges might be. The requirements for a project should follow from this essential work, not preceed it. The more we treat the creation of software like factory work, the easier it is for people to stay in their lanes and not take responsibility for the sum of the parts.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Successes are just as important a signal as the failures.&lt;/h4&gt;
&lt;p&gt;Unicycling is a game of doing a lot more of the right things than the wrong ones. The harder part of learning is understanding why one behavior results in success while another will result in failure. Since the physics of one wheeled vehicles are pretty simple, and the mechanics of having a body are also relatively well understood, it wasn’t too hard to understand why one thing worked while another didn’t, and this helped me learn faster. The more cause and effect are joined, the easier it is to diagnose problems.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Situational awareness is incredibly important when you&apos;re making something for people not you and the impact of your design decisions happens at a distance. If the thing you&apos;re making isn&apos;t instrumented well enough, or if you change too many variables at once, you lose the ability to pinpoint the downstream consequences of the choices you&apos;re making.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Pay attention to what’s working over time.&lt;/h4&gt;
&lt;p&gt;When you’re learning a a skill that requires the integration of a number of sub-activities, it’s important to identify which ones are working well in isolation and in concert. The more you can integrate the successful parts, the better you’ll get at the whole activity. As I became more comfortable with unicycling, I was able to identify the areas where I wasn’t as strong. Turning right was easier than turning left for a while. The more that went well, the easier it was for me to fix the things that still needed improving.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;I think it&apos;s very easy for busy software teams to stop taking stock of whether the thing they are making is actually good. Even when they do, they may not factor in the time to improve things because they&apos;re too busy making the next thing. Team members may not use the thing they are making regularly enough to be able to judge whether it&apos;s any good, or whether it&apos;s really improving.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Work to build a sense of momentum.&lt;/h4&gt;
&lt;p&gt;By practicing a half hour each day for two weeks, I was able to build success upon success with few setbacks. The more progress I made, the more enjoyable unicycling became. Momentum is something that’s often hard to come by when working on software design problems. Being able to go from sitting to tooling around after about seven hours of total practice time was a huge boost for me.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;It&apos;s incredibly easy for software teams to get bogged down in wanting to get things right before a product is launched, but I&apos;ve always found that getting something early out, learning from it at each stage, and iterating like hell always results in better software faster than when teams try to polish what they&apos;re making to a high sheen before launching.&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;h2&gt;7. Change it up.&lt;/h2&gt;
&lt;h4&gt;Shift tactics if you’re stuck.&lt;/h4&gt;
&lt;p&gt;I found it helpful to change things up when I got stuck. If tooling around was a challenge, I’d practice mounting the unicycle. Shifting tactics made the whole thing feel like a problem to solve. As long as I could try new things, I didn’t feel as if the problem would be too hard to solve indefinitely.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;How often is it that software teams decide that the thing they&apos;re trying to make just isn&apos;t working? How big is the thing you&apos;re trying to test? The more expensive it is, the more invested we become in the outcome and the harder it is to change tack. &lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Know when to call it and come back fresh.&lt;/h4&gt;
&lt;p&gt;I noticed that during each practice session, I’d start to reach a point of diminishing returns after 45 minutes of practicing. Calling it and coming back fresh the next day would often be enough to give me the perspective needed to figure out how to get past yesterday’s blocker.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;The harder a software problem is to solve, the more likely you&apos;ll need to step away and approach it from different perspectives. How much room is there to do this in a culture that tends to think in two to four week sprints?&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Be open to the journey and adjust as you go.&lt;/h4&gt;
&lt;p&gt;One of the things I was surprised to learn was that the thing I thought would be the hard part — riding around — wasn’t all that difficult. Reliably getting up on the unicycle was more of a challenge.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Part of learning or making something new is being open to the challenges it presents. The fewer preconceived notions you have about how it&apos;s going to go, the more open you&apos;ll be to where the project takes you.&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;Look for the a-ha moments that unlock things&lt;/h4&gt;
&lt;p&gt;I struggled with mounting the unicycle for a while because I thought the job was to hop on and sit upright on the unicycle. Each time I’d do this and start to pedal, the unicycle would move forwards and out from under me. The trick for solving this was to realize that the goal needs to be to get up and lean forwards so that you start to fall forwards. My flash of insight was to realize that unicycling is the act of falling forwards and then have the unicycle catch up just enough to maintain your momentum. If you start to slow down, just fall forwards a bit more. I’m still amazed that being able to unicycle isn’t a physical activity as much as it’s a way-of-seeing activity.&lt;/p&gt;
&lt;div class=&quot;prose-spacer&quot;&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;Truly understanding what&apos;s at stake for a project only happens when you go on the journey of putting it out into the world. Learning how to understand what&apos;s at stake is one of the most important skills to develop as a designer.&lt;/code&gt;&lt;/p&gt;</content:encoded></item><item><title>Future CAD Building Blocks</title><link>https://usecraft.com/essays/cad-building-blocks/</link><guid isPermaLink="true">https://usecraft.com/essays/cad-building-blocks/</guid><description>If we&apos;re going to evolve how we use computers to design and make complex things, we&apos;ll need to make sure we have the right building blocks in place. </description><pubDate>Sun, 26 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://usecraft.com/_astro/hero.yLQdnevy_Z1GlYT.webp&quot; alt=&quot;&quot; width=&quot;960&quot; height=&quot;406&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;&lt;p&gt;When setting out to build a new product or technology, it’s important to spend some time to think about what sorts of things need to be in place for the effort to be successful. This is crucial when you’re operating in a context where there are significant consequences for missing some important ingredient.&lt;/p&gt;&lt;p&gt;It’s also important to think about where you’re hoping to head and why. This helps you stay focused on the outcomes. My sense is that if generative AI is going to be useful to people who use CAD software, it’s going to be when it’s employed in a way that significantly improves some aspect of how CAD software works, or improves the quality of what gets designed and produced.&lt;/p&gt;&lt;p&gt;Given this, I thought it might be interesting to consider the kinds of building blocks that will need to be in place so that CAD software can evolve in ways that are good for humans and computers.&lt;/p&gt;&lt;p class=&quot;thumb-block-2x4__item-description thumb-block__item-description&quot;&gt;One of the most important ingredients is having permission to reinvent CAD. Many CAD tools are extremely mature, having been continuously developed for decades. Asking mature software with a loyal customer base to change is a herculean task.&lt;br /&gt;&lt;br /&gt;When companies find ways to look at old problems with fresh eyes, they often find opportunities for innovation and reinvention. Consider how &lt;a href=&quot;https://www.youtube.com/watch?v=EkezmPpKdzo&quot;&gt;James Dyson reinvented the vacuum&lt;/a&gt; by attacking the problem from first principles.&lt;br /&gt;&lt;br /&gt;In order to create the room to reinvent, it can be helpful to ask questions that can help you spot opportunities. What did the world look like when the patterns of today’s CAD was set? What’s changed since then? Do CAD users collaborate as they always have, or are there new patterns that need to be enabled?  What would CAD look like today if we were inventing it from scratch and could use all of the technologies available now?&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://usecraft.com/essays/cad-building-blocks/&quot;&gt;Read the full essay&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Capturing the Imagination</title><link>https://usecraft.com/notes/capturing-imagination/</link><guid isPermaLink="true">https://usecraft.com/notes/capturing-imagination/</guid><description>CAD tools for architecture make a distinction between designing and visualizing. It&apos;s time for this to change. </description><pubDate>Sat, 25 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m interested in the distance between &lt;em&gt;the experience of designing architecture with CAD software&lt;/em&gt; and &lt;em&gt;the experience of being in architecture&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I recently came across this walkthrough of a building designed by &lt;a href=&quot;https://www.cutler-anderson.com/&quot;&gt;Cutler Anderson Architects&lt;/a&gt;. that made me want to dig into this topic a bit.&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=OgribLSWhNE&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;The architecture shown in this video is sensitive and beautiful. The way it’s introduced to the audience is lovely and I think reflects something about the way Jim Cutler thinks about creating the experience of architecture.&lt;/p&gt;
&lt;p&gt;One thing that struck me immediately was how the design of this building only makes sense because of the wider context in which the building exists: the site, the foliage, the water, the pathway leading through the woods to the front door, the materials, the mechanisms used to open the building to its environment, the change in light, and the change in seasons.&lt;/p&gt;
&lt;p&gt;All of these things are essential and integral to the design — and yet none of them exist within the CAD software that was likely used to design this building. This seems odd, especially in an age where computers are so capable.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I can’t help but think about the amount of skill and imagination required to be able to look at design drawings and be able to visualize what the final experience will be. Is there an upper limit to the level of complexity a trained architect can visualize? I’d imagine there must be.&lt;/p&gt;
&lt;p&gt;What happens when non-architects need to do something with the designs? What happens when clients need to understand drawings, or the people who will be constructing the building need to refer to the designs? What happens if these parties misunderstand the drawings? Lots of potentially expensive and avoidable errors can occur.&lt;/p&gt;
&lt;p&gt;Being able visualize a design is essential for architectural design software, if for no other reason that it takes a lot of people to turn the idea of a building into a real building, and they all need to understand what the end product will be. The more complex the design is, the more important it becomes to have rich, flexible, expressive, and immersive ways to visualize designs.&lt;/p&gt;
&lt;p&gt;This leads me to wonder:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why doesn’t architectural design software make it easy to get a sense about what the experience of a building will be?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This seems like something that architectural design software &lt;em&gt;should&lt;/em&gt; be good at doing, just like it’s good at making drawings. There’s a good deal of evidence to support that this is technically possible, but we haven’t yet found a way to fully connect the dots between designing and visualizing in architectural CAD software.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;How architectural designs are visualized today:&lt;/h3&gt;
&lt;p&gt;There are a number of ways to visualize architectural designs if you’re motivated enough and are willing to put in a good deal of work.&lt;/p&gt;
&lt;p&gt;Since CAD files are schematic in nature, getting a design ready for rendering requires adding high-quality materials, lights, props, furniture, foliage, terrain, sky, weather, surrounding buildings, people, etc.. A design essentially needs to get dressed, much like a set is dressed for a film.&lt;/p&gt;
&lt;p&gt;Here’s a video that shows three of the commonly-used architectural visualization applications and the effort required to dress up a design and render it:&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=ofrgb30Krt8&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;Once a design is dressed, it needs to be shot from a number of different perspectives, and if an animation is to be made, then the camera and models need to be animated as well. This work is &lt;a href=&quot;https://archicgi.com/architecture/3d-architectural-walkthrough-video/&quot;&gt;labor-intensive&lt;/a&gt; enough that there are limits to how much of it can be re-used if and when a design changes, which again limits how often designs make the transition from schematic representation to photorealistic rendering — or beyond.&lt;/p&gt;
&lt;p&gt;Over the years, there have been a number of visualization tools that have streamlined parts of the process of preparing designs to be visualized.  &lt;a href=&quot;https://www.chaos.com/enscape&quot;&gt;Enscape&lt;/a&gt;, &lt;a href=&quot;https://www.twinmotion.com/&quot;&gt;Twinmotion&lt;/a&gt;, &lt;a href=&quot;https://lumion.com/&quot;&gt;Lumion&lt;/a&gt;, and &lt;a href=&quot;https://www.d5render.com/&quot;&gt;D5&lt;/a&gt; are examples. Some have incorporated &lt;a href=&quot;https://www.unrealengine.com/&quot;&gt;game engine technology&lt;/a&gt;, which has evolved to be able to deliver interactive photorealistic pictures at real-time frame rates.&lt;/p&gt;
&lt;p&gt;Where it used to take minutes to hours to painstakingly simulate the path of photons as they bounce from surface to surface, materials to camera, game engines through a series of novel tricks and specialized hardware, can get the generation of detailed photorealistic scenes down to small fractions of a second.&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=qC5KtatMcUw&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;Dedicated design visualization tools have evolved ways to &lt;a href=&quot;https://dev.epicgames.com/documentation/unreal-engine/datasmith-plugins-overview&quot;&gt;streamline the ingestion of CAD data&lt;/a&gt;, and some have come up with novel ways to substitute high quality 3D assets and materials for the schematic symbols that comprise a CAD design. This is an improvement, but still contorts around a set of immovables that are a consequence of CAD designs being closely bound to proprietary file formats.&lt;/p&gt;
&lt;p&gt;In some cases, these visualization tools are now fast enough to run &lt;em&gt;while&lt;/em&gt; CAD designs are being modified, allowing architects to be able to see the impact of the design choices they are making in real time. This can be especially useful when an architect is collaborating with people who may not have the ability to understand design drawings. Here’s an example of this in action:&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=w7RKLwBCWfI&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;Having the ability to visualize designs adjacent to where designing is happening is much better than not having it at all, but I think that the division between designing and seeing that’s been present in CAD from the outset prevents us from understanding that the ability to see, feel, interact with, and inhabit a design is actually fundamental to the creation of complex things meant to exist and function in the real world.&lt;/p&gt;
&lt;p&gt;It’s worth noting that all of the contortions and effort people have to go through to supply schematic CAD models with all the things that bring a design to life would largely go away if CAD software had the ability to incorporate them in the first place. It seems strange that architects should have to do the virtual equivalent of moving into the design just to convey a sense about what it’ll be like in real life. We can do better.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Today’s CAD Software is Remarkable and Not Nearly Enough&lt;/h3&gt;
&lt;p&gt;When AutoCAD was invented more than 45 years ago, the pitch was that it was better to draft and design with computers than on paper.&lt;/p&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/autocad-flyer.BLugtvRn_Z1Y43LI.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;1288&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑]  Source: &lt;a href=&quot;https://winworldpc.com/product/autodesk-autocad/1x-dos&quot;&gt;https://www.winworldpc.com&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;The computers of 1982 were far less powerful than those of today, Lines, shapes, and symbols were all these computers could manage. This wasn’t a shortcoming because humans had been perfecting the design of buildings through schematic representation for &lt;a href=&quot;https://en.wikipedia.org/wiki/Plan_of_Saint_Gall&quot;&gt;millennia&lt;/a&gt;. There really is no more succinct or definitive way to describe a building — Design drawings are a kind of lossless compression.&lt;/p&gt;
&lt;p&gt;As computers became more powerful and sophisticated, CAD evolved to treat the design of buildings as a system of interconnected relationships that can be easily updated. Models for designs began being represented in three dimensions. This was a significant improvement.&lt;/p&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/revit-screenshot2.BMZofV0A_21N2cl.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;1458&quot; height=&quot;972&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑]  Source: &lt;a href=&quot;https://www.aecbytes.com&quot;&gt;https://www.aecbytes.com&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;By any measure, CAD software has been wildly successful. Take a look at any building under construction today and it’s a guarantee that it was designed through drawings and simplified 3D models. It’s clear this works pretty well.&lt;/p&gt;
&lt;p&gt;But is it enough? Does this level of visual fidelity make anyone feel something about the spaces they’re designing in the same way they would if they were inside those spaces? Does it inspire? I don’t think so, and I think this needs to change.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Capturing the Imagination&lt;/h3&gt;
&lt;p&gt;Software for the designing of buildings should be able to place architects in and around the structures they are designing, so they can feel them, learn from them, and react to them. It should also be able to do the same for the people who commission architectural designs.&lt;/p&gt;
&lt;p&gt;The commissioning of an architectural design can represent a huge investment of money, time, and patience. The period between when design starts, and when it’s realized can take years. That’s a helluva lot of delayed gratification.&lt;/p&gt;
&lt;p&gt;Sometimes design work can be speculative and the goal is to inspire. Being able to engage the imagination is an essential tool that architects employ. It’s the way they buy time and marshal the resources needed to turn the idea of a building into a real one.&lt;/p&gt;
&lt;p&gt;I love this image of Frank Lloyd Wright’s mile-high skyscraper drawing.&lt;/p&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/wright.iV_fvJBY_Y9kUK.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1172&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑] Source: &lt;a href=&quot;https://architizer.com/blog/inspiration/industry/moma-frank-lloyd-wright/&quot;&gt;Architizer.com&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;The scale and position relative to the audience was clearly designed to encourage a viewer to look up and imagine what it would be like to see such an incredible structure in real life. This is the thing that architectural design software needs to enable.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;So Much Room to Become More&lt;/h3&gt;
&lt;p&gt;One of my favorite sources of architectural visualization inspiration is &lt;a href=&quot;https://visualizingarchitecture.com/&quot;&gt;Visualizing Architecture&lt;/a&gt;. Their visualizations are hand-crafted meditations on the buildings they’re portraying. They’re staggeringly beautiful.&lt;/p&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/visualizing-architecture.6HUiE19q_Vj7tM.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;2520&quot; height=&quot;1404&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑] Source: &lt;a href=&quot;https://visualizingarchitecture.com/&quot;&gt;Visualizingarchitecture.com&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;It’s hard to imagine that the architecture firms that commission these visualizations don’t come away surprised by what these artists manage to express about their buildings. I especially love that they’re not entirely photorealistic — they’re illustrative. They leave room for the imagination of the viewer to do some work, to inhabit the space, to see it clearly. They convey a clear point of view, they command attention, they stand out. They’re memorable. They elevate the designs, the architects, and the people who commissioned the work.&lt;/p&gt;
&lt;p&gt;When design visualizations happen early enough in a project, the ability to explore and express what’s important about a design can help clarify the design itself. This is one of the reasons creating architectural models is such an important part of the process.&lt;/p&gt;
&lt;p&gt;The cheaper and easier it is to visualize a design from within CAD software, the more opportunities there are for architects to evaluate what they are making.&lt;/p&gt;
&lt;p&gt;This isn’t a nice-to-have. It’s fundamental to the practice of architecture. It’s something that can make the difference between a clumsy design, and one that accurately reflects and represents its purpose and context.&lt;/p&gt;
&lt;p&gt;The software tools for architecture shouldn’t just be tools for manipulating the shapes and symbols that eventually result in a building. They need to become much more. They need to become tools for capturing the imagination.&lt;/p&gt;</content:encoded></item><item><title>Lessons From Pixar&apos;s USD</title><link>https://usecraft.com/essays/usd-lessons/</link><guid isPermaLink="true">https://usecraft.com/essays/usd-lessons/</guid><description>Pixar created an interchange format for organizations to design complex 3D things. What can CAD learn from USD?</description><pubDate>Sun, 19 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://usecraft.com/_astro/hero.BqFEV537_Z11sjFU.webp&quot; alt=&quot;&quot; width=&quot;960&quot; height=&quot;406&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;&lt;p&gt;One of the more interesting trends in design software over the last decade has been the creation of software that’s aimed at enabling groups of people to collaborate on complex projects.&lt;/p&gt;&lt;p&gt;When large organizations of people create something complex, like an animated feature film or a building, it requires that specialists be able to contribute their part to collective effort. Each specialist has a unique job to perform, and they frequently may need to use specialized applications that are tailored for their role.&lt;/p&gt;&lt;p&gt;The more complex a project is and the more people that contribute to it, the harder it becomes to integrate their work into the larger whole. When the thing being designed requires pulling all the parts together to see how they fit, getting all the different kinds of software to speak to one another becomes a huge headache.&lt;/p&gt;&lt;p&gt;Back in 2012, &lt;a href=&quot;https://www.pixar.com&quot;&gt;Pixar Animation Studios&lt;/a&gt; created a data interchange format called &lt;a href=&quot;https://www.pixar.com/openusd&quot;&gt;Universal Scene Description&lt;/a&gt; (USD) to address this problem.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://usecraft.com/essays/usd-lessons/&quot;&gt;Read the full essay&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>AI Product Packaging Challenges</title><link>https://usecraft.com/notes/ai-packaging-challenge/</link><guid isPermaLink="true">https://usecraft.com/notes/ai-packaging-challenge/</guid><description>A few thoughts on AI product packaging challenges by way of Atari 2600 cartridge box design.</description><pubDate>Thu, 16 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The tension between what a technology can do and how it’s packaged is a thing I’ve grappled with for the majority of my career as a designer. This isn’t a new problem. It’s been around at least as long as humans have been making and selling technologies for use by others.&lt;/p&gt;
&lt;p&gt;One of my favorite examples of tech product packaging is Atari 2600 cartridge package design.&lt;/p&gt;
&lt;p&gt;If you were a nerdy kid growing up in the late 1970s, the toy you wanted for Christmas was the &lt;a href=&quot;https://en.wikipedia.org/wiki/Atari_2600#:~:text=The%20Atari%202600%20is%20a,release%20of%20the%20Atari%205200.&quot;&gt;Atari 2600 Video Computer System&lt;/a&gt;.&lt;/p&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/Atari-2600-Light-Sixer-FL.B_vi_W3q_Z2oxg8m.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;1639&quot; /&gt; &lt;/div&gt;  &lt;/figure&gt;
&lt;p&gt;Atari 2600 games were incredibly simple by today’s standards, having to fit on 2-8kb ROM cartridges that would run on an 8-bit i.19 MHz processor with 128 bytes of RAM. The graphical performance of the 2600 was significantly more limited than the games found in arcades and corner stores.&lt;/p&gt;
&lt;p&gt;In order to compensate for a lack of graphical sizzle, Atari’s graphic designers employed incredible product art to capture the imagination of kids looking to bring their arcade experience home.&lt;/p&gt;
&lt;figure class=&quot;note-figure note-figure-wide&quot;&gt; &lt;div class=&quot;note-figure-wide__image note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/packaging.Bju_d_BT_ZHODiD.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;3001&quot; height=&quot;1688&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure-wide__caption note-figure__caption note-figure__caption-inner&quot;&gt;[↑] 45 years later, I still want to play games that look like these.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;I suspect Atari’s graphic designers understood that they couldn’t lead with game graphics as they weren’t compelling enough on their own. Turning the cartridge boxes over reveals the stark reality of what could be achieved with the Atari 2600’s low-cost hardware.&lt;/p&gt;
&lt;figure class=&quot;note-figure note-figure-wide&quot;&gt; &lt;div class=&quot;note-figure-wide__image note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/packaging-back.DyxKFUrZ_ZCPG7P.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;3001&quot; height=&quot;1688&quot; /&gt; &lt;/div&gt;  &lt;/figure&gt;
&lt;figure class=&quot;note-figure note-figure-wide&quot;&gt; &lt;div class=&quot;note-figure-wide__image note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/screenshots.Con4Zsrr_1ute4x.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;3001&quot; height=&quot;858&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure-wide__caption note-figure__caption note-figure__caption-inner&quot;&gt;[↑] Gameplay graphics are just large enough to be legible, but small enough that you can hope they’ll be better when displayed on a TV.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;One of the things I love about these package designs is that I think they were the best solution given the limitations of the technology they were promoting. The box art was exciting and made reference to  arcade game cabinet art. The 2600 system was positioned as an entertainment platform and Atari branding was instantly recognizable at stores, making it easy for parents to recognize and find.&lt;/p&gt;
&lt;p&gt;I love these because that they’re &lt;em&gt;juuust&lt;/em&gt; on this side of a very fine line where aspiration runs in advance of reality. These games were still fun to play even if they only superficially resembled the arcade games they were inspired by, and a kid’s imagination could do a lot of heavy lifting to compensate for the lossiness of the experience relative to the real arcade games. The console’s gameplay captured the spirit of the original game and the box art sealed the deal.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;One of the dangers of creating products that don’t live up to their promise is that it can be easy to set expectations that you can’t fulfill. When this happens, the results can be catastrophic.&lt;/p&gt;
&lt;p&gt;Just about a year after these cartridges were released, Atari found itself on the other side of this line when it released Pac-Man. At the time, Pac-Man was one of the most popular arcade games and kids were very familiar with how it worked. Atari’s management had failed to understand the importance of being able to follow through on the expectation players would have of the game, and did not give the game’s sole designer enough time or freedom to figure out whether it was possible for the Atari 2600’s aging hardware to do a credible job with Pac-man. The experience delivered did not match customer expectation and the Atari brand suffered a significant blow.&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=kgK22XF9FgQ&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;More of Atari 2600 Pac-Man story on &lt;a href=&quot;https://hackaday.com/2024/10/25/ataris-pac-man-flop-how-a-classic-went-off-course/&quot;&gt;hackaday.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As an aside, someone eventually did find a way to make a credible Pac-Man for the Atari 2600, but it took more than 20 years for the better game to arrive. Amazing what creative humans can accomplish when given the time and space. This effort even managed to win the admiration of the game’s &lt;a href=&quot;https://www.youtube.com/watch?v=RqezF_Lv05Y&quot;&gt;original designer&lt;/a&gt;.&lt;/p&gt;
 &lt;a href=&quot;https://youtube.com/watch?v=uqdcayWamRc&quot; class=&quot;lyt-playbtn&quot;&gt; &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play&lt;/span&gt; &lt;/a&gt;   
&lt;p&gt;This is all to say: how a product or technology is packaged relative to what it delivers matters greatly. It can often determine whether a product or technology will ultimatelty be successful or not.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Turning back to the present, I wonder how AI products will eventually be packaged and what shapes they will have once we fully figure out what they’re good for.&lt;/p&gt;
&lt;p&gt;After having spent some time building with Cursor and Claude, I’m struck by the contrast between how powerful these technologies are and how little their capabilities are apparent at first glance.&lt;/p&gt;
&lt;p&gt;When the primary interface for accessing AI capabilities is through text-based interfaces, it requires that users be curious enough to be willing to poke around and feel their way through the tech, much like early PC users had to feel their way around &lt;a href=&quot;https://archive.org/details/msdos_Zork_I_-_The_Great_Underground_Empire_1980&quot;&gt;text-based adventure games&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With a technology that can accept and understand natural language as well as today’s LLMs can, text-based interfaces can get you a helluva long way. But this approach comes at a cost of discoverabilty. It doesn’t explicitly communicate how it should be used and what it’s good for.&lt;/p&gt;
&lt;p&gt;In the long run, how AI capabilities are packaged and surfaced will have a profound impact on how readily they are adopted. I think this will be one of the biggest challenges for the designers of AI products.&lt;/p&gt;
&lt;p&gt;In some interesting ways, today’s AI product packaging problem feels like the inverse of the Atari 2600 game packaging problem. The package leads with the 8-bit screen art, but the experience of playing looks and feels like the artist’s rendering.&lt;/p&gt;
&lt;div class=&quot;prose-table prose-table--col-max&quot;&gt; &lt;div class=&quot;prose-table__inner&quot;&gt; &lt;table&gt;    &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Atari games&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;AI&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Extremely constrained compute&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Abundant compute&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Few, capped capabilities&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Massive, evolving capability&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Rigid gameplay experience&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Highly personal and customizable experiences&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Delivered through high-affordance interfaces&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Accessed through low-affordance interfaces&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Overly aspirational product packaging with very limited ability to follow through on the promise&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Aspirational technology messaging with (as yet) unrealized potential&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;  &lt;/table&gt; &lt;/div&gt; &lt;/div&gt;
&lt;p&gt;The job for Atari’s packaging designers was to find ways to make the best of a very limited set of technologies by generating a sense of drama and excitement. The limitations of the underlying hardware defined the upper boundaries of how the games could reasonably be packaged and sold.&lt;/p&gt;
&lt;p&gt;By contrast, the open-ended nature of AI is both its strength, and its weakness. When you have a technology that promises to do so much, the trick becomes finding ways to show how it can be used to solve some important subset of problems that humans care about today — many of which may be rather mundane.&lt;/p&gt;
&lt;p&gt;Given this, I think it’s likely that today’s general purpose AI interfaces will eventually need to give way to domain-specific interfaces. The kinds of affordances needed for architects and mechanical designers (for example) will likely be different than the kinds of affordances that software devlopers will need to have.&lt;/p&gt;
&lt;p&gt;And just as software developers are bootstrapping the tools and workflows they want to have to facilitate &lt;a href=&quot;https://simonwillison.net/guides/agentic-engineering-patterns/what-is-agentic-engineering/&quot;&gt;agentic engineering&lt;/a&gt;, making AI work for other domains such as architecture, construction, mechanical design will require developing the interfaces, affordances, and workflows to enable skilled practitioners to figure out how to best incorporate AI into their own ways of working.&lt;/p&gt;
&lt;p&gt;This feels like a very different conception of product packaging than traditional desktop software for professionals. It might be that the packaging job around AI will be to build out a critial mass of easy-to-use core capability so that practitioners can see the utility of AI-enabled workflows, and then offer ways for them to take it the rest of the way.&lt;/p&gt;
&lt;p&gt;So in some ways, we may be strangely back to the Atari model where AI is the platform, and it’s accessed through well-packaged “cartriges” that are good at doing specific jobs.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;One thing that’s going to be interesting to see is what the impact of aspirational messaging around AI will have on the development of AI-enabled products and services. I wonder whether the belief in the unlimited promise of AI might actually present challenges for productizing the tech. When you’re promising so much, it can be easy to overlook the smaller things that could turn out to be very useful.&lt;/p&gt;
&lt;p&gt;Even if foundational AI progress were to stop today, I think AI’s natural language understanding and pattern recognition are more than enough to fundamentally reshape how we interact with computers (and how they interact with us). It will be interesting to see whether we’re willing to give ourselves the time and space to fully explore this, or whether the pressure to deliver the future will tempt us to take shortcuts that outpace our understanding of how to best productize these powerful technologies.&lt;/p&gt;</content:encoded></item><item><title>Mind the Gap</title><link>https://usecraft.com/notes/mind-the-gap/</link><guid isPermaLink="true">https://usecraft.com/notes/mind-the-gap/</guid><description>What will software design look like when it&apos;s easier and faster to make changes to software directly?</description><pubDate>Wed, 08 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For as long as I’ve been working as a designer, I’ve been fascinated by how the design tools we use influence the way we think and work together. When there are big shifts in the enabling technology landscape, our design tools evolve to take advantages of the new capabilities. When the changes are significant enough, we often discover something about how we really want to be designing.&lt;/p&gt;
&lt;p&gt;Once such shift occurred when &lt;a href=&quot;https://www.figma.com/&quot;&gt;Figma&lt;/a&gt; was invented. Figma’s key insight was understanding that organizations of people design software, not individual designers. Most software is made by teams of people who all have an important role to play. They all need to see a design, and contribute to the design, and shape the thing the design represents.&lt;/p&gt;
&lt;p&gt;Figma’s brilliance was to figure out that software makers need their design tools to live in the space that connects all these people together — just as the system of record for code needs to live in the space that connects developers together.&lt;/p&gt;
&lt;p&gt;Figma outcompeted the &lt;a href=&quot;https://www.sketch.com/&quot;&gt;Sketch&lt;/a&gt; + &lt;a href=&quot;in-vision.webflow.io&quot;&gt;InVision&lt;/a&gt; combination because it collapsed the distance between designing and sharing designs. No upload was needed, no translation needed. No re-uploading and re-translating each time a design was updated. With Figma, read-only designs were simply a permissions setting, rather than a completely different data format. Figma eventually won because organizational designing was a more fundamental need than design review.&lt;/p&gt;
&lt;p&gt;Figma utilized advanced web assembly techniques to build a design tool native to the web and browsers. When you have a web-native design tool, the cost of delivering a read-only view essentially goes down to zero, and the time to deliver it to eyeballs is the same as it is for designers that need to make changes in real time. Figma’s solution changed the economics of design collaboration by making it essentially free and able to operate in real time.&lt;/p&gt;
&lt;p&gt;It’s hard to overstate how profound this is or how far ahead of the curve Figma was. The desktop CAD software industry has still not fully digested Figma’s key insight, which is now more than 10 years old. If anything, the design of buildings, infrastructure, and machines is even more an organizational activity than writing software.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Figma is an excellent demonstration of how shifts in the enabling technology landscape can help us to find better ways to use computers to design complex things made to operate in the real world.&lt;/p&gt;
&lt;p&gt;Just as Sketch and InVision were built upon a foundation of ideas that were shaped by the capabilities and limitations of the underlying enabling technology landscape of their time, so too are design tools like Figma.&lt;/p&gt;
&lt;p&gt;I’m going to use my journey of building this site as a way to call attention to some of foundational assumptions that may start to be no longer be true with the advent of useful LLMs that can write workable code in response to natural language requests.&lt;/p&gt;
&lt;p&gt;Let me start by calling out the first:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One of the foundational assumptions behind Figma is that making changes to software is expensive. When making changes to software is costly, it’s a good idea to figure out what you want to build well in advance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So what happens if making changes to software suddenly gets significantly cheaper? I think it gets much harder to make the argument that it’s worth doing most of your high-fidelity thinking about the shape of software independently from the software you hope to create.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;When I was creating this site, there was a point where it made sense to stop designing in Figma and make the remainder of the design decisions in the site itself. This point happened far earlier than I anticipated.&lt;/p&gt;
&lt;p&gt;The primary design challenge for this site was to figure out the responsive layout behavior. When you need to squeeze in a lot of content on something like a phone, it’s going to require a different solution than displaying the content on a 4K monitor. In the space between these two extremes, there are a lot of different devices to consider: big phones, landscape phones, small and large tablets in portrait and landscape orientations, 1080p monitors, 1440p monitors.&lt;/p&gt;
&lt;p&gt;When you add all of these variations up, the design of the site ends up being a lot more involved than it would initially seem, and the challenge becomes laying everything out to make sure it fits, just as you would if you were moving into a new home and needed to make sure that all your furniture was going to fit into the new place.&lt;/p&gt;
&lt;p&gt;In Figma, the more variations you have to deal with, the more effort it is to fully detail out the design. Figma does have some conveniences in place to make this easier, but generally these conveniences require being willing to utilize Figma components, component auto-layout, styles, and variables. These aren’t rocket science, but they operate according to their own logic which only superficially reflects the logic of web browsers and CSS. Many of these capabilities were added to Figma later in its gestation, so they’re nestled in weird corners of the design tool (yes, I’m talking about you, variables).&lt;/p&gt;
&lt;p&gt;If you want the benefits of having design elements in Figma to approximate how they might behave as parts of live applications, then you need to fully take on Figma’s idea about how to lay out and organize all the different parts of a design on a two-dimensional surface.&lt;/p&gt;
&lt;p&gt;It’s better to have these things than not, but they do come at a cost and can be pretty fiddly if you want to have the freedom to move things around and try a bunch of options.&lt;/p&gt;
&lt;p&gt;I often think that the price of designing in Figma is that you have to be willing to think like Figma prefers. The more you want to take advantage of the things that make Figma good for designing websites in a production capacity, the more brittle and locked in the design becomes.&lt;/p&gt;
&lt;p&gt;This isn’t a criticism of Figma — I think the choice Figma’s designers made here was a reasonable one to make — it’s just that if your mind isn’t particularly Figma-shaped, it’s hard to ever reach flow state with this tool. I much prefer to work loose first, and structure things only once I decide the design is ready for this.&lt;/p&gt;
&lt;p&gt;One of the challenges I find with Figma’s auto-layout behavior is that it makes a lot of assumptions around how components will react to having their parent frames stretched and resized. Sometimes these assumptions are correct, but on many occasions they are not. Unfortunately, the rules that govern their behavior aren’t visible and can’t be easily tweaked, which is especially problematic for a design tool. Even something as simple as modifying the position of an element governed by auto-layout frequently can’t be achieved without breaking the component, repositioning the item you want, reassembling the component, and then turning auto layout back on.&lt;/p&gt;
&lt;p&gt;The behavior of Figma’s auto-layout feature only approximately matches the way that browsers and CSS behave, but the differences are significant enough that you end up juggling the weirdness of Figma’s auto-layout behavior and the weirdness of browsers and CSS. All of this comes at some cognitive cost.&lt;/p&gt;
&lt;p&gt;This is a lot of overhead to deal with if what you really want is a responsive website that behaves well when the screen is resized. Beautifully structured designs in Figma isn’t the goal, Having the website deliver content to eyeballs across a wide range of devices is the goal.&lt;/p&gt;
&lt;p&gt;Up until quite recently, this overhead could be justified, owing to the fact that many designers don’t speak CSS natively and moving things around in Figma was considerably cheaper than moving them around in code.&lt;/p&gt;
&lt;p&gt;Prior to building with the help of AI, If you wanted to have as much control over the final product as possible, doing the detailed design work in Figma was the price you needed to pay. You had to make the detailed pictures so that when you handed the design over for building, your front-end developer could understand what the work would entail and what you wanted the final product to look like. Going to the effort to be thorough in the ask is one of the ways that designers show their respect for the challenges that come with getting web browsers to do what you want them to do.&lt;/p&gt;
&lt;p&gt;After building this site, I’m not so sure that this is how designing is going to continue to work in the future.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;When I  started this project, I decided that I’d only lay the basics out in Figma to ensure the site was going to work in principle. The rest of the design work would happen directly on a working version of the site itself in Cursor. I wanted to understand whether incorporating AI into my process would result in my having more or less control over the shape of the thing I wanted to create.&lt;/p&gt;
&lt;p&gt;The experiment worked far better than I could have anticipated. I built the site up key feature at a time, and worked through the responsive behaviors as they came up.&lt;/p&gt;
&lt;p&gt;I even built some tooling in the site to help in the process — a  debugger overlay that displayed the current screen width and the breakpoint range. This made it possible for me to describe the changes that I wanted such that Cursor could understand what I wanted without fail.&lt;/p&gt;
&lt;p&gt;Cursor made working with the content management system, HTML, and CSS feel like working with clay. It allowed me to rough out a fully functional but basic site, and then sculpt it until it was just as I wanted. I was able to work by tackling the big rocks first, followed by smaller rocks.&lt;/p&gt;
&lt;p&gt;This fits my style of thinking far better than Figma does, which is organized around the idea of content being contained in nested frames whether you’re ready for this or not.&lt;/p&gt;
&lt;p&gt;The thing that was interesting to notice was that it was much faster and easier for me to make  design decisions on the site itself than it would have been in Figma. I didn’t need to wrestle with the Figma’s auto-layout behavior. I could make style changes and have them cascade appropriately across elements that shared the same CSS. There was no drift between an idealized design and the working site as is typical.&lt;/p&gt;
&lt;p&gt;Building and designing with Cursor gave me significantly more control over the layout than I could do in Figma, and the whole process was much faster than if I had detailed everything out in Figma and then had to translate this into HTML and CSS, grappling with the inevitable mismatch between as-designed and as-built.&lt;/p&gt;
&lt;p&gt;I was also interested to observe that I didn’t design more of the site than I needed to. When coding is expensive, it’s common to attempt to design a lot more than will ever actually get built. You try to anticipate all of the possible edge cases you might run into, just to build confidence that the core of what you’re going to build will handle enough of the key problems. I didn’t need to do this. When there was a problem with the design, or something I missed, I could see it instantly and come up with a new solution, and see if that made it better within the span of minutes.&lt;/p&gt;
&lt;p&gt;Essentially, this project incorporated a much higher percentage of my design time because the act of designing had merged with the act of building.&lt;/p&gt;
&lt;p&gt;And by designing at the point where ideas turn into working code, the site got better faster — as did my ideas. The more I understood how the underlying content management system worked, the more sophisticated  I could get in what I asked for. The rate of improvement accelerated over the duration of the project and I got to be surprised by where it (and I) ended up.&lt;/p&gt;
&lt;p&gt;This sense of surprise is perhaps the most profound part. When the design tools we use condition us to supply them with every detail of the design before our ideas can be turned into software, then the design tools we use ultimately ask us to narrow our thinking — and limit our expectations for what we’re making. By specifying how we expect the final, dynamic product to be through static pictures, we leave very little room for it to become something else, or something more.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Coming back to earth, one designer using AI coding tools to build out a custom blog isn’t the same as an organization designing a software product meant to serve a large number of people. I had the luxury of taking shortcuts and could move to coding before having everything worked out. It’s hard to imagine an established product team being willing to do this — yet. Figma still offers a great deal of value.&lt;/p&gt;
&lt;p&gt;It’s also worth noting that this blog wasn’t asking very much from a technology perspective. Because this site is made of the same stuff as the web, and this is what LLMs have been trained on, anything I asked for was a relatively simple pattern matching exercise. If ever there were an LLM-shaped problem, it’s this project. It was almost purely happy-path from an AI usage perspective and so it’s not a real test. Making software under real-life conditions is a lot messier and dynamic than this, and the consequences for fucking up are much greater.&lt;/p&gt;
&lt;p&gt;By doing the rough designing in Figma but making all detailed design decisions directly in working software, it helped me notice how static designs are far harder to evaluate than a working product. No newsflash here. We always notice the things we missed when we can see our designs moving.&lt;/p&gt;
&lt;p&gt;Being able to resize the window and see how the site reacted, and then make changes directly to the site was significantly easier and faster. Just dealing with the quirks of layout in web browsers was far more direct than having to cajole Figma to be able to handle all of the variations I thought I might encounter. There’s a big difference between trying to imagine all of the possibilities versus dealing with them directly. The first gives you the illusion that you’ve anticipated everything, and the second just lets you solve the problems as they occur.&lt;/p&gt;
&lt;p&gt;Another benefit of shifting design over to working software as quickly as possible is that while I was making changes, I was using the thing I was making. Clicking on links, reading text, looking at images, watching to see how the site responded to different screen widths, etc.. I was directly engaged with how the content management system operates, and gained first-hand knowledge of how it “thinks”. The more you understand the underlying capabilities and limitations of the technologies you’re building with, the more effectively you can design for it. This also seems like an important signal.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;My experience building and designing the site with AI coding tools makes me think about the gap that Figma originally collapsed between designing and design review.&lt;/p&gt;
&lt;p&gt;People tolerated this gap and assumed it was just the cost of doing business when there weren’t any alternatives. We believed there was a distinction between designing and collaborating because that’s all the technology would allow.&lt;/p&gt;
&lt;p&gt;Once people started to see the benefits of designing in software meant for organizations of people, and once they saw that it was possible to do without the impedance of having to prepare and curate designs for sharing, Figma took off.&lt;/p&gt;
&lt;p&gt;My experience of designing and building this site with the help of AI coding tools leads me to think that just as Figma enabled organizations of people to design software, I think we’re going to see a new set of technologies and tools change the nature of designing again.&lt;/p&gt;
&lt;p&gt;It won’t be because the computer industry finally figured out how to make the easy button that can one-shot a fully realized design that does all the things. It’ll be because designers can directly shape and learn from the actual things they are helping to invent, and that’s honestly how it should be.&lt;/p&gt;</content:encoded></item><item><title>CAD&apos;s Next Shift</title><link>https://usecraft.com/essays/cad-next-shift/</link><guid isPermaLink="true">https://usecraft.com/essays/cad-next-shift/</guid><description>Computer aided design has a history of moving towards more capable substrates. How will CAD evolve next?</description><pubDate>Sun, 05 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://usecraft.com/_astro/hero.DeLY9VZT_ZR2BeI.webp&quot; alt=&quot;&quot; width=&quot;960&quot; height=&quot;406&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;&lt;p&gt;Stories of how things came to be in technology fascinate me. How did humans manage to take a technology that was originally used for calculating &lt;a href=&quot;https://en.wikipedia.org/wiki/ENIAC&quot;&gt;ballistic trajectories and thermonuclear reactions&lt;/a&gt; and transform it into a technology that helps us design and build entirely new things like computer chips, buildings, factories, railways, robots, cars, movies, music, games, and art?&lt;/p&gt;&lt;p&gt;There are four snapshots that immediately come to mind. Two happened during the birthplace of CAD, one happend when humans decided to stop designing on paper, and one that’s still in the process of being figured out.&lt;/p&gt;&lt;p&gt;I’m afraid that I won’t do any of these stories the justice they deserve, but I think seeing them together is instructive. Each of these stories involves people grappling with advancements in computer technology in an effort to make tools that can help humans design complex things meant to function in the real world. Many of the problems they grappled with are problems that still exist in CAD software today.&lt;/p&gt;&lt;p&gt;When we compress time and see how some of the fundamental ideas we take for granted were invented, it becomes easier to recognize that many of our ways of interacting with CAD software aren’t set in stone, they’re just what made sense at the time that they were invented.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://usecraft.com/essays/cad-next-shift/&quot;&gt;Read the full essay&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Cursor Impressions</title><link>https://usecraft.com/notes/cursor-impressions/</link><guid isPermaLink="true">https://usecraft.com/notes/cursor-impressions/</guid><description>General impressions of building with Cursor. What worked well and areas for improvement. </description><pubDate>Fri, 03 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently finished the build-out of this site and thought it might be useful to jot down my thoughts on what it was like to work with &lt;a href=&quot;https://cursor.com/&quot;&gt;Cursor&lt;/a&gt;.&lt;/p&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/cursor.DOA6ZWEi_Z2dUSLC.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;2550&quot; height=&quot;1620&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑] &lt;a href=&quot;https://cursor.com/&quot;&gt;Cursor&lt;/a&gt; allowed me to build out this site and custom components on top of &lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;h2&gt;Why Cursor?&lt;/h2&gt;
&lt;p&gt;I wanted to have a high degree of control over the look and feel of the site. Cursor incorporates a web browser, which makes it easy to see the changes you’re making as you go. The browser makes it easy to point directly at the UI element you want to change so that Cursor understands what you’re referring to. I had a good deal of  familiarity with VS Code, which also made Cursor a good choice.&lt;/p&gt;
&lt;h2&gt;Overall impressions&lt;/h2&gt;
&lt;p&gt;My experience of building with Cursor and AI was overwhelmingly positive. I had very few hiccups along the way. A good deal of this is due to the underlying capabilities of the models. The ability of today’s LLMs to understand natural language is shocking.&lt;/p&gt;
&lt;p&gt;I think the CMS I used as the basis for this site helped a good deal too. &lt;a href=&quot;https://astro.build&quot;&gt;Astro&lt;/a&gt; is highly structured and modular, and is made of the stuff LLMs have been trained on, so I think it was a great first AI-assisted project to work on. It also helped that I knew exactly what I wanted to have in the end, which made it easier for me to ask for what I wanted.&lt;/p&gt;
&lt;p&gt;The overall impression I had of building was one of momentum. Normally when I build something my progress is pretty choppy as I tend to bump into the limits of my knowledge and ability pretty quickly. On this project, my progress was shockingly smooth.&lt;/p&gt;
&lt;h2&gt;Typical usage pattern&lt;/h2&gt;
&lt;p&gt;Here’s the basic usage pattern that seemed to work the best for me:&lt;/p&gt;
&lt;div class=&quot;prose-table prose-table--col-max&quot;&gt; &lt;div class=&quot;prose-table__inner&quot;&gt; &lt;table&gt;    &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Step&lt;/th&gt;&lt;th&gt;Mode&lt;/th&gt;&lt;th&gt;Note&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;code&gt;Ask mode&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Ask what would be involved in making a change I have in mind. Point directly at the thing to change in the browser or file list. Add screenshots if needed.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;code&gt;Ask mode&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Ask for options along with pros and cons. Continue asking questions until I’m confident I understand what was at stake.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;code&gt;Plan mode&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Ask to make a plan based on the conversation.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;code&gt;Plan mode&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Add any additional adjustments and clarifications to the plan.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;5&lt;/td&gt;&lt;td&gt;&lt;code&gt;Agent mode&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Build the plan.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;code&gt;Agent mode&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Review the results. Make additional manual adjustments and tweaks with the inspector, or in the code.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;7&lt;/td&gt;&lt;td&gt;&lt;code&gt;Agent mode&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Follow up with additional related enhancements until feature is complete.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;8&lt;/td&gt;&lt;td&gt;&lt;code&gt;Git&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Commit changes.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;  &lt;/table&gt; &lt;/div&gt; &lt;/div&gt;
&lt;h2&gt;What worked well&lt;/h2&gt;
&lt;p&gt;I had surprisingly few hiccups along the way, and none that stopped me from building the site out in the way I wanted. It’s hard to articulate just how smooth the process was relative to me having to manually build this out. Here’s what worked for me:&lt;/p&gt;
&lt;div class=&quot;prose-table prose-table--col-max&quot;&gt; &lt;div class=&quot;prose-table__inner&quot;&gt; &lt;table&gt;    &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Tactic&lt;/th&gt;&lt;th&gt;Note&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Vanilla Cursor&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;I used vanilla Cursor in order to assess what it could do. No skills. Cursor seemed to have a good understanding of how Astro is structured just from examining the code.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Incremental building&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Building up interfaces one component at a time worked far better than one-shotting an entire page. This enabled me to build up the site one key component at a time, and ensured that the changes I made did not degrade the site over time.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Making small changes&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Numerous, smaller rounds of changes also helped me better understand how to effectively ask for bigger changes.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Screenshot references&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Uploading screenshots of the features I wanted to build seemed to work better for me than through Figma’s MCP server. I found that when sending Figma links to Cursor, the resulting CSS code would be messier than through screenshots.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Debugger&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Debugging mode was very helpful in a few spots where Cursor would make a change I had requested, confidently assert that it was successful, but clearly was not. Debugging mode would take into account the plan that I had asked for when the original changes were made, and this reduced the amount of framing I’d need to do in my debug request.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Stack trace copy-and-paste&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Pasting Astro error stack traces into the debugger easily resolved any breaking changes.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Explain this feature to me&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;When starting with a new agent or context window, I’d ask Cursor to explain a feature of the site for me. This enabled me to utilize the same descriptive language Cursor was using, which improved the results.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Natural language&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Using natural language requests when operating with shared context was astonishingly effective. No different than if I were art directing.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Example websites&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Pointing Cursor at example websites to understand how a certain feature was constructed. Use this as a jumping off point for feature development.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Documentation review&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Having Cursor review Astro’s documentation to understand the best way to build a specific feature.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Ask Claude&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Asking Claude for an explanation of how a typical feature would be constructed and then using this as a spec to feed into Cursor.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;  &lt;/table&gt; &lt;/div&gt; &lt;/div&gt;
&lt;h2&gt;Issues&lt;/h2&gt;
&lt;p&gt;The issues I encountered while building with Cursor were relatively minor, owing primarily to my unfamiliarity with working with AI-assisted coding. I encountered no major blockers.&lt;/p&gt;
&lt;div class=&quot;prose-table prose-table--col-max&quot;&gt; &lt;div class=&quot;prose-table__inner&quot;&gt; &lt;table&gt;    &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Issue&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Resolution&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Styling errors when translating a screenshot&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Minor manual tweaking&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Too many changes at once&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Start over and constrain the ask&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Cursor over-systematizing&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Clearer scoping in my requests, minor refactoring/cleanup stage&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Cursor under-systematizing&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Point Cursor to examples in code to follow.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Cursor makes a change that breaks Astro&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Copy the error message into debug mode.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Styling changes that wouldn’t take&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Adding screenshots of problem and desired result to the debugger.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Cursor attempts to do too much at once&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Constrain the problem, reduce the scope of the change.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Poorly or partially executed feature&lt;/td&gt;&lt;td&gt;→&lt;/td&gt;&lt;td&gt;Roll back, reduce scope, be more specific and organized in the ask.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;  &lt;/table&gt; &lt;/div&gt; &lt;/div&gt;
&lt;h2&gt;Areas for improvement&lt;/h2&gt;
&lt;br /&gt;
&lt;h4&gt;Agent integration with UI&lt;/h4&gt;
&lt;p&gt;From time to time, Cursor got stuck in plan mode or ask mode and would not switch over to agent mode when it came time to build. Near as I can tell, this behavior is session-specific and tied to an agent. My workaround was to start a new conversation, make reference to the plan file created by the original agent, and then continue. Not a huge issue but definitely would take me out of the flow and reduced my confidence in Cursor.&lt;/p&gt;
&lt;p&gt;This gave me the sense that the integration between the underlying models and the UI isn’t quite solid. Is this an artifact of the weirdness that must come with connecting LLMs to software that wasn’t designed for this use case? Or is this the weirdness that comes with an Electron based application that isn’t natively written for Macs? Hard to tell.&lt;/p&gt;
&lt;h4&gt;Cursor’s lack of awareness of its own UI&lt;/h4&gt;
&lt;p&gt;I was surprised by how limited access Cursor’s agents have to the state of Cursor’s UI. Just as I can ask questions around the codebase I’m working on, I expected to have the same ability when it came to Cursor’s UI. For instance, I might ask “how can I do X in Cursor”, and I’d get an explanation, but no ability to have Cursor enact the change directly.&lt;/p&gt;
&lt;h4&gt;Code autocomplete gets in the way&lt;/h4&gt;
&lt;p&gt;Code autocomplete was particularly useful when repeating the same edits in multiple places, but annoying in it’s always-on nature. I felt as if it interfered with my ability to make code edits more often than not. I don’t quite know what the solution is for this.
There were a number of occasions where I’d ask a question about the code, get a response that included the code in the application, but Cursor wouldn’t consistently provide links to the specific line in the codebase. I could not find an easy way to tell Cursor to do this.&lt;/p&gt;
&lt;h4&gt;Browser inspector bugginess&lt;/h4&gt;
&lt;p&gt;There was a fair amount of bugginess on the browser and inspector side. I had to learn to open the inspector panel to activate the object selection control. Inspector panel resizing could also be buggy in that when dragging a panel border to resize, the mouse release event wasn’t registered, resulting in the panel width following the mouse as you move across the screen.&lt;/p&gt;
&lt;h4&gt;General text lagginess&lt;/h4&gt;
&lt;p&gt;Cursor’s UI would often get laggy during longer sessions. I’d notice it when typing summaries for git commits, even when Cursor wasn’t working on a task. Not a deal breaker, but performant text handling should be a given in a code-based tool for software developers.&lt;/p&gt;
&lt;br /&gt;
&lt;h2&gt;Thoughts about Cursor as a product&lt;/h2&gt;
&lt;br /&gt;
&lt;h4&gt;VS Code is a double-edged sword&lt;/h4&gt;
&lt;p&gt;I think it was smart for Cursor to utilize VS Code from an adoption standpoint. The barrier to entry is much lower for developers who are already accustomed to working with it. Perfectly reasonable approach to take. With this said, I wonder whether the reliance on VS Code — and all the product-level assumptions that might come with it — might prevent Cursor from evolving towards something that is more specific to the needs of developing applications with AI.&lt;/p&gt;
&lt;p&gt;The most important parts of Cursor feel like they are shimmed into VS Code’s UI. It may very well be that this is what works best for experienced developers, but I found this to be awkward from a product design perspective. The UI to choose which agent mode you’re in seems hugely consequential, but not very prominent. I suspect a new user would be hard-pressed to tell just how important it is to the functioning of Cursor.&lt;/p&gt;
&lt;h4&gt;Single document focus&lt;/h4&gt;
&lt;p&gt;There’s also something about the nature of building with AI that seems different than the kinds of development work that typically happens in VS Code. So many of the changes that Cursor helped me make to this site were global and systematic in nature. By contrast, VS Code seems largely oriented around the idea of viewing and editing just a handful of documents at once, and the browser is oriented around viewing and interacting with one web page at a time.&lt;/p&gt;
&lt;h4&gt;Significant interpretability challenges&lt;/h4&gt;
&lt;p&gt;While I’m still early days of working with and understanding AI, it seems to me that one of the strengths of LLMs is that they have a way to see complex relationships and patterns that makes it possible for them to be used to make coherent, systematic, global changes across an application. To do this well requires bringing humans along for the ride. I think there’s a great deal of work yet to be done around visualizing the structure of the code you’re working with and visualizing the changes the model intends to make. The better AI can help humans understand complex structures and changes, the better humans will be at using AI to make complex but understandable software.&lt;/p&gt;
&lt;h4&gt;Better communication of planned changes&lt;/h4&gt;
&lt;p&gt;Similarly, the interpretability of planned changes, or changes that have been completed feel like an area for exploration that could use some more interface real estate than what the chat or document panels can easily accommodate.&lt;/p&gt;
&lt;h4&gt;Systematic software views&lt;/h4&gt;
&lt;p&gt;I suspect that we’re going to need more systematic ways to present and view the entirety of a piece of software, along with the changes planned or implemented by LLMs. An example of this could be a kind of “super-browser” that utilizes an infinite canvas, just like in Figma. This super-browser would allow all the pages or states of an application could be arrayed on the canvas, and any changes planned or executed could be displayed and highlighted on this canvas. Object selection could also work globally as well - so when you select one instance of an object on a page, you have the ability to select all of the other identical objects throughout the site or application. Surely people are already working on this.&lt;/p&gt;
&lt;h4&gt;Room to evolve when code isn’t the thing?&lt;/h4&gt;
&lt;p&gt;As we become more comfortable with the idea of building software with LLM’s I think it’s likely that the code view may become less important as time goes on. People will care more about what the code does, and less about how it is organized. I wonder what it will mean for Cursor’s long term evolution as we figure out what AI native software development norms should look like. I suspect that they will be organized more around system-level interactions and visualizations and less around code views and file structure. This might be a hard thing to pull off for a product experience that’s so closely tied to VS Code.&lt;/p&gt;
&lt;h4&gt;Using Cursor to customize Cursor&lt;/h4&gt;
&lt;p&gt;I have a sneaking suspicion that we’ll eventually see AI harnesses that are by default open to the same kinds of customizing and tweaking as the code they are meant to operate on. I don’t know what this is going to look like in practice, and this would impose significant challenges for maintaining and updating the software, but I get the sense that the boundaries between the models and harnesses will be a lot blurrier than how today’s Cursor seems to be organized.&lt;/p&gt;</content:encoded></item><item><title>How This Site Was Made</title><link>https://usecraft.com/essays/how-site-made/</link><guid isPermaLink="true">https://usecraft.com/essays/how-site-made/</guid><description>Static site builder Astro was a great testbed for learning about building with Claude and Cursor.</description><pubDate>Sat, 28 Mar 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://usecraft.com/_astro/hero.D4V8LiGs_Z2ccSvt.webp&quot; alt=&quot;&quot; width=&quot;960&quot; height=&quot;406&quot; loading=&quot;lazy&quot; /&gt;&lt;/p&gt;&lt;p&gt;With the tremendous acceleration that’s happening with technology,  I wanted to have a public place to think aloud and see what patterns show up. I knew I didn’t want to use a readymade blog theme. I wanted to have the ability to experiment with richer forms of storytelling and visual explanation.&lt;/p&gt;&lt;p&gt;I thought that this might be a good opportunity to better understand whether I could get something useful by building with AI coding assistance. I wasn’t interested in attempting to one-shot a blog into existence; I wanted to see if I could build the site up in a way that would help me explore what the best ways to work with AI.&lt;/p&gt;&lt;p&gt;Here’s what I did.&lt;/p&gt;&lt;p&gt;I started by setting up and exploring Anthropic’s &lt;a href=&quot;https://claude.ai&quot;&gt;Claude&lt;/a&gt;. There’s a great deal of delight and personality that’s carried entirely through textual experiences. This feels appropriate for a technology that’s been fed and trained on textual information. Answers to my questions were concise, readable, and organized. Far easier to digest than search results.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://usecraft.com/essays/how-site-made/&quot;&gt;Read the full essay&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Full Circle</title><link>https://usecraft.com/notes/full-circle/</link><guid isPermaLink="true">https://usecraft.com/notes/full-circle/</guid><description>Designing is starting to feel like it did when the web was new. Thank goodness for that. 
</description><pubDate>Sat, 21 Mar 2026 12:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1. Boom Days&lt;/h2&gt;
&lt;p&gt;I got my start in design back during the dot-com boom. I was fortunate to start working in software at a time when if you had a pulse, were fairly resourceful, and were willing to work hard, you could get a job in tech in San Francisco.&lt;/p&gt;
&lt;p&gt;The web was still relatively new and evolving quickly. Humans were working hard to figure out what it was good for and how to design for it. Where you went to school or what degree you held wasn’t nearly as important as whether you could do a thing, or whether you could quickly figure out how to do a thing you said you already knew how to do.&lt;/p&gt;
&lt;p&gt;Working then was exhilarating and frightening. The web was growing by leaps and bounds. Working in tech in San Francisco in the late 1990’s and early 2000’s was a constant hustle, and the hustle often involved projecting confidence that you knew what you were doing, getting the job, realizing that you were in over your head, burning late hours, and then pulling it off.&lt;/p&gt;
&lt;p&gt;Part of the hustle in consulting was asserting that you had a process that would get you to the best result as quickly as possible. This gave prospective clients confidence that they would be in good hands and they were making a sound investment with guaranteed returns.&lt;/p&gt;
&lt;p&gt;At the time, we believed in what we were asserting around design process but reality always had a way of intervening. The rapidly evolving state of the web and our understanding meant that process changed on every project. We barely knew what we were doing back in those days, so there was a lot of faking it until we made it.&lt;/p&gt;
&lt;p&gt;During this time, humans figured out how to build a online bookstores, local guides, search engines, online magazines and newspapers, online maps, airline booking sites, streaming music services, streaming video services, multimedia experiences, touch-based kiosks, smartphones, online word processors and spreadsheets, online auctions, online banking, blogs, videoconferencing, and so on. These things hadn’t existed before. They were something new.&lt;/p&gt;
&lt;p&gt;Every day brought a new development and how we designed had to evolve just as quickly as the medium we were working in. I absolutely loved it. There’s real magic in being able to go from an idea to software that does a thing, that moves on the screen.&lt;/p&gt;
&lt;p&gt;I think part of the reason it felt like magic is that we genuinely had no idea what was going to come out at the other end of a project. We had to feel our way through it. We’d get inspired by some new development or technique, or pull from the rich history of graphic design, motion graphics, cinema, and generative art. Not knowing was a prerequisite for making something new, interesting, and good.&lt;/p&gt;
&lt;p&gt;One of the key ways of working through our not knowing was to ask questions about what’s possible, what good looks like, what might work. The questions wouldn’t just be verbal, they would be questions we would ask of the technologies we were building with. Asking questions of new technology meant building with code and seeing what came out.&lt;/p&gt;
&lt;p&gt;The things we made would eventually tell us what the final shape should be. It would feel amazing seeing how far our ideas had traveled as they became software that would move and change in response to input and actions.&lt;/p&gt;
&lt;p&gt;Once we were done and the product was launched, we’d have the satisfaction of having invented something that was made of questions, creativity, fear and stubbornness. Our clients would never know this of course, but they would feel it in how the work shined.&lt;/p&gt;
&lt;p&gt;I think this was my favorite time working in software — a time when we knew far less, moved much faster, and invented more.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;2. Uppercase “D” Design&lt;/h2&gt;
&lt;p&gt;If you were a design consultancy in the early to mid 2000’s, your design process could be a huge perceived competitive advantage. High profile consultancies like &lt;a href=&quot;https://www.ideo.com/&quot;&gt;Ideo&lt;/a&gt; worked to formalize and evangelize their approach to multidisciplinary design, which eventually found its way into &lt;a href=&quot;https://dschool.stanford.edu/&quot;&gt;academia&lt;/a&gt; and design school curriculums.&lt;/p&gt;
&lt;p&gt;Design gradually grew up and took on ever more important sounding titles. &lt;code&gt;Interaction Design&lt;/code&gt; and &lt;code&gt;User Interface Design&lt;/code&gt; became &lt;code&gt;User Experience Design&lt;/code&gt;. &lt;code&gt;User-Centered Design&lt;/code&gt; was a thing for a while until &lt;code&gt;Human-Centered Design&lt;/code&gt; ate its lunch. &lt;code&gt;Service Design&lt;/code&gt; was coined. Design frameworks multiplied like &lt;a href=&quot;https://www.youtube.com/watch?v=B2T1QX7BEyg&quot;&gt;Tribbles&lt;/a&gt;, &lt;code&gt;Design Operations&lt;/code&gt; appeared at large companies, &lt;code&gt;Research-Driven Design&lt;/code&gt; made an appearance, as did &lt;code&gt;Design Science&lt;/code&gt;. There’s huge power in naming and lots of status for the coiners of the names.&lt;/p&gt;
&lt;p&gt;With each evolution of how design saw and branded itself, the process got more involved and baroque, the artifacts got more detailed, and the culture of design claimed a greater degree of ownership over how software should be made. With each evolution, designers spent more of the attention on how they were doing the job rather than the impact that they were having. Consistency of practice and output became the goal, rather than whether the things we were making were actually good, or solved enough of the right problems.&lt;/p&gt;
&lt;p&gt;By the early 2010s, designing started to feel more like a set of recipes to follow, rather than what comes out of the collective hard work of giving ideas shape through good and useful software.&lt;/p&gt;
&lt;p&gt;As the practice of software design matured, it seemed to become more preoccupied with getting things right before software is actually made. Designing would be broken into phases where we’d research what problems might be good to solve, validate that a chosen problem was a good one, then brainstorm possible solutions, explore a bunch of them, and winnow them down until we had a couple to show customers for feedback. And all this work was expected to happen before a line of real code was written. Design started to pitch itself as a kind of risk mitigation&lt;/p&gt;
&lt;p&gt;By 2015, I found myself increasingly uncomfortable with uppercase “D” Design, and I actively sought out smaller, scrappier teams, and worked to build partnerships with like-minded product and engineering stakeholders. Shipping useful software quickly and iteratively can allow you to cut through a lot of process. When you’ve made a useful thing that’s well instrumented, your customers tell you what you need to make and what problems are critical to solve.&lt;/p&gt;
&lt;p&gt;I also worked to build up domain expertise in the industries I was making software for. Building deep knowlege helps you to shortcut all of the parts of the process which are concerned with finding and understanding worthwhile problems to solve. Finding good design solutions goes a lot faster too.&lt;/p&gt;
&lt;p&gt;This way of working served me well for a few years more, but I was wholly unprepared for “Design Thinking” when it appeared and started to work its way into the collective design consciousness.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;”Design Thinking” Over Design Doing.&lt;/h2&gt;
&lt;p&gt;With the advent of “&lt;a href=&quot;https://www.ideou.com/blogs/inspiration/what-is-design-thinking?srsltid=AfmBOoo9XKDUkabLu08eQ7C_sL9r87Cww9RiCn7x39b267Bq9ukKyJJb&quot;&gt;Design Thinking&lt;/a&gt;”, the ambitions of uppercase “D” Design got bigger still. Design was now eating entire software companies.&lt;/p&gt;
&lt;p&gt;The gist of “Design Thinking” is that entire companies can unlock their inner designer by employing a framework comprised of set of methods designed to encourage software organizations to think about human-centered designing in the same ways that designers think about it. It’s the equivalent of a whole-body design process for corporations, and it was everything uppercase “D” Design ever wanted.&lt;/p&gt;
&lt;p&gt;When the “Design Thinking” movement took hold, I remember feeling as if I were having an out of body experience — the methods promoted could be useful occasionally, but most struck me as forced, performative, highly wasteful, and often resulted in our having fewer real conversations, generating more noise, less clarity, fewer genuine insights, and far fewer lessons learned through the making of useful software. “Design Thinking” seemed to matter more than &lt;em&gt;design doing&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;During this time, I felt increasingly out of sync with how design was happening and I started to question myself, despite having more than two decades of experience shipping fairly complex software projects. What can I say? My imposter syndrome is old enough to legally buy beer.&lt;/p&gt;
&lt;p&gt;There was no escaping “Design Thinking”. When everyone in an organization is a designer, everyone workshops. Even software developers were forced to draw concept posters, think about “how might we…” and describe “what’s on their radar” until they figured out how to get themselves excused. We were awash in Post-its and high on Sharpie fumes.&lt;/p&gt;
&lt;p&gt;Good friends made a sport of my suffering by vibe rendering me covered in Post-its and inadvertently created a record of the toll that “Design Thinking” exacted over time:&lt;/p&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/stickies.x1nq4Lzt_21Kl6y.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;1284&quot; height=&quot;1918&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑] This was so good I made it my Slack avatar. Is the man in the picture all-in on the process or is this a cry for help?&lt;/figcaption&gt; &lt;/figure&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/stickies2.By_KY1lM_COmKO.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;512&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑] The million-sticky stare. Can’t. Handle. Another. Workshop.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;figure class=&quot;note-figure&quot;&gt; &lt;div class=&quot;note-figure__image&quot;&gt; &lt;img src=&quot;https://usecraft.com/_astro/stickies3.B_WC-snO_ZaidJV.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; /&gt; &lt;/div&gt; &lt;figcaption class=&quot;note-figure__caption note-figure__caption-inner&quot;&gt;[↑] Don’t let friends &lt;a href=&quot;https://www.luma-institute.com/abstraction-laddering/&quot;&gt;abstraction ladder&lt;/a&gt;. It’s Post-its all the way down.&lt;/figcaption&gt; &lt;/figure&gt;
&lt;p&gt;Eventually, and much to my relief, “Design Thinking” eventually &lt;a href=&quot;https://www.technologyreview.com/2023/02/09/1067821/design-thinking-retrospective-what-went-wrong/&quot;&gt;fizzled out&lt;/a&gt;. All was not wasted. Seeing exactly how I didn’t want to design helped me crisp up my take on lowercase “d” design.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Eat your heart out Ideo:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The simpler I make the job of designing, the more attention I can pay to what we’re trying to make.&lt;/li&gt;
&lt;li&gt;The better I understand the people we’re supposed to be helping, the better I can serve their needs.&lt;/li&gt;
&lt;li&gt;The more I understand the wider context, the more likely we’ll make successful products.&lt;/li&gt;
&lt;li&gt;The better I support my team, the more impact they will have.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Full Circle&lt;/h2&gt;
&lt;p&gt;This leads me to 2026. I’ve been on sabbatical with the amazing support of my family. During this break, I built out the materials I wanted to have in place for when I started looking for work again. I finished my &lt;a href=&quot;https://usecraft.design/&quot;&gt;portfolio&lt;/a&gt;, and I built this site, hoping to work through some thoughts about designing and the future of CAD that have been on my mind.&lt;/p&gt;
&lt;p&gt;I built this site with the help of Cursor along with an assist from Claude. I made it by asking questions of the technology and built it up one question at a time, not all that different from when I got my start designing for web. I designed the initial look and feel in Figma, but quickly moved over to making finer design decisions through code because I wasn’t sure about what the technology could be made to do. The thing I made started to tell me what it should be, and all I had to do was listen and work to make the signal stronger.&lt;/p&gt;
&lt;p&gt;Much to my surprise, this project brought me back to the feeling I had when I started working in software — that thrill when you’ve made a thing you wanted but didn’t know how to make when you started. And what’s more, I’m back to learning through the making, which I think is the point of putting something out into the world and seeing what happens when you do.&lt;/p&gt;
&lt;p&gt;The experience of building this site has made me realize that I’ve been mourning for design for &lt;em&gt;years&lt;/em&gt; now — watching it slowly slip away and become diminished as it continuously grasped for more. I think I allowed myself to be diminished by not fighting for what I believe in.&lt;/p&gt;
&lt;p&gt;With the building of this site, I’m surprised to discover that I don’t need to mourn for design. The parts I love about designing are still here and are still useful. They just work a bit differently than they did before. I’m excited to see what the future holds, and I have so many questions for it.&lt;/p&gt;</content:encoded></item></channel></rss>