INVEST vs. FIRST: Are Your User Stories Well-Structured, Clear, and Deliverable?
An alternative way of testing if your work is broken down efficiently.
Deep Dive podcast generated with Notebook LM.
INVEST and FIRST are two frameworks for writing user stories. FIRST prioritises speed and adaptability over INVEST's focus on detailed collaboration and estimation.
FIRST replaces 'Estimable' with 'Feedbackable' and introduces 'Fast' and 'Repeatable' to streamline processes for faster iteration cycles.
Choose INVEST for alignment with Agile principles or FIRST for environments demanding rapid delivery and efficiency.
You might have noticed that I haven’t covered user story authoring and validation in depth on this blog. While I frequently discuss topics like User Mapping, right-sizing, vertically sliced stories, and, most recently, Gherkin, I haven't focused much on user story formats themselves.
I have multiple drafts that I've been sitting unfinished for ages and have been unable to wrap up. The main stumbling block? I am not convinced that "As a [user persona], I want [to perform this action] so that [I can accomplish this goal]" is the best way to describe game features, content and event experiences for development.
In his recent post “Stop Drooling Over User Stories,”
highlighted problems with the traditional format and five alternatives. Martin’s post and some recent conversations on LinkedIn echoed his sentiments, which gave me pause, so I cooled my heels about publishing anything on stories until I invested more time exploring other options in the context of LiveOps product lifecycles.In this post, I will reference “user story,” but remember there are multiple formats for communicating value delivery. I can tell you that in every story, regardless of the format, you should discuss every story you add to your backlog. It is imperative to ensure they’re well-structured, clear, and deliverable. Without this conversation, stories become unclear, dependent, oversized, and untestable, leading to delays and wasted effort.
The most popular format for that conversation is INVEST.
INVEST stands for:
Independent: The user story should be self-contained, with no inherent dependency on another user story.
Negotiable: User stories should be open to discussion and not cast in stone. The details can be adjusted as more information emerges and through stakeholder collaboration.
Valuable: A user story must deliver value to the player or end user.
Estimable: You must be able to estimate the size of a user story to plan effectively.
Small: The story needs to be small enough to be coded and tested within an iteration, but it shouldn’t be so big that it becomes unmanageable.
Testable: The requirements in the story must provide the necessary information to make testing possible.
This approach, developed twenty years ago, has been the gold standard. I was recommended in Mike Cohn’s “User Stories Applied” and had loads of hits on Google search results.
My hang-up is explicit with the 'Estimable' part of INVEST. You know how strongly I advocate for limiting estimation and relying more on data-driven methods for forecasting. In a memorable training session, while presenting a slide deck, I've used for years, which includes INVEST, a participant pointed out my inconsistency—just after I’d criticised how poor humans are at estimating. I also LOATHE the word ‘Estimable'.
As a result, I've been hesitant to promote INVEST on this blog, or at least, I haven’t highlighted it much.
However, recently, I've encountered an alternative approach that caught my attention—not once but twice—once on the Dunk Agile Podcast and then again on the ProKanban blog a week later. They propose using FIRST as an alternative mnemonic, which aligns better with my perspectives on agile processes.
Take a look at FIRST
The FIRST mnemonic stands for:
Feedbackable: Can we quickly gather feedback on this item?
Independent: Can this item be developed and released independently of other items?
Right-Sized: Is this item as small as possible while still being valuable?
Small: Is this item small enough to be completed quickly?
Testable: Can we objectively test whether this item meets its acceptance criteria?
Honestly, ‘Feedbackable’ is not much better than ‘Estimable', but philosophically, it sits better with me. I have also seen this as ‘Feedback Loop,’ which better describes the intent.
The best thing about FIRST is that it is borne from the desire to have flow. REST is like cooking on gas! It is built for speed and adaptability.
Breaking Down the Aspects of INVEST and FIRST
Independent:
INVEST: Stories should be self-contained, not relying on others to be implemented.
FIRST: Maintains independence but leans towards enabling faster progress without dependencies.
Negotiable:
INVEST: Allows room for discussion and refinement, accommodating changes.
FIRST: This isn’t explicitly included; it suggests that quick iterations might decrease the need for extensive negotiations.
Valuable:
INVEST: Each story must deliver clear value to stakeholders or end-users.
FIRST: Assumes that value is a natural outcome of rapid delivery cycles.
Estimable:
INVEST: Clarity is key, enabling reliable effort estimation.
FIRST: Less emphasis on precise estimations, focusing more on progressing quickly.
Small:
INVEST and FIRST advocate for keeping stories small to ensure they are manageable and can be completed promptly.
Testable:
INVEST and FIRST agree that stories must have clear acceptance criteria to assess their success accurately.
Additional Considerations in FIRST
Fast:
Not a factor in INVEST, FIRST places significant emphasis on speed to maintain momentum and adaptability in fast-evolving environments.
Repeatable:
This principle encourages the development of patterns or templates to streamline similar tasks in the future, a feature not present in INVEST.
Key Differences
Speed Focus: FIRST is geared towards delivering results swiftly, incorporating "Fast" as a foundational principle—something INVEST does not explicitly address.
Negotiability vs. Repeatability: While INVEST promotes negotiability to enhance collaboration, FIRST focuses on creating repeatable processes to increase efficiency.
Value Orientation: INVEST highlights the importance of delivering value, whereas FIRST assumes that value emerges naturally from fast-paced iterations.
Troublesome Common Demoniator
The ‘I’ in INVEST and FIRST can be troublesome. In all the times I facilitate the breakdown of user stories using INVEST, the one area folks struggle with is ‘Independant’. When applying the INVEST framework, many people find it challenging to ensure user stories are genuinely independent.
Here are some common reasons and challenges that contribute to this difficulty:
Dependencies Between Stories: It’s common for user stories to rely on each other due to technical or functional requirements. For instance, before you can add support for specific game features, there might need to be a foundational story that establishes basic functionality on the back end. This dependency means that subsequent stories often build upon the groundwork laid by earlier ones, complicating efforts to keep each story independent.
Incremental Development: Agile development’s iterative, incremental nature naturally breeds dependencies. As functionality builds on prior work, it becomes challenging to separate stories. Instead of eliminating all dependencies— often unfeasible—teams should aim to remove unnecessary dependencies.
Prioritisation and Planning Issues: Dependencies can also entangle prioritisation and planning. If one story depends on the completion of another, it can lead to bottlenecks or delays. Although writing independent stories can help ease these issues, it requires meticulous planning and thoughtful effort during story creation.
Complexity in Slicing Stories: Dividing large epics or complex workflows into smaller, independent stories poses challenges. Teams often struggle to slice stories effectively, aiming to deliver incremental value while maintaining independence. Mistakes here can result in either overbuilding or delaying the delivery of value.
To tackle these challenges, teams can adopt several strategies:
Focus on removing unnecessary dependencies rather than striving for complete independence.
Employ techniques such as splitting stories based on functionality or workflow steps, ensuring each piece delivers standalone value.
Emphasise clear communication and collaboration among team members to manage and coordinate dependencies effectively.
Choosing the Right Framework
If you are considering which is the best to use, you are on the right track regardless of your choice.
Use INVEST when you're focused on crafting high-quality user stories that must align closely with Agile principles, requiring detailed collaboration and thorough stakeholder alignment.
Use FIRST when your priority is speed, adaptability, and the efficiency of repeatable processes. It is particularly suitable in environments where quick iterations are the norm.
Both frameworks offer unique strengths, and the choice largely depends on your team's specific needs and the nature of the project. Understanding these differences can help you select the most effective approach, ensuring your project runs smoothly and meets its goals efficiently.
Keep your eyes open for my upcoming ‘Production 101’ post on User Stories best practice.
Feedbackable is a FIRST!