Working With Humans
Many of us in the software engineering profession are now using coding agents to create things we never had time to build before. We are using LLMs as pair-programmers and debugging aids. We have discovered ways to effectively use these tools as individuals.
Things get murkier as we scale up and zoom out. At work, we are not just individuals; we are part of teams and organizations. Let’s take a look at a few ways we are using these tools in our interactions with our own teammates and colleagues.
Human-Robot Interaction
Here’s an example of an interaction between teammates that is starting to show up in internal company chats:
[11:45] Bob: I am trying to get this plugin working but I am not seeing any results. Could you take a look?
[12:01] Sue: I just deployed a fix, could you let me know if it is working properly now?
[12:05] Bob: The source has 373 items but those are workloads; only 201 unique repos, which is the real ceiling. Of those, 3 no longer exist, 2 carry renamed repos (
repo-one,repo-two), 1 has nocatalog-info.yaml(repo-three) and 4 more are archived. That lands at ~191 expected vs observed so nothing looks broken. Two known gaps: this whole feature only has one scope but these other features could be implemented. Here are the tickets for those…
Bob comes to Sue with a problem. Sue fixes the problem and asks Bob to verify. Why does Bob sound different all of a sudden? Does Sue actually need all of this information? How many words does Sue have to read before she gets the “yes” or “no” answer that she is expecting? What is the message that Bob is sending here?
By this point we’ve all had plenty of experience interacting with LLMs. Text generated by LLMs has a distinct “flavor” that we recognize. This conversation happened because Bob needed help from another human. Sue took time and assisted Bob. By dumping un-edited model output into their conversation, Bob might be signaling that the current conversation is not important enough for him to be present in that moment and Sue knows it.
The Claude-Bomb
Another example: A handful of teammates are investigating an issue together. Sue drops in with:
[13:40] Sue: “Here’s what Claude thinks: …..”
…and slips back into the ether. While Sue might look busy, she may actually be doing herself and her teammates a disservice.
Sue may be telegraphing that she has nothing of her own to contribute to the conversation. A key part of effectively communicating with LLMs involves refinement. Have you reviewed the output? Do you understand it? Is it correct? Or at least worth following up on? When Sue skips these steps and drops a “Claude-Bomb” into the conversation, she places this cognitive burden on her teammates.
Internal Documentation
One final example: I recently found myself reviewing a design document I had been avoiding due to its length. I began reading it. It looked great. It sounded great. About six pages in I paused and realized I had no idea what the design was actually proposing. It was full of sentences that were nice to read but it was devoid of information.
It is so easy to create these giant documents! The types of documents I’m talking about here (design documents, decision records, software documentation) are “read heavy”. In aggregate, people will spend far more time reading them than it took you to write them. We impose a tax on our team and our organization when the information density is not proportional to the document’s length.
If an LLM generated artifact took you less time to write than it would take another human to read it, think twice. Is it serving a clear purpose? Or does it just make you look productive? Or better yet: maybe we just don’t need that document? If our team did not value a particular type of documentation before, why is it all of a sudden so valuable?
Growth and Development
Finally, the process of writing often helps us solidify our thoughts and understanding of a particular topic or issue. The act of collecting and refining my observations over the past few weeks helped me understand the theme of this post: how we communicate as humans working toward common goals.
We are experiencing an unparalleled shift in technology. Who knows how things are going to change over the coming years. For the next six months though: let’s not forget ourselves or the humans next to us.