Feature is a piece of functionality that delivers business value. Keeping it at a very high (macro) level defeats the purpose of using agile, and at the same time, creating too narrow (micro) levels increases complexity. Below are the widely accepted agile INVEST properties that we recommend.
Independent – Should be self-contained.
Negotiable – Not a strict contract, but leaves room for discussion.
Valuable – Has a business value to the user.
Estimable – Should be able to size/estimate the work.
Small – Ideally will take less than a week for 1 person to implement.
Testable – Should be able to specify the tests to confirm that it has been implemented correctly.
Defining a feature
Features are written in simple, plain language that is easy to understand by all stakeholders (customer, clients, vendors, developers, etc.) A feature consists of three main parts:
Who – Who is the actor or person performing this functionality. This actor may be an online shopper for an e-commerce application or a seller on a marketplace platform.
What – What covers the action the actor or the person will perform. The action may be adding an item into a shopping cart, or login into a marketplace portal.
Why – Why covers the expected results of the action. The online shopper adds an item into a shopping cart to checkout items. A seller may need to login to a marketplace portal to sell a product or service.
Below are some of the sample features:
- As a FreelancingTeams’s client, I want to create a project, so I can get my work done using specialized teams
- As an Amazon online shopper, I want the ability to add items to a shopping cart, so I can check out all items at once
- As an Uber driver, I want to login into the app, so that I can find suitable rides and make money
- As a business owner, I want to improve the website, so that i can convert more customers
- As a citizen, I want to vote, so that I can choose my preferred candidate
An acceptance criteria is a set of conditions the feature must satisfy or comply for a successful acceptance of the feature by the project owner. As the feature definition is more generic, the acceptance criteria focus on detail requirements the system or feature must conform.
The acceptance criteria set the expectation upfront for all stakeholders, and helps the team build necessary functionalities meeting the acceptance criteria. Hence, the acceptance criteria is a key component in defining the feature and sign-off.
The acceptance criteria is frequently used to test the features ensuring it conforms to the standards.
Acceptance criteria examples
- An Amazon online shopper must select atleast one product to add it into shopping cart
- An Amazon online shopper can add multiple products to the shopping cart before checking out
- An Uber drive must be a registered before using the application
- Only user with valid email can login into application
- My business website should be responsive to both web and mobile devices
Not all features are treated equal. While listing the features, you may find some features are more important than others. FreelancingTeams helps you to set appropriate priority levels for each feature. There are different ways to prioritize features, however, FreelancingTeams uses MoSCoW – prioritize by value method.
- Must-haves – Key features that are critical for success.
- Should-haves – Critical, but are not required immediately.
- Could-haves – Not critical, but may increase user experience.
- Won’t-haves – Lowest business value.
Setting appropriate priority helps to manage work effective. For example, you may choose to execute all “Must-haves” features first, before working on “Should-haves”, and so forth.