<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jeremy Andrews</title>
    <description>The latest articles on DEV Community by Jeremy Andrews (@jandrewsnc).</description>
    <link>https://dev.to/jandrewsnc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3946927%2F9bddfe22-f3dd-48c9-84ee-c1b3671c597f.png</url>
      <title>DEV Community: Jeremy Andrews</title>
      <link>https://dev.to/jandrewsnc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jandrewsnc"/>
    <language>en</language>
    <item>
      <title>What Figma gets wrong about the collaboration problem</title>
      <dc:creator>Jeremy Andrews</dc:creator>
      <pubDate>Fri, 26 Jun 2026 22:51:53 +0000</pubDate>
      <link>https://dev.to/jandrewsnc/what-figma-gets-wrong-about-the-collaboration-problem-1kc0</link>
      <guid>https://dev.to/jandrewsnc/what-figma-gets-wrong-about-the-collaboration-problem-1kc0</guid>
      <description>&lt;p&gt;At Figma Config 2026, Figma announced code layers: interactive code that lives directly on the design canvas, alongside your design files.&lt;/p&gt;

&lt;p&gt;The take you'll read everywhere:&lt;br&gt;
&lt;em&gt;"Design tool threatens engineers!"&lt;br&gt;
"Engineers defensive!"&lt;br&gt;
"AI replaces another job!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's not what I'm worried about, said as someone who spends a decent amount of time writing and reviewing AI-generated code.&lt;/p&gt;

&lt;p&gt;I'm not arguing against AI in the dev workflow.&lt;br&gt;
I'm worried that Figma is solving the right problem with the wrong answer.&lt;/p&gt;



&lt;p&gt;The design-to-dev handoff is genuinely broken. It has been for years.&lt;/p&gt;

&lt;p&gt;Designer works in a flat file, in a silo. Ships it over the fence. Engineer implements. Something about the interactivity is off. Designer goes back. Adjusts. Ships again. Engineer adjusts. Repeat.&lt;/p&gt;

&lt;p&gt;It's a structural problem. Two people who need each other's expertise are working in separate rooms and passing notes back and forth.&lt;/p&gt;

&lt;p&gt;Leadership wanting to change this is correct. The push to be more "in code", vague as the phrasing is, points at something real: design and dev should be working closer together than they often are. Less silo, more overlap.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  The bottleneck isn't the handoff.&lt;br&gt;
It's the gap in context between the people on either side of it.
&lt;/div&gt;





&lt;p&gt;Figma looked at the problem and concluded the bottleneck was the handoff itself.&lt;/p&gt;

&lt;p&gt;Code layers are their answer: convert any design frame to a working code layer with one click, or generate one from scratch with the Figma agent. Compare options side by side on the canvas. Comment, iterate, extract back to design layers, push to a repo.&lt;/p&gt;

&lt;p&gt;In his recap of Figma Config 2026 on the Figma blog, Dylan Field wrote that "code is material, just like images, vectors and design layers."&lt;/p&gt;

&lt;p&gt;Both designers and engineers, in the same file, on the same canvas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9422e6jj8y26n2gzgz3y.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9422e6jj8y26n2gzgz3y.gif" alt="A man in a cowboy hat is smiling and says " width="498" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Engineers don't want to live in Figma.&lt;/p&gt;

&lt;p&gt;They work in editors, terminals, and tools that have full context of what they're building. Asking an engineer to collaborate inside the canvas is asking them to leave the environment where they can actually see what the code does. Most won't. And when they don't, the loop Figma describes collapses.&lt;/p&gt;

&lt;p&gt;What's left is design-generated code that gets pushed to a repo and becomes someone else's problem. Not a handoff eliminated, but a new kind of handoff created.&lt;/p&gt;




&lt;p&gt;Then there's the structural issue that runs underneath all of it: Figma is a design tool.&lt;/p&gt;

