Category: AI

  • The bridge was never written down

    AI is a building block. That was the argument in my last post. AI already helps my team in the ways you would expect. It helps us write code, draft plans, move work forward. Where it keeps coming up short is narrower and harder to name. It does not do the thing an experienced teammate does almost without thinking: surface the decision that matters and connect the dots, so someone lands on the right call instead of a defensible wrong one. That is the workflow I do not have an AI-native version of yet, and I am still working out what it looks like for my team.

    I spent last week at a conference, a full week away from my team. While I was gone, the kind of gap I have been trying to close opened up. A question came up whose answer meant connecting a few things that lived in separate places and had only ever been connected in one person’s head, which this time happened to be mine. The team is more than capable, and they worked through it. It just took longer, and some of it stayed open, because the reasoning that would have connected those things quickly was not written down anywhere. What stayed with me afterward was structural. The reasoning had no home other than a person, so the moment that person was out of reach, so was the reasoning. It could just as easily have been anyone else on the team. And I spent that same week in room after room where vendors and sponsors were each trying to build some version of the thing that would have kept that from happening. The word they all reached for was context.

    It came up so many times, from so many angles, that I started to suspect we were all using it to point at something none of us had defined.

    So this is not a finished thought. It is the closest I have gotten after a week of listening and a longer stretch of chewing on it, and I am still not sure it is right. But it is the most any of this has clicked for me so far, so I want to try writing it down.

    The person was the bridge

    For a while I assumed the problem was that AI lacked context, and that the job was to go get it more. That holds right up until you ask when the context went missing, and there is no good answer, because it never did.

    The individual systems, while not simple, exist already. The hard part was the reconciliation between them. Someone experienced holds the state of the code and the thread from three weeks ago and the decision nobody wrote down, all at once, and produces a judgment. That reconciliation was always the expensive part, always done partially, and it almost never got written down, because a person could get away with holding it. There was no cost to leaving it implicit. The person was the bridge.

    None of this is new. It is a tale as old as teamwork. Teams have always tried to get this reasoning out of people’s heads and into something the rest of us can use, through documentation and curation and pruning and the constant updating that keeps any of it true. That work is slow and expensive, and most teams undervalue it right up until it is missing. Mine is no different. We pay that tax by hand, imperfectly, because functioning without it is worse.

    What has changed is the urgency, because teamwork now includes agents. AI did not remove the person who did the reconciling. It ended our ability to leave that work implicit. An agent cannot do the intuitive, partial reconciliation someone does in a hallway conversation, and it will not quietly cover the gap the way a person did. So a gap that was always there, always a liability, suddenly has a cost attached to it, and you feel it at the scale of a team.

    This is the bus-factor problem, at the scale of a whole team. Every one of us is holding reasoning that someone else would need. When anyone is out for a week, there is knowledge in their head, about the design system, or an infrastructure choice, or how the analytics are wired, that the rest of us would have to piece back together. The reasoning that connects our systems of record has been living in people, and it has always been one departure away from gone. That was easy to look past while someone was there to reconstruct it live, on demand, for free. It gets harder to look past as teams push more decisions onto more people and more agents, because for any of that to work the connective reasoning has to leave the heads it lives in.

    What I want is a pit of success, so the right call is the easy one to fall into no matter who is or is not in the room that day.

    Everyone was building a different house

    Not every talk was about this. But context kept surfacing, and a striking number of the vendors and sponsors were each, in their own way, trying to fix some version of the same problem. Watching them not quite agree is what made me start pulling on the thread.

    One team argued the answer is a single company-wide wiki, grown rather than built, where every entry carries a human’s name and an agent proposes changes a person accepts. Another argued you should not curate a store at all, because stores go stale, and you should generate context on the fly from a graph over your live sources. Another argued that flat files fall apart under many hands, and that you need a temporal graph that keeps the provenance of every derived fact through every merge and revision. Another argued the whole reason coding agents work and knowledge-work agents flail is that code has a repo, a history, tests, and an undo button, and knowledge work has none of them.

    They sound like competitors. What I started to see instead was people building different houses for the same missing thing, each trying to find a place to keep the reasoning that used to live in a head. They looked like they were competing over context. Underneath, they were competing over where the bridge should live.

    The bridge is a record

    Here is the piece that made the rest click, at least for now. What we are missing is a record of the bridges: the reasoning that says why the code looks the way it does, why this account gets handled differently, why we stopped doing the thing we used to do. A bridge connects two systems of record, and the reasoning for why it connects them the way it does is content in its own right.

    Which means the bridge is a system of record too.

    I keep sitting on that, because it reorganizes how I see the whole problem. It is tempting to treat a bridge as plumbing between the real records. I think the bridge is a record. It gets built, which means someone had a reason. It can be inspected, which means the reason can be read. And it can fall down, which means that when one of the things it connects changes, the bridge might no longer hold, and someone has to know it was there in order to go check.

    Any one of us, looked at this way, is a walking set of bridges. Take any engineer on the team. Somewhere in our components a value is hard-coded instead of pulled from the token, and the code gives no hint why. The reason is a call they made months ago, tied to an accessibility decision that lives in a doc almost nobody opens. The same thing shows up everywhere once you start looking. A cache holds for thirty seconds because of a commitment that lives in a contract and never made it into the code. A service runs in one region and not another because of a data residency rule no one wants to relearn. An analytics event carries a specific meaning, and the definition that makes the dashboards trustworthy lives in one person’s memory and nowhere else. In each case the bridge is the sentence connecting the two sides: this is done this way because of that, and if that changes this should be revisited. It exists in neither system. It exists in a person. When they are out, the bridge is out with them, unless somewhere along the way it became a record.

    Who builds the bridges

    If bridges are records, the next question is who writes them? And here the sharper instincts from the conference help. Nobody is going to hand-author the reasoning connecting their systems of record for the benefit of a future stranger. That has never happened and it will not start now. I am not going to either.

    But an agent can propose a bridge.

    It can look across the code and the thread and the ticket, derive a reasonable guess at why they connect, and put that guess in front of a person. The person ratifies it, corrects it, or throws it out. The correction gets captured, with a link back to where it came from, and it becomes a record the next developer and the next agent start from instead of rebuilding.

    I want to be careful here. The agent is not the verifier. It does not know whether the reasoning is right or the decision was sound. That judgment stays human. What an agent can do is derive, propose, and expose, so the reasoning stops dying in someone’s head or a closed session. The machine drafts the bridge. The person says whether it holds.

    It concentrates the hard problems, it does not solve them

    Here is the thing though. Making the bridge a record concentrates the hard problems rather than solving them, and it puts them somewhere I can point at. The bridge goes stale when either side changes. It needs provenance, or it turns into a confident claim with no way back to its justification. Someone has to verify that a proposed bridge holds, and that someone is a human, at a cadence I do not yet know how to scale. I am not going to pretend I have solved that here.

    Even so, locating the problem feels like progress. For as long as I called all of this context, the hard parts were smeared across a word that could mean almost anything, and I could not say where they lived. Naming the bridge as a record brings them into focus. Staleness bites on the bridge. Provenance is required on the bridge. Verification, the real kind, will have to happen on the bridge.

    Framing it this way also lets me stop treating retrieval and recency as separate problems. While the reasoning lives in a head, you cannot find it, you cannot tell whether it is current, and you cannot tell whether it is right. Those are symptoms of the same missing home. A record with an address and a version answers the first two almost by construction. What is left is keeping it honest, which is the expensive part, for the same reason verification is: someone has to judge.

    There is an obvious next question hiding in that ratify-and-correct loop, which is whether the system itself gets better at proposing bridges over time, instead of only accumulating better ones. That turns entirely on whether the correction signal can be trusted, which is harder than anything here, so I am leaving it alone for now. I raise it only so it is clear I can see it. The same goes for whether AI should be doing this reconciliation at all, and for how we ever confirm that ratified reasoning was sound. Those are their own questions.

    What I have, and what I don’t

    So this is where I am, for now. I think context was never the thing missing. It has been sitting in the records we already keep. The thing that lived only in people was the reasoning that bridges those records, and it was fine to leave it there right up until we asked something that was not a person to do the connecting.

    I think those bridges have to become records of their own, built by agents proposing and humans ratifying, so that when any one of us is out of reach, the reasoning is still there for the people and the agents who need it.

    I do have a hunch about where those records should live, and it points back to one of the houses I heard argued for. Of all of them, the wiki is the one I keep returning to, something richer than a pile of markdown files and still recognizably a wiki. I am not ready to make that case yet, so it is a piece for another day.

    What I do not have is what that workflow actually looks like. I have watched, up close and recently, what happens without it, and I know I do not want the fix to be a person quietly put back into the wrong part of the loop to do the reconciling by hand.. I know the outcome I want. I am still looking for the mechanism.

  • AI is not a tool

    Lately I have been paying attention to how people talk about working with AI. There is a phrase that keeps coming up, in conversations and on stages and in the updates companies send around. We are becoming an AI first team. We are going AI first. And whenever I hear it, I find myself wanting to ask the same follow up question. What does that actually look like on a Tuesday?

    The answer is usually some version of the same thing. Everyone has Claude in their editor now. We ship a little faster. Code review moves quicker. The boilerplate writes itself.

    All of that is real. Having AI in your editor genuinely makes you faster, and I am not interested in pretending otherwise. But the longer I sit with it, the more I think we are using one phrase to describe two very different things, and that the blur between them is holding us back.

    The line I keep looking for

    So I have been trying to find the line. What separates a team that has truly reorganized itself around AI from a team that has simply added AI to the way it already worked?

    Here is the question I keep coming back to, and it is almost embarrassingly simple.

    If you take the AI out of the workflow, does the workflow still make sense?

    When the answer is yes, you have an AI assisted workflow. The shape of the work is the same as it has always been. You are writing code the way you have always written code, and the AI is sitting next to you making each step smoother. Take it away and you are slower, maybe noticeably so, but nothing fundamental breaks. The recipe is unchanged. You just lost a fast pair of hands.

    When the answer is no, something more interesting is happening. The workflow does not have a slower version. Without the AI there is simply nothing there, because the AI was never sitting beside the work. It was holding part of it up.

    Where “tool” stops fitting

    That distinction took me a minute to see clearly, and once I did, I started to understand why so much of what gets called AI first is really AI assisted in nicer clothes. The cause, I think, lives in a word we use without examining it.

    We keep calling AI a tool.

    I understand the instinct. It arrives as software, you open it in a window, you type things into it. It feels like a tool. And the more I work with it, the less that word feels like the right mental model.

    I want to be careful here, because I do not mean this literally. A programming language is technically a tool too, if you want to be precise about it. But a language does not sit at the same layer as an IDE or a linter. You do not bring it to your work the way you bring an editor to your work. You build the work out of it. And that is the layer AI has started to occupy for me. Closer to a programming language than to an editor. A building block rather than a tool. It is one of the materials the work is made of, not one of the instruments I carry to work I have already designed. Tools get added to old workflows. Building blocks get built from.

    This is also why the subtraction question works the way it does. An AI assisted workflow degrades when you remove the AI, because the AI was an addition. An AI first workflow does something else. It reverts. It falls back to needing a person, because the thing the AI was doing was never a faster version of a human task. The capability had always existed before, but only through a person, only as a dependency on someone who already understood the system.

    A capability with no slower version

    This is easy to nod along with and hard to picture, so let’s talk through an example.

    Imagine someone on your team who cannot read the codebase. Maybe they work in marketing, or design, or operations. Maybe they do not even have access to the repository. They hit a question in the middle of their own work, the kind of question that has only ever had one answer: go find an engineer who knows, and wait. Now imagine they can ask that question directly, in plain language, and get an answer good enough to unblock them and keep moving.

    Sit with what happens to that workflow if you remove the AI. It does not get slower. It vanishes, and the old dependency slides back into its place. Go find an engineer. Wait. There was never a manual version of someone who cannot read code reading the code. The capability was made entirely of the model. That is what built from AI actually means.

    When intelligence stops being scarce

    When I first built something like that, I thought of it as a convenience. A way to spare engineers a few interruptions. But I have come to think the real change is sitting underneath the convenience, in something closer to economics.

    For as long as I have worked in software, one fact has shaped every workflow I have ever designed, usually without my noticing it was doing the shaping. Human attention is scarce and expensive. The person who understands the system is a bottleneck, so you build careful structures around protecting their time. You route questions to them. You queue work for them. You write documentation so people will interrupt them less. A surprising amount of what I once thought of as good process is, when I look at it honestly, a strategy for rationing a scarce supply of understanding.1

    What changes with AI is subtler than speed. A usable version of that understanding suddenly becomes abundant. Human attention is still scarce, still expensive, still the thing I would protect first. But synthetic attention, the kind that will answer a reasonable question about the codebase at two in the morning for the hundredth time without tiring or resenting it, is now cheap and plentiful. And once something that used to be scarce becomes abundant, every workflow you built to ration it is up for question.

    Holding the outcome, letting go of the path

    The part of this I am still learning to do well is what it asks of me as the person directing the work. When AI is a tool, I stay in charge of how. I decide the steps, and the tool carries them out. When AI is a building block, my job moves. I become responsible for holding the outcome and for being almost uncomfortably clear about what a good result actually is, and I hand off a great deal of the how.

    It is a little like the relationship between a tech lead and a developer on their team. You decide the goal, and you decide what done looks like. They work out the path to get there, and often they find a path you would not have chosen, and sometimes it is better. Your clarity about the destination ends up doing more work than your opinion about the route.

    I have been learning a version of this same lesson somewhere completely outside of AI. When you stop leading the work directly and start leading the people who lead the work, you run straight into it. You have to hold the outcome and let go of the path. Some days that letting go is the hardest thing in the world, and some days it is a quiet relief, and I have not fully made peace with which one it will be on any given morning. It turns out an AI first workflow asks for the same muscle. Define the outcome with real care. Release the route.

    I made a fairly large bet on all of this recently. I built something with my team that only makes sense if you believe AI is a building block, something that would be incoherent if I tried to explain it as a faster version of what we already did. I am going to write about that next, properly, as a case study, because it deserves more room than I can give it here.

    What the work was actually for

    For a while the question I asked was what this tool could do for me. Lately the question has gotten bigger, and a little less about me.

    I have stopped thinking of this as a question about technology. The question an AI first team is really answering turns out to be an organizational one. Which parts of how we work only ever existed because intelligence used to be scarce? Which approvals, which handoffs, which queues, which roles are load bearing, and which are scaffolding we put up to protect a resource that is no longer rare?

    The teams that get the most out of this will not be the ones who push AI into every corner of what they already do. They will be the ones willing to look at a process they have run for years and ask what it would become if the thing it was built to protect were suddenly cheap. That is a harder question than it sounds, because it means letting go of structures that have felt like good engineering for a long time. But I am fairly sure it is the actual work. The tool framing keeps us busy making the old thing faster. The building block framing lets us ask what the old thing was for in the first place.

    1. I’m not against process, I’m just examining the source of a lot of our current procsses ↩︎