Writing Agile Features Best Practices
This week on The Guardian Podcast, Ryn Melberg helps Agile/Scrum/SAFe users define what a feature really is. There is a lot of confusion and misuse of the term. Ryn describes how using the term consistently will help prevent misunderstandings and reduce wasted time explaining and then re-explaining what was intended.
Ryn helps listeners answer these questions:
- What is a feature in Agile?
- What are epics? Are epics and features the same thing?
- What is the difference between a feature and a user story?
- Where in the process does defining the feature occur?
- How do feature writers and Agilists manage the top down mandate?
- Are features a macro/overview of several user stories?
- Is a feature just a collection of user stories?
- Why do software developers mix these terms up?
- Are features all simply ‘shall’ statements?
- What benefit is there to the Agile team writing a feature using the ‘shall’ method?
- So is the best practice for writing features those where the focus is on who or what the feature is for?
- Should feature writers include few details, a lot of details or just enough?
- What is feature driven development?
- Are there advantages to feature driven development we should be aware of and how are they realized?
In agile development, a feature is a function that delivers business value. Features can include additions or changes to existing functionality.
- It should provide business value
- It should be estimable – it must have enough definition for the development team to provide an estimate of the work involved in implementing it
- It should be small enough to fit within an iteration – therefore, if it is too big, it should be broken down further
- It should be testable – you should understand what automated or manual test a feature should pass in order to be acceptable to the customer
There is a lot to learn this week. Mostly, that words matter and the appropriate use of terms in the Agile development process is important to derive the most good in the least amount of time from Agile.