&lt;p&gt;Its entire business model is design seats. Every product decision they make gets filtered through what keeps designers happy and renewing subscriptions. Unless something changes drastically, their code layer will always be optimized for what makes sense for designers, because that's where their revenue lives.&lt;/p&gt;

&lt;p&gt;This isn't a criticism of Figma as a company. It's what it means for a design tool to own code. The thing that matters to the people paying Figma is the design output.&lt;/p&gt;

&lt;p&gt;For Figma, code is a &lt;em&gt;design&lt;/em&gt; feature. A better GitHub integration doesn't change that.&lt;/p&gt;




&lt;p&gt;The problem isn't that Figma uses AI to generate code. I use AI to generate code. But there's a difference in how that generation gets used. When I work with Claude, I'm providing the context: the standards, the component library, the patterns, the constraints we've established. I'm also reviewing what comes out with full knowledge of the system it needs to fit into. &lt;/p&gt;

&lt;p&gt;The judgment isn't in the tool. It's still with me. The tool extends my capacity, but it doesn't replace my understanding.&lt;/p&gt;

&lt;p&gt;Figma would say that's the problem. That working with Claude is isolated, happening in a separate chat, disconnected from the rest of the team. They're not wrong about that, but moving that work into a design-optimized canvas isn't the answer either.&lt;/p&gt;

&lt;p&gt;Figma's code layer is designed for people who don't have that system context and, in many cases, aren't expected to.&lt;/p&gt;

&lt;p&gt;A designer generating a prototype.&lt;br&gt;
A junior engineer under deadline pressure.&lt;br&gt;
A small team without dedicated front-end.&lt;/p&gt;

&lt;p&gt;The generated code goes through fewer hands that know what to look for. The gap between what got generated and what belongs in the codebase doesn't get caught because the person in the loop wasn't positioned to see it.&lt;/p&gt;

&lt;p&gt;That's the distinction.&lt;br&gt;
It's not inherently AI-generated code vs. real code.&lt;br&gt;
It's context-aware generation reviewed by someone with system knowledge vs. context-free generation reviewed by someone who may not have it.&lt;/p&gt;

&lt;p&gt;One produces artifacts your team owns.&lt;br&gt;
The other produces things someone has to reverse-engineer into your system before they're usable.&lt;/p&gt;




&lt;p&gt;Imagine the reverse. Leadership proposes letting engineers use one of the many AI tools that generates designs from a component description. You describe the behavior and the tool produces the layout. The type hierarchy. The interaction states.&lt;/p&gt;

&lt;p&gt;Designers would push back immediately. They'd be right to. That tool isn't doing the research. It isn't running the user tests. It isn't making the hundred small decisions that make something actually work for the people using it.&lt;/p&gt;

&lt;p&gt;It's producing an output from a description, and calling it a design.&lt;/p&gt;

&lt;p&gt;A generated design isn't a &lt;em&gt;designed&lt;/em&gt; thing.&lt;/p&gt;

&lt;p&gt;Production implementation isn't just code that renders. It's accessibility decisions. Edge case handling. Performance tradeoffs. Integration with the actual system. Test coverage.&lt;/p&gt;

&lt;p&gt;A Figma-generated component that looks finished will get shipped by someone who thinks it is, and the team that inherits it finds out what's missing the hard way.&lt;/p&gt;

&lt;p&gt;Designers have spent years making that argument about their own work. They understand what "production-ready" means in their domain and won't let someone blur that line.&lt;/p&gt;

&lt;p&gt;That's the argument we need to get better at making about ours.&lt;/p&gt;




&lt;p&gt;The right answer to the collaboration problem isn't a faster handoff. It's less of a handoff.&lt;/p&gt;

&lt;p&gt;On our team, we've been pushing for working sessions: designer talks through intent, engineer works through the code in real time, both people in the room instead of a relay race across a feedback loop. The output is something both people understand because both people were together when decisions got made.&lt;/p&gt;

&lt;p&gt;Nobody inherits a component that looks done and isn't.&lt;/p&gt;

