← Writing

AI for Coding: Collaborate or Delegate?

· Originally on Substack

A moody late-night office scene seen through a large window, featuring a solitary person and a robot intensely reviewing a blueprint under warm, artificial light. The setting is a 1940s American urban environment with stark contrasts of light and deep shadows, capturing the chiaroscuro lighting typical of film noir. The office contains minimalist, period-appropriate furnishings with hints of art deco design. The atmosphere is quiet, tense, and cinematic, emphasizing solitude and introspection. The style blends American Realism with noir’s dramatic, high-contrast shadow play and an underlying sense of mystery and moral ambiguity.

Recently I’ve found myself asking AI coding tools to help me do the thing myself, rather than asking them to do it for me. For the time being, this approach has several benefits:

  • AI coding tools are expensive—asking them to coach me gives them a lot less room to rack up a large bill while I’m not paying attention.
  • AI knows a lot of things I don’t, but not enough that it doesn’t regularly make mistakes I would have caught. Collaborating more directly allows me to catch those issues, while still benefiting from the AI’s breadth of knowledge.
  • If I allow the AI to do the thing I don’t know how to do, I don’t learn how to do it—a missed opportunity.
  • If I allow the AI to do a lot of work on its own, I don’t thoroughly understand what it did and why, and am in a poorer position to work on that code later on.

I think a big reason using AI coding tools for coaching rather than execution currently has so many benefits is simply because these tools aren’t yet reliable enough at loading in all the context they need. The further we get toward these tools being able to do this reliably, the weaker the argument will be for collaboration over delegation.

Though, even once we’ve reached the point where AI is reliably able to retrieve all necessary context, there are still reasons to prefer collaboration over delegation. Specifically, if your goals include:

  • Personal learning or skill development
  • Deep project knowledge
  • Creative control in execution

Notably, those first two goals still may apply even if your relationship to a project is entirely pragmatic. Even if you never intend to work directly inside a project again, having a thorough grasp of the technologies used and the details of the current implementation are important to your ability to make informed decisions around future development directions and priorities.

Though there we are again—thinking about our future role as developers in terms of project management instead of individual contribution.

Comments