Agentic Programming

AI & LLMsTechnical Leadership

Martin Fowler defines agentic programming as a new mode of software development where humans prompt LLM agents to generate code and then review the results, rather than typing code directly. He distinguishes it from vibe coding, where developers ignore the code entirely, and from simple code completion. The workflow involves terminal-based tools where LLMs manipulate source trees, run tests, and iterate autonomously before human review. Fowler argues this shift raises fundamental questions about future programming skills, emphasizing harness engineering and domain understanding as central competencies.

Agentic programming redefines the developer's role from writing code to overseeing LLM agents and reviewing their output, making harness engineering and domain expertise the essential skills.
  • 2

    Increasingly software developers are not typing code into their IDEs. Instead they prompt an LLM to do so, then review the results.

  • 4

    This is a profound change to the nature of programming, where humans oversee LLM agents who generate the code.

  • 3

    Humans are still responsible for what the software does and how it works, but use different skills to create their products.

  • 5

    With vibe coding humans don't look at the code, indeed they forget that it even exists, while with agentic programming they are concerned with the code, often giving it detailed review.

  • 2

    The LLM then manipulates the source tree directly, creating and modifying files, running the code, evaluating the results of tests, and continuing development work, often for extended periods.

  • 4

    Harness engineering, focusing on working on the guides and sensors around the LLM seem central.

  • 3

    This raises the importance of programmers understanding the domain they are working with, collaborating with users and customers to iteratively define and build their product.

reflective