&lt;p&gt;When both people are making decisions collaboratively, both are more invested in the outcome. That changes what gets built and how carefully it gets built.&lt;/p&gt;

&lt;p&gt;Yes, it's scheduling-dependent. It's slower to set up. It requires both disciplines to treat each other's constraints as real.&lt;/p&gt;

&lt;p&gt;Even so, that's the workflow I'm building toward. The back-and-forth it eliminates shows up faster than you'd expect. So does the cost of the alternative.&lt;/p&gt;

&lt;p&gt;The canvas doesn't close the context gap. The conversation does.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>webdev</category>
      <category>design</category>
      <category>figma</category>
    </item>
    <item>
      <title>Nobody defends code reviews at 11pm</title>
      <dc:creator>Jeremy Andrews</dc:creator>
      <pubDate>Tue, 09 Jun 2026 19:38:01 +0000</pubDate>
      <link>https://dev.to/jandrewsnc/nobody-defends-code-reviews-at-11pm-a65</link>
      <guid>https://dev.to/jandrewsnc/nobody-defends-code-reviews-at-11pm-a65</guid>
      <description>&lt;p&gt;&lt;em&gt;"How could you let this happen?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I've been in that conversation. On both sides of it, at different points.&lt;br&gt;
It's a versatile question.&lt;/p&gt;

&lt;p&gt;The first time I heard it from above, we'd shipped something that shouldn't have shipped in the state it was in. Bugs that a proper code review would have caught. QA that got compressed in the final days because another part of the project ran late and the deadline didn't move.&lt;/p&gt;

&lt;p&gt;Nobody decided to skip code review. Nobody said "let's just ship it broken." What happened was simpler and more predictable: the deadline was fixed, the timeline snowballed, and the back of the chain got squeezed. Code review and QA are always at the back of the chain. When time runs out, they're where the time comes from.&lt;/p&gt;

&lt;p&gt;Everyone agreed at the start of the project that they mattered. Someone always raises it at the end, too. They're not wrong, but the deadline is rarely swayed by a good point.&lt;/p&gt;



&lt;p&gt;I've done the same thing in how I talk about work. For a while, I praised speed without understanding what was being traded to get it. "You turned that around fast." Said with genuine appreciation. Received as instructions.&lt;/p&gt;

&lt;p&gt;When I realized it, I tried to correct it.&lt;br&gt;
Refused to let reviews be where the time came from.&lt;br&gt;
Ensured they stayed in the planning estimate.&lt;br&gt;
Made them a line item, not an afterthought.&lt;/p&gt;

&lt;p&gt;It held until the next hard deadline, which arrived on schedule. Then the timeline snowballed again, for reasons that had nothing to do with code review, and the question was: what do we compress?&lt;/p&gt;

&lt;p&gt;Same answer as always.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5n64saz8dt6yry7lzc4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5n64saz8dt6yry7lzc4.gif" alt="Pedro Pascal makes exaggerated crying and laughing faces, a popular meme reaction." width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Engineers respond to incentives. We already know what happens when quality controls live at the end of a compressed schedule: they get cut. Critical thinking is increasingly vulnerable to the same pressure.&lt;/p&gt;

&lt;p&gt;I know, because I've been the person setting those incentives. I didn't mean to. I praised speed.&lt;/p&gt;

&lt;p&gt;Timelines were slipping long before anyone knew what a token was, but AI has made the path of least resistance feel productive. When you can offload work and still hit the deadline, it's genuinely hard to argue against in the moment. Especially when the alternative is staying late, losing the argument, and watching the code review get cut at 11pm anyway.&lt;/p&gt;

&lt;p&gt;The obvious fix is to hand the review to AI.&lt;br&gt;
Faster than a human.&lt;br&gt;
No one has to stay late.&lt;br&gt;
The process &lt;em&gt;technically&lt;/em&gt; still happens.&lt;/p&gt;

&lt;p&gt;Except AI reviewing AI-generated code means nobody has actually looked at it. The thing that slips through under pressure isn't always a syntax error. Sometimes it's the change that broke an assumption nobody documented.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  The path of least resistance isn't laziness. It's what you get when you've asked people to be excellent under conditions designed to prevent it.
&lt;/div&gt;


