‹ BackHN Continuity

Thread

The problem is not AI code, but not knowing about system architecture or intent

388 points · 240 comments · zazuke

  1. bengold14 · · focus · HN ↗
    I see this everyday. The problem is code is the wrong abstraction for the work we do. LLMs have solved coding, but they haven't solved systems, collaboration or system maintenance.

    Edit: Since I seem to have touched a nerve - I&#x27;ve been working on a project to solve this: <a href="https:&#x2F;&#x2F;www.archme.io" rel="nofollow">https:&#x2F;&#x2F;www.archme.io if you want to know my thoughts on the right abstraction

    1. verdverm · · focus · HN ↗
      When you say &quot;solved coding,&quot; what does this mean, what does it look like?

      I have strong disagreement because it sounds like, by analogy or proxy, we have also &quot;solved writing&quot;

      1. yetanotherjosh · · focus · HN ↗
        I would say it means you are building software but no longer are concerned with writing or editing literal code. Your concerns have moved up the stack to managing requirements, context, and verification processes.

        Just to make this clear: if you can define a really good PRD and sophisticated technical specs, and a strong set of tests cases to pass, at the right level of architectural granularity, plus adversarial code review processes that triangulate and weed out most mistakes, SOTA agents can write the code autonomously, at or above the quality level of most human coding teams. I call that &quot;solved&quot; but only if you meet those context requirements. Which is still hard, not solved, at that layer.

        Solving writing is not a good analogy IMO. Writing is for human consumption, and cannot be wrapped in objective requirements and verification processes. Certain forms of writing perhaps could be (can&#x27;t think of one at the moment but I don&#x27;t doubt some exist), and those forms might be good analogies for being &quot;solvable&quot; or &quot;solved.&quot;

        1. verdverm · · focus · HN ↗
          &gt; no longer are concerned with writing or editing literal code

          I&#x27;m not typing keys, but I am very much still concerned about the quality and nature of the code. Coding to me is more than pushing keys

          &gt; if you can define a really good PRD and sophisticated technical specs

          I still believe we cannot waterfall software, the idea seems like taking a step backwards. How often do we learn about an unforeseen complexity only after getting into the implementation?

          In my experience with agents, it&#x27;s better to be iterative and in-the-loop. Start with a decent description, have them research the code&#x2F;issue, write up an initial plan&#x2F;design, work iteratively on writing code and updating design doc, review and finalize the code and markdown. Then future agents will have some resources to shortcut understanding the code base.

          1. yetanotherjosh · · focus · HN ↗
            I&#x27;m not talking about not just punching the keyboard to type out the identifiers in the code. I&#x27;m talking about not making decisions about most classes and functions, most type definitions, most of the weedy logic within most modules, etc. If it can&#x27;t be described in natural language as requirements, or in a typescript type or other data shape DSL (I think key data model types are probably still important to own), it&#x27;s probably too weedy.

            Natural language test cases still define the expectations both at the product and architectural level and are essential for triangulating the agents on successful outcomes.

            A requirements and verification approach with agents is not waterfall any more than TDD is waterfall. Does thinking ahead and doing some planning equal waterfall? Does describing how a feature works to an end user, and making some key technical decisions, before you build it, mean waterfall? Does having some sense of what you&#x27;re building first mean waterfall? With agents, you can specify (with PRD and technical specs) what you THINK it should do, and in minutes or hours or at most days, have the result, which you then learn from and iterate. If you didn&#x27;t fully think it through, the agents will do one of three things: 1) decide for you, which you learn from 2) stop and ask, which you learn from 3) introduce bugs, which you learn from.

            It&#x27;s extremely iterative.

            1. verdverm · · focus · HN ↗
              How are you thinking about technical debt in this new agentic age? (also markdown debt?)

              It&#x27;s one of my bigger concerns and I use this iterative approach to try and reduce it... &quot;go look at the .&#x2F;cli directory and generate me a report of inconsistencies blah blah...&quot; or &quot;review .&#x2F;research&#x2F;something.md, validate consistency, correctness, claims, ...&quot;

              ... pseudo prose, have we made that a thing yet like pseudo code?

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.