Readplace

INVEST (mnemonic)

Wikimedia Foundation, Inc. 5 min read
View original
  • current
Summary (TL;DR)
The INVEST mnemonic (Independent, Negotiable, Valuable, Estimable, Small, Testable) describes characteristics of good Product Backlog Items in Agile. Independent PBIs can be reprioritized. Negotiable stories invite collaboration, not rigid contracts. Valuable items deliver stakeholder value. Estimable means scope can be sized, though the 'No Estimates' movement challenges this. Small PBIs fit within an iteration (e.g., under 50% of sprint duration). Testable PBIs require clear conditions for verification. The mnemonic applies to Scrum, Kanban, and XP. Note 'Estimable' is the most debated aspect; Wake would replace it with 'External' if revisiting INVEST.

From Wikipedia, the free encyclopedia

The INVEST mnemonic for Agile software development projects was created by Bill Wake[1] as a reminder of the characteristics of a good quality Product Backlog Item (commonly written in user story format, but not required to be) or PBI for short. Such PBIs may be used in a Scrum backlog, Kanban board or XP project.

Letter Meaning Description
I Independent The PBI should be self-contained.
N Negotiable Draft PBIs are not explicit contracts and should leave space for discussion.
V Valuable A PBI must deliver value to the stakeholders.
E Estimable You must always be able to estimate the size of a PBI.
S Small PBIs should not be so big as to become impossible to plan/task/order within a level of accuracy.
T Testable The PBI or its related description must provide the necessary information to make test development possible.

Independent

One of the characteristics of Agile Methodologies such as Scrum, Kanban or XP is the ability to move PBIs around, taking into account, amongst other criteria, their business value. When PBIs are tightly dependent, it might be possible to combine them into a single PBI.

Negotiable

A user story is not a contract. It is an invitation to a conversation.

The details of how a need is satisfied should remain open to discussion rather than being locked down in advance by a rigid specification. The story captures what is needed and why, but leaves how it is delivered to be worked out collaboratively. A story that over-specifies the solution; dictating UI layout, technical approach, or precise interaction design — removes that flexibility and undermines the dialogue that makes agile development effective. That having been said, it may still be appropriate for a PBI include a proposed a technical approach, suggest a layout, outline an ideal solution, etc. [2]

This is why acceptance criteria should focus on observable business outcomes rather than implementation detail. The less a story prescribes the solution, the more room exists for the team to find the best one.

Negotiability does not mean the underlying business need is up for debate, it means the path to meeting it is.

Valuable

The aim of Agile Methodology being to continuously deliver valuable software, the PBI should bring value to the stakeholder.[3]

Sometimes a story might not result in a complete shippable feature in its own right, and it may simply be a measurable step towards that goal. Nevertheless, the story must at least be demonstrable to the stakeholder and show that progress (i.e. something of value) has been delivered. For example, it would be acceptable for a coded/text response back from a central service to be simply shown in the user's UI (as text) to demonstrate that data had been sent to - and accepted by that service - and have a better representation of that response to be covered in another story. In this sense, the story was demonstrable and achieved something of business value, albeit perhaps not the final iteration of the design.

Estimable

Originally, Bill Wake reasoned that if a PBI size cannot be estimated, it will never be planned or tasked, and thus, it will never become part of an iteration. By this reasoning, PBI items should be capable of being estimated at some point. Note that this does not mean a PBI should in fact be estimated during the initial creation of the PBI, but only that it describes something which could be estimated.

Subsequently, to the introduction of INVEST, the "No Estimates" movement has gained traction in moving product owners away from the belief that a PBI must have been estimated in order to be planned or tasked. Many software practitioners will take on work without estimating the effort involved, as long as the item is narrowed sufficiently in scope.[4] Bill Wake has expressed that were he to re-pick INVEST today, he would remove "Estimability" and utilize the "E" to instead emphasize an aspect of the "V for Valuable" criteria.[5]

A note of caution: Estimability is the most-abused aspect of INVEST (that is, the most energy spent for the least value). If I could re-pick, we’d have “E = External”; see the discussion under “V for Valuable”.

"Estimable" as 'the capability to be estimated' is an American English definition. To avoid confusion with the British English meaning of 'worthy of esteem', some versions of the model use the reference "Estimate-able" which also is not a defined dictionary entry. Allen Holub has suggested that the British English meaning should be embraced, seeing the giving of an estimate as being harmful to the software development process.[6]

Small

Try to keep your PBI sizes to typically a few person-days and at most a few person-weeks (a good rule of thumb is that any single Product Backlog Item does not take more than 50% of an iteration; for example a single item won't take more than 5 days for a 2-week / 10 day sprint). Anything beyond that range should be considered too large to be estimated with a good level of certainty - these large PBIs may be called "Epics", where an Epic will take more than one iteration to deliver and, necessarily, will need to be broken down into smaller PBIs that can fit comfortably within Iterations. There's no problem in starting with epic PBIs, as long as they are broken down when the time to place them in an iteration backlog comes closer. This implements Lean software development's Just In Time analysis concept.

Testable

A PBI should only be considered DONE, among other things, if it was tested successfully. If one cannot test a PBI due to lack of information or access (see "Estimable" above), the PBI should not be considered a good candidate to be part of an iteration Backlog. This is especially true for teams employing TDD - Test Driven Development.

See also

References

  1. Bill Wake's original article: INVEST in Good Stories, and SMART Tasks
  2. INVEST in XP123 - Good Stories and SMART Tasks, https://xp123.com/invest-in-good-stories-and-smart-tasks
  3. Principles behind the Agile Manifesto
  4. "The NoEstimates Movement".
  5. "Estimable Stories in the INVEST Model - XP123".
  6. Event storming - Allen Holub (Holub Associates), O'Reilly Software Architecture Conference, June 10–13, 2019

External links

  1. Jeff Sutherland's Blog
  2. https://agileforall.com/new-to-agile-invest-in-good-user-stories/
  3. https://www.agilealliance.org/glossary/invest