&lt;p&gt;Speed pressure keeps building.&lt;br&gt;
People get more depleted.&lt;br&gt;
Exhaustion makes the easiest options more attractive.&lt;br&gt;
The easiest options still hit the deadline.&lt;br&gt;
Speed gets praised.&lt;/p&gt;

&lt;p&gt;The loop runs itself, quietly, while everyone's still arguing about who let this happen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ha716ori8twvp87lod4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ha716ori8twvp87lod4.gif" alt="Michael Scott, Dwight Schrute, and Andy Bernard engage in a hilarious finger gun Mexican Standoff in The Office." width="640" height="272"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;One of the fixes I keep coming back to isn't structural.&lt;br&gt;
Protected reviews.&lt;br&gt;
Line items in the estimate.&lt;br&gt;
I've tried those.&lt;br&gt;
They tend to last until the next deadline, which is to say they don't last.&lt;/p&gt;

&lt;p&gt;What I think actually sticks is what gets named. I'm not talking about a process doc. When someone pushes back on a compressed timeline and catches the thing that would have shipped broken, that has to come up in the next 1:1. It needs to be praised and I have to be the one to tell that story.&lt;/p&gt;

&lt;p&gt;Process follows incentives. It's never the other way around.&lt;/p&gt;




&lt;p&gt;What interests me isn't whether people are making bad choices.&lt;/p&gt;

&lt;p&gt;They're humans. I know they are.&lt;/p&gt;

&lt;p&gt;It's that the system reliably produces the outcome it claims not to want.&lt;/p&gt;

&lt;p&gt;Everyone agrees code review matters... until the deadline, at which point it becomes a philosophical position.&lt;/p&gt;

&lt;p&gt;Everyone agrees judgment can't be outsourced... until the velocity report.&lt;/p&gt;

&lt;p&gt;And when something breaks, someone inevitably asks the question.&lt;/p&gt;

</description>
      <category>codereview</category>
      <category>softwareengineering</category>
      <category>leadership</category>
      <category>discuss</category>
    </item>
    <item>
      <title>The mercy of hard things</title>
      <dc:creator>Jeremy Andrews</dc:creator>
      <pubDate>Mon, 08 Jun 2026 01:27:10 +0000</pubDate>
      <link>https://dev.to/jandrewsnc/the-mercy-of-hard-things-46f2</link>
      <guid>https://dev.to/jandrewsnc/the-mercy-of-hard-things-46f2</guid>
      <description>&lt;p&gt;The other day I watched an engineer spend three days on a piece of the codebase nobody had touched in two years.&lt;/p&gt;

&lt;p&gt;Should've been a four hour fix, except...&lt;br&gt;
The senior who built it was gone.&lt;br&gt;
The documentation was sparse.&lt;br&gt;
The code only made sense if you'd been in the room when the decisions were made.&lt;/p&gt;

&lt;p&gt;They could've asked me to rewrite it. I would have.&lt;/p&gt;

&lt;p&gt;Instead they sat with it.&lt;br&gt;
Read through the git history.&lt;br&gt;
Traced the logic forward and backward.&lt;br&gt;
Built a mental model of why each piece was there.&lt;/p&gt;

&lt;p&gt;By the end, they didn't just fix the bug. They understood the system.&lt;/p&gt;



&lt;p&gt;I asked them why they didn't escalate it.&lt;/p&gt;

&lt;p&gt;"I needed to know how this worked," they said. "If I'd just had you fix it, I wouldn't know."&lt;/p&gt;

&lt;p&gt;I checked in twice that week. Both times they were still in the thick of it. I had a deadline breathing down my neck and a fix I could've written before lunch.&lt;/p&gt;

