How to handle requirements with an unclear scope containing words «all», «everywhere», etc.?
Let's say, customer or product owner creates a task that looks like this:
New termin all places in the app for language
And development team needs to provide an estimate for this. But there is no person in the team who knows the codebase well enough to get a list of all occurrences. The project is just too big and exists for several years already.
We can assume that we only change localization file(s) for language
X, but what if somebody accidentally hard-coded localization somewhere (and this is totally possible for the concrete project)... Additionally,
Old termmay be a part of several other bigger sentences in localization sources spread within the whole app!
What should we do in such a situation:
- ask the customer/PO for the list of concrete screens in the application (sure there will be some discussion and misunderstanding), or
- provide an estimate that includes the full reverse engineering process, which will be pretty big, and lead to additional, maybe pretty long, discussion about this?
It's important to mention that the estimate should be more or less committable and the task itself is pretty small if we would have a concretely defined scope.
P.S.: do not focus on the concrete example details, here are a couple more examples to better describe the overall situation:
Change the color of all
redon all website pages.
Closing animation for every expandable component (drop-down, spoiler, "show more", etc.) must have a duration of exactly
jeanid last edited by
Speak with whomever came up with the requirement. Explain the situation and the challenges involved. It may be the outcome is a change in the definition of the requirement, or perhaps they will agree that an investigation needs to be done first to come up with a more reliable estimate.
All requirements should be negotiable. This is important when you want to follow an agile approach and collaborate.
It is also why the https://en.wikipedia.org/wiki/INVEST_(mnemonic) mnemonic includes N for negotiable.