The New Impostor Syndrome
Who is really the developer here?
It's been a whirlwind couple of months (or weeks?) in which myself, like many developers, have witnessed a realtime shift in how code gets written. Simply put, the future of software development seems to be one in which no one is writing individual lines of code, outside of (rarely) tweaking a variable name here or there.
On one hand, the sudden democratization of software skills is liberating: as a wannabe fullstack engineer, I've been able to overhaul my personal website (that you're reading right now), ship a pretty fully-featured workout tracker that I use on a daily basis, build an iOS app, resolving a personal grudge against a certain Philips SleepMapper app. And even tinkered with 3D modeling and game development, activities with otherwise unapproachable learning curves. This is no doubt incredible and, as I've felt about AI tools for a long while, the only limitation is my own creativity and ideaflow.
The New Impostor Syndrome
Impostor syndrome is well-known phenomenon characterized by a sense of self-doubt and fraud. You might've heard developers express "I have no idea what I'm doing" in talks, interviews, or other forums. I've always somewhat disliked this expression, since, even if you only have a surface level understanding of what you're doing, being able to pull together pieces of technology into a harmonious working system, indicates that you certainly know what you're doing.
But what if I no longer know what I'm doing?
With AI coding agents, my workflow has boiled down to:
- Present the problem or task in a planning session
- Provide high-level feedback on the plan if I have domain expertise
- Provide a feedback loop for the AI to self-improve what it's done (tests, browser access, direct access to server logs)
- Execute
So at the end of this loop, I'm wondering "which part of this actually required me? And for how long?"
For a more concrete instance: let's say I want to refactor many tests for an existing library. I have some light opinions on how to do this, but I mainly want to background this task and have the AI agent do most of the heavy lifting. I'll start by pointing the agent at the tests/ directory, throw it in plan mode, and ask for options to simplify and consolidate the current test suite. Then I'll review and OK one of the options, probably choosing the option that's already recommended by the agent. Who is really the developer here? In a world where I'm just gatekeeping execution, I feel like an impostor.
AI Native
Being "AI Native" is almost certainly a skill, and one that I'm diligently working on.
- impostory syndrome springs from a Productivity fantasy
- I do genuinely know what I'm doing, pointing the agent at real problems I want to solve
- latent capbiilties? maybe the agent will define this on it's own one days