&lt;p&gt;I'm not going to pretend it was easy to watch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.klipy.com%2Fii%2Fd7aec6f6f171607374b2065c836f92f4%2Fd2%2Fae%2FmVu56mKZ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.klipy.com%2Fii%2Fd7aec6f6f171607374b2065c836f92f4%2Fd2%2Fae%2FmVu56mKZ.gif" alt="Judge Judy Sheindlin emphatically points and gestures, urging someone to hurry up in her courtroom." width="498" height="373"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;That three-day tax on understanding used to be everywhere in engineering. It still is, but it's getting rarer and we're &lt;em&gt;very&lt;/em&gt; proud of that.&lt;/p&gt;

&lt;p&gt;The logic is tempting. Why spend three days when AI could spend three minutes? Why put junior engineers through the pain of understanding when they could generate a fix instantly? Why not move faster?&lt;/p&gt;

&lt;p&gt;Three minutes gets you a fix. Three days gets you something else.&lt;/p&gt;

&lt;p&gt;Systems have shapes.&lt;br&gt;
Those shapes have reasons.&lt;br&gt;
Understanding the reason is the &lt;em&gt;actual&lt;/em&gt; work.&lt;/p&gt;

&lt;p&gt;That's the thing that separates someone who can patch code from someone who can steward it. I've been both, sometimes in the same week.&lt;/p&gt;

&lt;p&gt;Those three days weren't a gift I was giving them by staying out of the way. They were the part of the job that was changing my developer.&lt;/p&gt;



&lt;p&gt;There's an argument going around that if you have an idea and Claude can build it, you have no excuse for not shipping. That's true, as far as it goes.&lt;/p&gt;

&lt;p&gt;But the grind isn't dead weight. It's a filter. The person with a vague idea about "an AI agent for our workflow" and the person who's traced where the data goes and what breaks when the API times out are not the same person.&lt;/p&gt;

&lt;p&gt;It used to be obvious before anything shipped, because nothing shipped until you'd earned it. That felt like a feature at the time, but mostly it was called a blocker.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  AI isn't making excellence easy.&lt;br&gt;
It's making adequacy cheap.
&lt;/div&gt;


&lt;p&gt;That's a different crisis than anyone's talking about.&lt;/p&gt;




&lt;p&gt;When execution was hard, you had to believe in the thing before you built it.&lt;br&gt;
You had to think through the architecture.&lt;br&gt;
You had to anticipate problems because debugging would be expensive.&lt;br&gt;
You had to write documentation because the code would outlive your memory.&lt;/p&gt;

&lt;p&gt;These weren't best practices.&lt;br&gt;
They were necessities.&lt;br&gt;
Having no shortcut made them automatic.&lt;/p&gt;

&lt;p&gt;I complained about this at the time. The week of planning before writing a line of code felt like overhead. It wasn't.&lt;/p&gt;

&lt;p&gt;Now you can spin up a system in an afternoon that would've taken weeks, held together with prompt engineering and middleware and a lot of hoping nothing breaks in production.&lt;/p&gt;

&lt;p&gt;Not because you're lazy. Because you can.&lt;br&gt;
Because nothing forces the hard architectural thinking upfront.&lt;/p&gt;

&lt;p&gt;I've done it. Shipped a workflow last month that I couldn't fully explain if someone asked me to trace a failure through it.&lt;/p&gt;

&lt;p&gt;It worked.&lt;br&gt;
The demo was clean.&lt;br&gt;
The tests passed.&lt;br&gt;
I moved on.&lt;/p&gt;

&lt;p&gt;This wasn't a failure of AI. It was a failure of understanding. &lt;em&gt;My&lt;/em&gt; failure.&lt;/p&gt;

&lt;p&gt;Once you fully understand how a system works, AI becomes a force multiplier. It can write the documentation you should have written. It can turn tribal knowledge into markdown. It can help build the skills and guardrails that make the next engineer productive faster.&lt;/p&gt;

&lt;p&gt;But those tools only become predictable once someone has done the hard work of building the mental model first, then translating it into something the system can reliably use.&lt;/p&gt;

