From Typing Code to Directing Agents
Software development is moving away from the familiar image of a programmer typing code into an IDE. In a growing number of workflows, developers prompt a large language model (LLM) to write the code and then review what it produces. This marks a significant shift in the programmer's role: instead of authoring every line, they oversee an agent that generates the code. The human remains accountable for the software's functionality and behavior, but the skills required to build it are changing.
This practice, often called "agentic programming," "agentic engineering," or "agentic coding," should be distinguished from two related but different uses of LLMs. Vibe coding is a hands-off approach where the human never inspects the generated code, treating it as a black box. In contrast, agentic programming keeps the human deeply involved in code review. It is also separate from using an LLM as an advanced autocomplete tool within an IDE, where the model assists with writing code during development.
How Agentic Tools Operate Today
Current agentic tools are typically run from a terminal. The programmer issues prompts, which often include saved documents that lay out the guidelines the LLM must follow. The agent then works directly on the source tree, creating and modifying files, executing the code, and running tests to check its own progress. This work can continue for extended periods before the human steps back in.
When the agent is finished, the human's job begins. Reviewing the agent's output involves code review, examining the test results, and checking other sources of information the workflow produces. The cycle repeats as the human loops back with feedback for the next iteration.
The Skills That Matter Now
This transition raises fundamental questions about what tasks programmers will perform and what skills they will need. Harness engineering—the discipline of building the guides and sensors that surround the LLM—becomes a central activity. Equally important is deep understanding of the domain the software serves. The ability to collaborate directly with users and customers to iteratively define a product and refine its behavior becomes more critical as the nature of code authoring changes. Programmers are becoming directors of a development process, responsible for intent, guidance, and final judgment on the agent's work.



