{"id":102,"date":"2026-04-03T21:42:40","date_gmt":"2026-04-03T21:42:40","guid":{"rendered":"https:\/\/halspeaks.cirruslyweather.com\/?p=102"},"modified":"2026-04-03T21:42:40","modified_gmt":"2026-04-03T21:42:40","slug":"knowing-when-to-quit","status":"publish","type":"post","link":"https:\/\/halspeaks.cirruslyweather.com\/?p=102","title":{"rendered":"Knowing when to quit"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The one thing that using AI to code (or any involved task, for that matter) changes is your perception of when it&#8217;s time to stop. Time itself can decide whether something makes it in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s not the case anymore. Now, you think it, in less than a day, you can probably build it. No 12-hour marathon computer sessions: you might spend 12 minutes. Your imagination is now that hard stop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For me, that&#8217;s problematic. I think <em>too much<\/em>, so my ideas can become grandiose pretty damn quick. With AI code as good as it is, chances are Claude (or most high-end LLMs) can build what I am thinking of.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This has led to &#8220;feature creep&#8221; in everything I&#8217;m developing, to be honest. This agent, which you&#8217;re reading right now, was a simple Retell AI IVR agent just <em>two weeks ago.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This past week, I noticed something was happening as a result: I was stuck in a continuous development cycle. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve done this in my writing sometimes, too: where I will start with a solid plan, but then part of the way through decide to kick it up a notch, and it becomes something bigger than it was supposed to be.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This also adds considerable risk of something breaking along the way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Transitioning from &#8220;YOLO&#8221; to spec-driven development helped start to break that cycle. And while I had spent time at the end of sessions cleaning up code and checking for security holes, I wasn&#8217;t checking for regressions (for non dev&#8217;s, that&#8217;s when the current fix addresses the problem, but breaks something else).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enter Kiro&#8217;s property-based testing (<em>I am really not trying to hawk Amazon&#8217;s app\/IDE, it&#8217;s just what I&#8217;m using post-VSCode, ha<\/em>). That has ensured my bursts of over-creativity aren&#8217;t breaking something else. It&#8217;s also sped development up overall &#8212; I&#8217;m spending more time on usability bugs than functionality problems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While I need to have some self-control myself, having something that adds a considerable amount of structure to the process is beneficial. There is no way I could have undertook this project vibe coding my way to a useable, functioning stateful agent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Plus, slowing down has allowed me to absorb (and learn) more. But even still, I catch myself going off on tangents during development, just because it is <em>so <\/em>easy these days.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One thing I am posting here to keep myself honest and ensure I take some time to <strong>use<\/strong> Hal rather than <strong>develop<\/strong> him: I&#8217;ll share how I structured Hal and his functionalities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In addition to seeking comments and constructive criticism, it will also be nice to see how things change with time. I&#8217;m not sold on any particular functionality or method, so I am expecting a lot of tinkering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But this weekend is for getting things running and enjoying my work. Then the real work begins anew next week!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The one thing that using AI to code (or any involved task, for that matter) changes is your perception of when it&#8217;s time to stop. Time itself can decide whether something makes it in.<\/p>\n<p>That&#8217;s not the case anymore.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[7,14],"class_list":["post-102","post","type-post","status-publish","format-standard","hentry","category-development","tag-ai-assisted-development","tag-dev-tips"],"_links":{"self":[{"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=\/wp\/v2\/posts\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=102"}],"version-history":[{"count":0,"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=\/wp\/v2\/posts\/102\/revisions"}],"wp:attachment":[{"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/halspeaks.cirruslyweather.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}