<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>http://okayfail.com/tags/llm/atom.xml</id>
  <link rel="alternate" type="text/html" href="http://okayfail.com/tags/llm.html"/>
  <link rel="self" type="application/atom+xml" href="http://okayfail.com/tags/llm/atom.xml"/>
  <title>okayfail.com (feed for #llm)</title>
  <updated>2026-08-11T00:00:00Z</updated>
  <author>
    <name>Filipa Mendonça-Vieira</name>
  </author>
  <entry>
    <id>http://okayfail.com/2026/what-do-we-do-when-we-read-the-code.html</id>
    <published>2026-08-11T00:00:00Z</published>
    <updated>2026-08-11T00:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://okayfail.com/2026/what-do-we-do-when-we-read-the-code.html"/>
    <title>What Do We Do When We Read The Code?</title>
    <content type="html">&lt;p data-sourcepos="1:1-1:210"&gt;Last Friday, I wasted over an hour arguing with an LLM. I was reviewing a pull request I asked it to generate, and realized that three of the tests it wrote were either not useful or literally could never fail.&lt;/p&gt;
&lt;p data-sourcepos="3:1-3:354"&gt;I hate reading tests. Reading tests is hard and boring, but I always try to read them carefully. They’re your guardrails. They don’t always do a good job of capturing the nature of the behaviour or feature that you’re trying to achieve, but at least they try to guarantee that things won’t change in unpredictable ways in the future without you noticing.&lt;/p&gt;
&lt;p data-sourcepos="5:1-5:368"&gt;They take time and effort to read, and eventually I realized these tests were useless.&lt;sup class="footnote-ref"&gt;&lt;a href="#fn-useless" id="fnref-useless" data-footnote-ref&gt;1&lt;/a&gt;&lt;/sup&gt; When I asked the LLM about it, it got bashful. Rather than reasoning about it like I had, it impressively wrote a mutation test to indeed show the test was useless, and then wasted more time trying to find ways to preserve the spirit of the tests, which I simply deleted.&lt;/p&gt;
&lt;p data-sourcepos="9:1-9:80"&gt;Afterwards, I sat back and thought about this interaction. What am I doing here?&lt;/p&gt;
&lt;p data-sourcepos="11:1-11:68"&gt;Am I really enhancing shareholder value by caring about these tests?&lt;/p&gt;
&lt;p data-sourcepos="13:1-13:247"&gt;Before, I could’ve said: oh, i’m training a junior to not make these mistakes – but that’s gone now, that doesn’t matter. These tests will be executed over and over again and so they’re a waste of electricity – but that’ll cost, what, pennies?&lt;/p&gt;
&lt;p data-sourcepos="15:1-15:123"&gt;To not care about these tests means not reading them. When I think about not reading code, I feel like two things are true:&lt;/p&gt;
&lt;ul data-sourcepos="16:1-22:0"&gt;
&lt;li data-sourcepos="16:1-18:53"&gt;
&lt;p data-sourcepos="16:3-16:200"&gt;When I ask myself, is there a world where I will NEVER read ANY of the code? I think the answer is no. I will always have to debug something, or derive a real understanding of what the app is doing.&lt;/p&gt;
&lt;p data-sourcepos="18:5-18:53"&gt;In the future, we will never read 0% of the code.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-sourcepos="19:1-22:0"&gt;
&lt;p data-sourcepos="19:3-19:185"&gt;However, we already live in a world where sometimes there is no point in reading some or most of the code.&lt;sup class="footnote-ref"&gt;&lt;a href="#fn-no-reading" id="fnref-no-reading" data-footnote-ref&gt;2&lt;/a&gt;&lt;/sup&gt; The proportion of code that’s not worth reading will only grow.&lt;/p&gt;
&lt;p data-sourcepos="21:5-21:56"&gt;In the future, we will never read 100% of the code.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-sourcepos="25:1-25:338"&gt;I’ve been adapting my workflow to LLMs. Today, I still spend a lot of time editing LLM output because when I publish a PR I feel like I should apply the same level of care and attention to details – the same level of… let’s say &lt;em&gt;professionalism&lt;/em&gt; – that I would’ve expected from a staff engineer a mere twelve months ago.&lt;sup class="footnote-ref"&gt;&lt;a href="#fn-certainly" id="fnref-certainly" data-footnote-ref&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p data-sourcepos="30:1-30:186"&gt;Yet, I feel a lot of pressure to stop reading code. There’s too much of it. We just don’t have any of the affordances, none of the tooling, and none of the culture has really caught up.&lt;/p&gt;
&lt;p data-sourcepos="32:1-32:229"&gt;I feel stuck between two extremes: I either try to hold on to my sense of professionalism and aesthetic sensibilities, or I go bug fuck nuts and hands off the wheel yolo agent swarm – and neither option seems sustainable to me.&lt;/p&gt;
&lt;p data-sourcepos="34:1-34:36"&gt;So, why do these empty tests matter?&lt;/p&gt;
&lt;p data-sourcepos="36:1-36:416"&gt;I have a metaphor that I keep coming back to. Back in the day, back when I got started in this industry, if you wanted a chair to sit on first you had to go down to the swamp and pick some reeds. Once you collected enough grass you then carefully weaved the chair into being. We used to spend a lot of time thinking about what kind of straw is best, and how to fold it properly, and how to make your wicker handsome.&lt;/p&gt;
&lt;p data-sourcepos="38:1-38:118"&gt;Since then, we’ve invented injection molding. Now, if you want a chair you carve a mold that gets filled with plastic.&lt;/p&gt;
&lt;p data-sourcepos="40:1-40:362"&gt;I feel like if we lean in to this shift – if we stop reading the code – we will still need to retain some kind of control over whatever the fuck is happening. Because… my job isn’t to prompt the machine, it’s to deliver business value.  So, how do I know that the slop is delivering business value – or we don’t break the existing value we already built?&lt;/p&gt;
&lt;p data-sourcepos="42:1-42:46"&gt;How do I keep the shape of the chair in sight?&lt;/p&gt;
&lt;p data-sourcepos="44:1-44:244"&gt;I’m starting to think about how I can stop worrying, and write more expressive and comprehensive end to end tests. I’m weary of confirming my pre-existing biases; I’ve always thought that one good integration test is worth a hundred unit tests.&lt;/p&gt;
&lt;p data-sourcepos="46:1-46:249"&gt;I feel like the question we need to be asking is “&lt;strong&gt;how do i retain control over the integrity of the business value we are delivering?&lt;/strong&gt;” because… if your codebase is littered with tests that don’t do anything, how do you know if something broke?&lt;/p&gt;
&lt;p data-sourcepos="48:1-48:48"&gt;You might not find out until your revenue drops.&lt;/p&gt;
&lt;section class="footnotes" data-footnotes&gt;
&lt;ol&gt;
&lt;li id="fn-useless"&gt;
&lt;p data-sourcepos="7:13-7:104"&gt;The only assertions made concerned the behaviour of the test mock, which would never change. &lt;a href="#fnref-useless" class="footnote-backref" data-footnote-backref aria-label="Back to content"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn-no-reading"&gt;
&lt;p data-sourcepos="23:16-23:318"&gt;A friend told me “I don’t review front-end code anymore”. He was never a React-ninja to begin with, and you refresh the page and it either looks right or it’s wrong. In some domains, it’s very easy and quick and cheap to see if the app is working – or your audience has a high tolerance for flakiness. &lt;a href="#fnref-no-reading" class="footnote-backref" data-footnote-backref aria-label="Back to content"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn-certainly"&gt;
&lt;p data-sourcepos="28:16-28:99"&gt;Certainly, none of my company’s policies wrt code quality, review, etc have changed. &lt;a href="#fnref-certainly" class="footnote-backref" data-footnote-backref aria-label="Back to content"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content>
  </entry>
</feed>
