{"slug": "agentic-agile-why-agent-development-needs-agile-not-just-prompts", "title": "Agentic-Agile: Why Agent Development Needs Agile (Not Just Prompts)", "summary": "Microsoft engineers developing AI agents are adopting a new methodology called Agentic-Agile development to address the failures of prompt-driven and spec-driven approaches for large-scale projects. The framework, created by a Microsoft Partner Tech Strategist and colleagues, applies Agile principles to teams of humans and agents working in parallel, solving problems with context window limits and non-deterministic outputs. The methodology aims to provide a scalable process for persistent agent development across large codebases and multi-module systems.", "body_md": "*“A bad system will beat a good person [or agent] every time” **~Dr. William Edwards Deming **(with apologies)*\n\nI started *vibe coding* by writing prompts (often dictated into my phone), refining them with an agent in M365 Copilot, and creating handoff files to use with GitHub Copilot CLI. The results were predictably non-deterministic.\n\nPrompt-driven development is a typical starting pattern: a developer opens a chat session, writes a prompt, reviews the output, adjusts, re-prompts. Maybe they get something useful. Maybe they spend an afternoon debugging emergent behavior that nobody specified and nobody tested. Then the process evolves to Spec-Driven Development: the developer creates specifications defining the “why and the “what.” They institute constraints and validation criteria, and the agent delivers more consistent code requiring less debugging.\n\nBut how do we scale this to teams of many humans and agents working in parallel? How do we persist development over large projects and codebases that exhaust most of the agent context window during initial grounding? How do we get better over time?\n\nSeveral of my colleagues and I have started talking about a model we’re calling **Agentic-Agile development** as one methodology to address these problems.\n\n## Agentic-Agile Methodology: Wait!** Hear me out!**\n\nI’m fortunate in my role at Microsoft as a Partner Tech Strategist (PTS) to work in a global team managing joint product and co-innovation with our leading *Data & AI* and partners. We come with a combination of engineering and product management backgrounds and spend most of our time focused on getting teams working better together across organizations. Adding agents to the development team, while ensuring continuous improvement, is proving a natural extension of our role.\n\nThe original [Agile Manifesto](https://agilemanifesto.org/) taught us to value individuals and interactions, working software, customer collaboration, and responding to change. It was so successful that for some it became dysfunctional dogma (see [The Death of Agile: Why Big Tech Is Ditching Scrum and What They Use Instead | by Ibrahim Irfan | Medium](https://medium.com/@ibrahim2128/the-death-of-agile-why-big-tech-is-ditching-scrum-and-what-they-use-instead-2d9bf1f189fc)).\n\nBut Agile and Scrum were designed for maintaining team velocity while maintaining alignment in working toward rapidly shifting business goals. Today’s problems are similar but with agents, the time scale and the makeup of the team have changed. Our processes need to be flexible to evolve and maintain that alignment with agents as part of the team. That doesn’t mean we need to abandon processes.\n\nThis article is the introduction to a longer series detailing my and some colleagues’ practices that we hope will be helpful to others on the same path. I’ll often reference some of my personal projects, like *Minthe *which started as an attempt to build a [chief of staff agent](https://platform.claude.com/cookbook/claude-agent-sdk-01-the-chief-of-staff-agent) in [Microsoft Foundry](https://learn.microsoft.com/en-us/azure/foundry/what-is-foundry?tabs=python). *Minthe* has become my larger experiment in Agentic-Agile development and also has helped to bootstrap several other projects.\n\nThis isn’t a finished process, and we would really like your feedback and participation to continue to improve the framework.\n\n**Read the full version of****Toward an Agentic-Agile Manifesto****Explore the****Agentic-Agile Template | GitHub**\n\n## The Problem: Development Without Process\n\nPrompt-driven development works for small, self-contained tasks: Generate a function. Refactor a module. Write a test. These are bounded problems with clear outputs that modern AI coding agents handle well. Spec-Driven Development expands the scope of the tasks that can be delivered but it doesn’t scale over time without careful grooming and maintenance.\n\nThe breakdown happens when scope grows. A multi-module system. An integration layer with external dependencies. A feature that spans files, schemas, and behavioral contracts. At that scale, prompt-driven development produces a set of familiar failures:\n\n**No backlog:** There is no structured list of what needs to be built, in what order, with what dependencies. Work gets discovered during implementation, not planned before it.**No concept of done:** Each prompt session ends when the developer feels satisfied, not when a contract is fulfilled. “Good enough” replaces “contract satisfied.”**No phased delivery:** Everything is attempted at once. There is no staged rollout, no incremental validation, no ability to pause and redirect.**No governance:** Safety constraints, validation rules, and quality gates are bolted on after the fact, if they are added at all.\n\nThe result is predictable. Agents produce code that works in isolation but breaks under integration. Behavior drifts across sessions because there is no shared state defining expected behavior, or because durable memory systems contain stale and conflicting information. Defects escape into production because there was no structured review gate to catch them. The developer compensates by spending more time reviewing and correcting, which erodes the time savings that agents were supposed to provide.\n\nThis is not a model problem; it is a process problem. Upgrading the model does not fix missing acceptance criteria. A more capable agent working against an ambiguous spec produces more sophisticated drift, not less.\n\nAgentic-Agile addresses this through codifying processes and standards in documentation for both humans (`README.md`\n\nfiles throughout the repo) and agents (e.g. `.github/copilot-instructions.md`\n\n, `CLAUDE.md`\n\n, `STYLE.md`\n\n).\n\nFor example, the [agentic-agile-template](https://github.com/microsoft/agentic-agile-template) the `.github/copilot-instructions.md`\n\ncan be used to guide consistent GitHub Copilot behavior for code writing or testing standards:\n\n```\n# Copilot Instructions\n\n> This file provides GitHub Copilot with project-specific context. \n\n## Project Description\n\n<!-- Replace this with a 2-3 sentence description of your project. -->\n<!-- Example: \"A REST API for task management built with Node.js and Express. Uses PostgreSQL for storage and JWT for authentication.\" -->\n\n[Describe your project here]\n\n## Coding Style\n\n<!-- Define the conventions Copilot should follow when generating code. -->\n\n- **Language:** [e.g., TypeScript, Python, Go]\n- **Formatting:** [e.g., Prettier with default config, Black for Python]\n- **Naming:** [e.g., camelCase for variables, PascalCase for classes]\n- **Imports:** [e.g., absolute imports only, group by stdlib/third-party/local]\n- **Error handling:** [e.g., always use typed errors, never swallow exceptions]\n\n## Testing Approach\n\n<!-- Describe how tests should be written and organized. -->\n\n- **Framework:** [e.g., Jest, pytest, Go testing]\n- **Location:** [e.g., `__tests__/` directories alongside source, `tests/` at root]\n- **Naming:** [e.g., `test_<function_name>`, `describe/it` blocks]\n- **Coverage expectations:** [e.g., all public functions must have tests]\n```\n\n**Note:**\n\nIf you are using Anthropic models in GitHub Copilot CLI, `CLAUDE.md`\n\nincludes persistent instructions to ensure that every development phase includes documentation that must be updated by agents (including itself):\n\n```\n## Documentation Maintenance\n\n<!--\n  Define which documents exist, and when each should be updated.\n  This prevents documentation from drifting out of sync with code.\n-->\n\n| Document | Update When |\n|----------|-------------|\n| `README.md` | Project scope, setup, or usage changes |\n| `CLAUDE.md` | Process, conventions, or structure changes |\n| `STYLE.md` | Style conventions change |\n| `CONTRIBUTING.md` | Contribution process changes |\n| API docs | Endpoints added, modified, or removed |\n| [Your doc] | [Your trigger] |\n```\n\n**Ask your agent to edit:**\n\nRemember, just like original Agile, this should be flexible! Human teams choose the branching strategy that makes sense for their project, what frameworks and languages to use, which CI gates provide sufficient safety without blocking work. Agentic-Agile processes can adapt to and incorporate these too, but you MUST keep your agents in the loop. Again from the template’s documentation files:\n\n```\n## Development Process\n\n<!--\n  Describe how work flows from idea to merged code. Agents use this to\n  understand your workflow expectations: how to structure PRs, when to\n  run tests, what review looks like.\n\n  The process below is an Agentic-Agile template. Adapt it to your team.\n-->\n\n### Workflow\n\n```\nPlan → Issue → Implement → Review → Merge → Docs\n```\n\n| Phase | Description |\n|-------|-------------|\n| **Plan** | Define what to build. Identify scope, dependencies, and file ownership. |\n| **Issue** | Create a GitHub Issue with structured scope, acceptance criteria, and negative constraints. |\n| **Implement** | Build the feature in a feature branch. Follow coding conventions. Write tests. |\n| **Review** | Submit a PR. Every PR receives review that checks correctness, test coverage, and convention compliance. |\n| **Merge** | Merge to the integration branch after review approval. |\n| **Docs** | Update documentation affected by the change. Close the issue. |\n```\n\n## Agents as Partners, Not Just Tools\n\nMost teams treat AI agents as tools to be configured: pick a model, write a prompt, tune the parameters, receive product. Agentic-Agile treats agents as contributors to the team. Every action an agent takes is a development action, with the same downstream consequences as a human commit.\n\nAgents create files, introduce dependencies, write tests. They can also enrich human prompts and specs and create issues in backlog. As you become more comfortable, give the agents the autonomy to research, make architectural decisions, and document these in ADR docs and updates to issues. However, if agents are doing development work, you need to agree with them on development process.\n\nThe same engineering discipline that prevents human teams from shipping broken software applies to human-agent teams: structured planning, clear acceptance criteria, incremental delivery, and review gates. A team that would never ship a human-authored module without code review should not ship agent-authored modules without equivalent scrutiny.\n\n[microsoft/agentic-agile-template/.github/ISSUE_TEMPLATE/agentic-story.md](https://github.com/microsoft/agentic-agile-template/blob/main/.github/ISSUE_TEMPLATE/agentic-story.md)that you can modify.\n\n```\n---\nname: Agentic Story\nabout: A structured story for human-agent development\ntitle: ''\nlabels: ''\nassignees: ''\n---\n\n## Summary\n\n<!-- What does this story deliver? One sentence describing the outcome. -->\n\n## Context / Motivation\n\n<!-- Why is this work needed? What problem does it solve or what capability does it enable? -->\n\n## Scope\n\n### Files to Create or Modify\n\n<!-- Explicit list of files this story will touch. This prevents overlap with parallel stories. -->\n\n- `path/to/file1.ext` — description of changes\n- `path/to/file2.ext` — description of changes\n\n### Interfaces to Implement\n\n<!-- APIs, contracts, or integration points this story must satisfy. -->\n\n- \n\n### Invariants to Preserve\nds\n<!-- Existing behavior, contracts, or constraints that must NOT be broken. -->\n\n- \n\n## Acceptance Criteria\n\n<!-- Specific, testable conditions that must be true when this story is complete. -->\n\n- [ ] Criterion 1\n- [ ] Criterion 2\n- [ ] Criterion 3\n\n## Negative Constraints\n\n<!-- What this story explicitly does NOT do. Prevents scope creep and clarifies boundaries. -->\n\n- Does NOT modify ...\n- Does NOT implement ...\n- Does NOT change the behavior of ...\n\n## Dependencies\n\n<!-- Other issues or stories that must be completed before this one can start. -->\n\n- Depends on #\n- Blocked by #\n\n## File Ownership\n\n<!-- Explicit list of files this story owns exclusively during its wave. No other story in the same wave should touch these files. -->\n\n| File | Owner (this story) | Notes |\n|------|-------------------|-------|\n| `path/to/file.ext` | ✅ | |\n```\n\nThe underlying idea is not new. It is the foundational insight of Agile, applied to a new collaboration model. What Agile recognized for human teams, Agentic-Agile Development recognizes for human-agent partnerships: iteration, contracts, and reflection prevent the same class of failures.\n\n## The Agentic-Agile Team: Process Rigor for Human-Agent Partnership\n\n**Specs in Backlog first:** Every capability is an issue. Every issue has acceptance criteria. Ambiguous requirements become structured contracts before any agent executes. Grooming is not administrative overhead; it is the primary design mechanism.**Contract-driven execution**: Agents operate against specifications, not open-ended prompts. Each story defines inputs, outputs, and invariants. The exit condition is not “good enough” but “contract satisfied.”**Incremental delivery**: Work is organized into priority groups with clear exit criteria between them. Each increment produces a testable, reviewable result before the next begins.**Governance from day one**: Safety constraints, validation rules, and review gates are part of the process design, not afterthoughts.\n\nIn practice, this looks like a system where different types of workflows, each with distinct behavioral requirements, are decomposed into independent stories with clear contracts. Each workflow type gets its own specification, its own acceptance criteria, and its own validation path.\n\n**Use /plan to discuss strategy**\n\nThe shift is fundamental. Instead of “let the agent figure it out,” the discipline becomes: define the contract, constrain the execution, validate the output.\n\n## Evidence: In Practice\n\nWith *Minthe* I authored specifications docs from prompts before any implementation code was written. After the first few iterations, we realized that design docs were being updated by agents and drifting from the original specs, but changing original spec docs led to more potential for drift. This introduced confusion for agents reading conflicting info, particularly in swarms.\n\nThe partnership evolved through recognizable stages: first, we designed and handed off. Then we alternated layers. Eventually, we ran multiple agents in parallel with review gates between waves.\n\nAfter interrupting a few refactoring loops, we moved to using the GitHub repo issues to document new specs and features. Every capability became an issue with acceptance criteria. GitHub Copilot CLI (mostly with Claude models) easily adapted to reading and executing from issues as locked specifications during delivery. Mandating that all issue work be done in separate branches reduced collisions in parallelization. The closed issues and PR comments became historical reference points for subsequent iterations to refer to what had been done and what the intent was there, while capturing expanded requirements and specs in new issues. Parent-child, blocker relationships between issues further enhanced traceability.\n\nWhat matters is how it changes the relationship between the human and the agent. This is a partnership, not a hierarchy. The human’s role is architecture and specification: a Scrum Coach who facilitates the collaboration rather than directing every action. The agent contributes implementation within constraints. Review is shared responsibility.\n\nShortly after this, we introduced a *retrospective* process where I asked an agent to review session files, git commit logs, PRs and other data to find where we could improve.\n\nThe methodology has since been applied to several, unrelated projects in different domain from the original chief of staff agent. The patterns (spec-first backlog, phased planning, agent context files) transferred without explicit reference to the original project. The methodology appears to be genuinely portable rather than project-specific. That portability is the real test: a methodology that only works on the project where it was invented is not a methodology.\n\n## Why Governance Cannot Be Deferred\n\nA common objection: “We will add guardrails later, once we know what we are building.” In agentic development, this is backwards. Agents make decisions at execution speed. Without upfront constraints, they will make reasonable-looking choices that violate architectural invariants, introduce security gaps, or create dependencies that are expensive to unwind.\n\nWe learned this the hard way. Our CI pipeline was not Story 1. Quality issues accumulated across waves before any automated gate existed. By the time we added the pipeline, we had already built on assumptions that had never been validated. This required reopening and redeveloping the features. Along with CI gates, adding adversarial code reviews during each delivery wave and unit tests as part of acceptance criteria in each issue made a huge difference in work-product delivered.\n\nGovernance in Agentic-Agile Development is not a phase. It is a property of the backlog itself. Safety constraints are acceptance criteria on stories. Review gates sit between execution waves, not at the end of the project. Validation infrastructure, including CI/CD, linting, and automated tests, is the first story implemented, not the last.\n\nThe measurement is straightforward: if you are catching architectural violations during final review rather than during story execution, your governance is too late. Move it earlier.\n\nWe’re planning a deeper dive on this for the next installment in the series.\n\n## The Short Version\n\n- Do not start with prompts; start with specs written as issues in your backlog.\n\nNo work should be committed without an associated issue! Remind agents to create new or update issues if unplanned work emerges.**Issues first!** - Give humans and agents consistent and persistent instructions as documentation (markdown) in the repo and keep it up-to-date.\n- Make acceptance criteria the contract.\n- Deliver in increments or waves. Try asking your agent to sequence and group work.\n- Put governance in the backlog from day one.\n- Use PRs, CI, and retrospectives to improve the process.\n\nMy apologies for deliberately misquoting Dr. Deming at the beginning: of course he meant that individual contributors cannot overcome a rigid, poorly implemented system imposed on them. But by the same *token* (apologies also for the pun), teams of humans and agents cannot meet their goals without clear guidance and a framework to build within.\n\nWe’re early in our exploration of Agentic-Agile methodology but already find that incorporating spec-first development into Agile practices improves our outcomes. Stay tuned to this series and the [agentic-agile-template](https://github.com/microsoft/agentic-agile-template) for deeper dive topics like epic decomposition for swarming, conducting retrospectives with agents, and evaluation frameworks.\n\n## Getting Started\n\n- Copy the\n[microsoft/agentic-agile-template](https://github.com/microsoft/agentic-agile-template)repo on GitHub. - Clone your repo locally, switch to\n`/plan`\n\nmode, and ask GitHub Copilot to:- read the contents of the repo for grounding and\n- ask you clarifying questions to customize the template for your project.\n\n- If you don’t already have a backlog, create high-level issues for the major capabilities your product needs to deliver.\n**Remember to create an issue describing what CI/CD tooling and gates are appropriate for your project (or ask Copilot for a suggestion)** - Go back into\n`/plan`\n\nmode and ask the agent to work with to review the backlog and decide on which items to tackle first. - Pick that issue and ask Copilot to improve the description to conform to the ‘agentic-agile-template’.\n- When you feel comfortable with the issue description, ask Copilot to implement it and see what happens.\n- Keep working the process: every ambiguous capability becomes an issue. Every issue gets acceptance criteria. Every acceptance criterion becomes a contract that guides agent execution.\n\nComment here and let us know how it went.\n\n## Resources\n\n[The Agentic-Agile Manifesto](https://github.com/microsoft/agentic-agile-template/blob/main/MANIFESTO.md): Full manifesto with all thirteen principles[Agentic-Agile Template | GitHub](https://github.com/microsoft/agentic-agile-template): Issue templates, agent context files, and starter backlog structure- The original\n[Agile Manifesto](https://agilemanifesto.org/) [Andrej Karpathy: Software is changing (Again) | Y Combinator YouTube](https://www.youtube.com/watch?v=LCEmiRjPEtQ)", "url": "https://wpnews.pro/news/agentic-agile-why-agent-development-needs-agile-not-just-prompts", "canonical_source": "https://devblogs.microsoft.com/blog/agentic-agile-why-agent-development-needs-agile-not-just-prompts", "published_at": "2026-05-19 15:00:09+00:00", "updated_at": "2026-05-30 17:06:36.530872+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-products", "ai-research"], "entities": ["Microsoft", "M365 Copilot", "GitHub Copilot CLI", "William Edwards Deming"], "alternates": {"html": "https://wpnews.pro/news/agentic-agile-why-agent-development-needs-agile-not-just-prompts", "markdown": "https://wpnews.pro/news/agentic-agile-why-agent-development-needs-agile-not-just-prompts.md", "text": "https://wpnews.pro/news/agentic-agile-why-agent-development-needs-agile-not-just-prompts.txt", "jsonld": "https://wpnews.pro/news/agentic-agile-why-agent-development-needs-agile-not-just-prompts.jsonld"}}