&lt;p&gt;That's the work AI can't replace. It can describe what it sees and preserve what we understand, but it can't verify whether that understanding is real.&lt;/p&gt;

&lt;p&gt;That's the part that should worry me more than whether the engineer took three days.&lt;/p&gt;




&lt;p&gt;The engineer could've used AI on day one. For the fix itself, they probably should have. They didn't, at least not until they understood what they were looking at.&lt;/p&gt;

&lt;p&gt;I told them as much after the fact. They nodded, then asked if they could walk me through what they'd found. They were excited about it.&lt;/p&gt;

&lt;p&gt;We were on a call five minutes later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.tenor.com%2Fm%2FLPY0iihi9JYAAAAd%2Fkazuma-kiryu-kiryu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia1.tenor.com%2Fm%2FLPY0iihi9JYAAAAd%2Fkazuma-kiryu-kiryu.gif" alt="Kazuma Kiryu from the Like a Dragon series picking up a phone, with the text 'hop on voice chat' at the top" width="600" height="456"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This is the mercy of hard things.&lt;br&gt;
AI didn't create this moment. It just made the choice visible.&lt;/p&gt;

&lt;p&gt;Three minutes could have built a solution.&lt;br&gt;
Three days built an engineer.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>softwareengineering</category>
      <category>ai</category>
      <category>leadership</category>
    </item>
    <item>
      <title>When the right answer is a smaller project</title>
      <dc:creator>Jeremy Andrews</dc:creator>
      <pubDate>Sun, 07 Jun 2026 21:20:36 +0000</pubDate>
      <link>https://dev.to/jandrewsnc/when-the-right-answer-is-a-smaller-project-4g4k</link>
      <guid>https://dev.to/jandrewsnc/when-the-right-answer-is-a-smaller-project-4g4k</guid>
      <description>&lt;p&gt;&lt;em&gt;"I'd hate for us to throw the experience away when we just spent so much time and effort building it."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I heard that sentence a week after the data came in on a project we'd spent six months building. We still hadn't fully processed what the numbers meant yet.&lt;/p&gt;

&lt;p&gt;I recognized it immediately. Not because it's inherently wrong, but because I've said versions of it myself over the years.&lt;/p&gt;




&lt;p&gt;We set out to build a personalized recap landing page for a big annual conference. The kind of thing that felt like the event actually remembered you were there. Which sessions you attended. Which topics kept pulling you back. A tailored summary of your individual event experience.&lt;/p&gt;

&lt;p&gt;Real engineering ambition.&lt;br&gt;
Real design work.&lt;br&gt;
Six months from a team that cared about getting it right.&lt;/p&gt;

&lt;p&gt;But somewhere along the way, the API access we needed to do it right fell through.&lt;/p&gt;



&lt;p&gt;No individual user data meant we couldn't actually personalize based on your unique experience. So we pivoted to segmentation: figure out which session topics someone attended most, assign them a persona.&lt;/p&gt;

&lt;p&gt;You attended a lot of AI sessions? You're an AI Persona. Here's your badge.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.klipy.com%2Fii%2F39f2394ae36df6e199be9eb7c9fa1012%2F13%2F3c%2FZ2z4Ui4C.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.klipy.com%2Fii%2F39f2394ae36df6e199be9eb7c9fa1012%2F13%2F3c%2FZ2z4Ui4C.gif" alt="Comedian Kenny Sebastian questions the meaning of a 'Certificate of Participation' during his stand-up special." width="498" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In fairness, the badge was accurate. The segmentation worked. The problem was that accurately telling people something they already knew about themselves was not exactly the vision we'd pitched six months earlier.&lt;/p&gt;

&lt;p&gt;The original idea kept getting diluted. We shipped it anyway. Given where we were, that was the right call.&lt;/p&gt;



&lt;p&gt;The data came back thin.&lt;/p&gt;

&lt;p&gt;Not zero. Not embarrassing. Thin enough to tell you something honest about how many people in that audience actually wanted this kind of experience.&lt;/p&gt;

