Skip to content

Agile & Sprints

Agile is a project type for iterative delivery. Work is organised into numbered sprints, each with its own contract value and hours budget.


Structure

An Agile project has two levels:

Parent project — a named container. No contract value, no budget, no revenue. Just a namespace.

Sprints — child projects attached to the parent. Each sprint has:

  • A contract value (agreed with the client)
  • An hours budget (the work estimate)
  • A status (planned or active)
  • A sprint number (auto-incremented)

Revenue recognition

Revenue is per-sprint and follows a Fixed Price model:

Revenue = (hours_logged ÷ hours_budget) × contract_value
          capped at contract_value
          when sprint_status = 'active'

Planned sprints ($0 revenue) — The sprint is in the backlog. Work has not started. No revenue is recognised regardless of any hours logged.

Active sprints (accruing) — Work is underway. Revenue accrues continuously as hours are logged, up to 100% of contract_value.


Sprint statuses

There are exactly two statuses:

StatusRevenueMeaning
planned$0Backlog — not yet started
activeAccruingWork in progress

There are no other states. No "completed," "archived," or "on hold." When a sprint is done, log the remaining hours and start the next sprint. If you stop work mid-sprint, keep it active — the revenue recognition reflects actual completion.

To change status from planned to active, use update_sprint_status. This is done directly without a confirmation prompt.


Sprint contract values

Always ask explicitly for each sprint's contract value. Never derive it from the parent project or copy it from a previous sprint. Sprint scope and value change — even two weeks apart. VERA will always prompt for this if you don't provide it.


Creating a sprint sequence

  1. Create the Agile parent: create_project "Acme App" as Agile
  2. VERA immediately offers to set up Sprint 1
  3. Provide Sprint 1's contract value and hours budget: create_sprint
  4. Team logs time against Sprint 1
  5. When ready for the next sprint: create_sprint again — sprint number auto-increments
  6. Activate each sprint when work begins: update_sprint_status

Sprint numbers are managed by VERA. Don't specify them manually.


Agile summary

get_agile_summary shows all sprints under a parent Agile project:

  • Sprint name and number
  • Status (planned / active)
  • Hours logged vs. hours budget
  • Recognised revenue (Owners only)

Use this for a complete view of an Agile project's delivery history and current pipeline.


Work gate

Like T&M, work should stop when a sprint's hours_budget is exhausted. The mechanism isn't a hard lock — VERA won't refuse to log time — but the intent is clear: once the sprint's budget is used, scope for that sprint is complete. Any additional work should be scoped and contracted as a new sprint.


Agile vs. Fixed Price

The main difference:

Fixed PriceAgile
StructureSingle projectParent + numbered sprints
Scope changeEdit the projectAdd a new sprint
RevenueOne calculationPer-sprint calculations
Contract valueSingle totalPer-sprint
Historical viewSingle timelineSprint-by-sprint history

If a project is genuinely one fixed scope with one contract, use Fixed Price. Use Agile when the client relationship involves iterative contracting and the scope evolves sprint by sprint.

VERA by talktalkmake