&lt;p&gt;That's a finding about appetite, not execution. The API falling through hurt the product, but I don't think it changed the fundamental signal.&lt;/p&gt;

&lt;p&gt;I was still sitting with those numbers when the first conversations about next year started, and that's when I heard the sentence.&lt;/p&gt;

&lt;p&gt;I understood the instinct completely. Six months of genuine effort from real people. Treating that as sunk cost and moving on feels like dismissing the work (and the people who did it).&lt;/p&gt;

&lt;p&gt;But I kept turning it over. And eventually I landed on what was bothering me: the six months are already gone. We can't un-spend them. The question the data is actually answering isn't whether to throw the work away. It's what size of opportunity we were building for.&lt;/p&gt;

&lt;p&gt;Thin numbers have a pretty clear answer to that question.&lt;/p&gt;



&lt;p&gt;That context changes the next planning conversation significantly. Or at least it should.&lt;/p&gt;

&lt;p&gt;It doesn't mean we do nothing next year. It means we need to ask seriously: what does this opportunity actually warrant?&lt;/p&gt;

&lt;p&gt;Because there's a version of this project that takes two weeks. A lighter integration. Simpler segmentation. Something that ships fast and still tells you everything the six-month version told you, except you get nearly half a year back to spend somewhere else.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  When the data tells you the opportunity is smaller than the investment, the answer probably isn't "let's just build it better."
&lt;/div&gt;


&lt;p&gt;Sometimes it's: right-size the project to match what we know.&lt;/p&gt;




&lt;p&gt;The tricky part is that sunk cost reasoning almost never announces itself as sunk cost reasoning.&lt;/p&gt;

&lt;p&gt;It announces itself as loyalty. As not wanting to waste good work. As giving a team's effort the respect it deserves.&lt;/p&gt;

&lt;p&gt;These are real and reasonable feelings. They belong somewhere in the conversation.&lt;/p&gt;

&lt;p&gt;They're just not planning criteria.&lt;/p&gt;

&lt;p&gt;What six months of work actually produced was a finding: this opportunity is smaller than we thought going in. The smart move is to let that finding shape the next decision, not work around it because it's uncomfortable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.klipy.com%2Fii%2Fda290b156d64898341638f3c299e7478%2F8b%2F38%2F1qpeep8o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.klipy.com%2Fii%2Fda290b156d64898341638f3c299e7478%2F8b%2F38%2F1qpeep8o.gif" alt="A man struggles to move a couch up a staircase, repeatedly shouting 'Pivot!'" width="480" height="400"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Have you been in a room where the data pointed one direction and the planning cycle went another?&lt;/p&gt;

&lt;p&gt;I'm curious whether right-sizing ever actually won, or whether the room kept reaching for the six-month vision because walking away from the experience felt worse than ignoring the data.&lt;/p&gt;

&lt;p&gt;Share your experiences below!&lt;/p&gt;




</description>
      <category>discuss</category>
      <category>learning</category>
      <category>productivity</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Notes from a hammock</title>
      <dc:creator>Jeremy Andrews</dc:creator>
      <pubDate>Sat, 23 May 2026 02:55:33 +0000</pubDate>
      <link>https://dev.to/jandrewsnc/notes-from-a-hammock-5c5</link>
      <guid>https://dev.to/jandrewsnc/notes-from-a-hammock-5c5</guid>
      <description>&lt;p&gt;I am writing this from a hammock.&lt;/p&gt;

&lt;p&gt;Not metaphorically. I've been spending more and more of my time away from screens, trying to remember what thinking feels like without a notification interrupting every four minutes. I have a Remarkable tablet now. E-ink, no Chrome tabs, no Slack unread count haunting me from my peripheral vision. I read on it. I take notes on it. It is, embarrassingly, one of the better decisions I've made in the last few years.&lt;/p&gt;

&lt;p&gt;This writing started there. Not as any sort of content strategy, but as a quiet place to muse.&lt;/p&gt;

&lt;p&gt;I have a sociology and psychology background that I use every single day, which often surprises people to learn since I'm an engineering manager. The path wasn't linear. I graduated into a bare job market, picked up where I left off the previous summers at the NC Department of Transportation, doing everything from data entry to assisting with fatal crash investigations (you know, normal job stuff).&lt;/p&gt;

&lt;p&gt;I eventually ran into an old friend at a poker game, someone I hadn't seen in years, who needed someone he could trust on a two-man dev team after his partner abruptly left the company. That conversation landed me at an agency for nearly a decade doing website optimization, A/B testing, and personalization. Which is, when you think about it, the applied science of understanding how humans make decisions and designing systems that help people get where they're trying to go.&lt;/p&gt;

&lt;p&gt;The sociology degree wasn't a detour. It was the whole point.&lt;/p&gt;

&lt;p&gt;Now I manage a development team and spend a meaningful portion of my days watching the AI conversation unfold, feeling a specific kind of unease I've been trying to articulate. Here's my best attempt.&lt;/p&gt;

&lt;p&gt;Judgment is a muscle. A functional capacity that gets stronger the more you use it and weaker the more you outsource it. Psychologists call this cognitive offloading: the habit of shifting thinking onto external tools. The research shows it doesn't just change what we do, it changes how we approach problems even when the tool isn't there.&lt;/p&gt;

&lt;p&gt;When people repeatedly have decisions made for them, they gradually stop trusting their own judgment. Not because they become less capable, but because the loop gets interrupted: making the call, sitting with uncertainty, being wrong and recalibrating. The muscle doesn't disappear overnight. It quietly becomes less reliable, and eventually you stop reaching for it even when you could.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftf1y0zxzpxt4hy4weer0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftf1y0zxzpxt4hy4weer0.png" alt="Screenshot of a social media post. Matt Novak quotes Steph Smith's post and comments, “AI folks have now discovered ‘thinking’.” The quoted post from Steph Smith reads: “Sometimes in the process of writing a good enough prompt for ChatGPT, I end up solving my own problem, without even needing to submit it.”" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;We've already run a version of this experiment. We handed our attention spans to engagement algorithms for fifteen years and then wondered why it became harder to sit with a complex idea. The systems weren't designed to destroy depth. They were designed to maximize engagement, and it turned out that depth was friction, so the systems smoothed it out. The result isn't that people became lazier or less intelligent. It's that the environment stopped requiring them to sustain attention, so sustaining attention got harder.&lt;/p&gt;

&lt;p&gt;AI is a different technology with a different purpose, but the dynamic is worth taking seriously. Every time someone outsources a judgment call they were perfectly capable of making, about tone, about approach, about whether something is actually a good idea, that capacity gets just a little smaller.&lt;/p&gt;

&lt;p&gt;One call doesn't matter. Millions of calls, across a workforce, over a decade, and you haven't built a more efficient society. You've built one that is very good at reviewing AI outputs and not much else. Which is, coincidentally, a workforce that is significantly easier to manage, to commoditize, and to eventually replace.&lt;/p&gt;

&lt;p&gt;I'm not anti-AI. I'm building agentic systems right now, and I think the version of this future where machines absorb the tedious, grinding work and people get their time back for things that actually matter is real and worth building toward. That future requires deliberate thinking about which judgment calls we hand off and which ones we protect.&lt;/p&gt;

&lt;p&gt;Right now that deliberateness is mostly absent from the conversation. The race is to automate. The question of what we're training people out of along the way tends to get scheduled for a later meeting that never happens.&lt;/p&gt;

&lt;p&gt;So that's what this is. A place to read carefully, think slowly, say the uncomfortable thing without dressing it up, and openly ask what we're actually optimizing for and who pays when the optimization is wrong.&lt;/p&gt;

&lt;p&gt;The hammock helps. Sometimes the best thinking happens when the machine isn't in the room.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>discuss</category>
      <category>psychology</category>
      <category>society</category>
    </item>
  </channel>
</rss>
