Lonsdale Systems

The Feature Funnel: More On Ambiguity (aka Describing Software Features)

I ended my post on qualifying the wishlist by promoting the benefits of a glossary of terms. This post will continue to explore the problems of ambiguity associated with natural language.

In addition to establishing a glossary, another way of ensuring consistency across features, is to employ a standard template for describing features. I have long promoted goal-oriented descriptions for features and base my feature descriptions on a simple verb-noun template.

The verb part of the template either describes some action that can be performed by a user of the product; or some internal function of the product. The noun part of the template describes the object (or target) of the action. Together, the verb and noun describe some action that must be perform to achieve a goal.

Naturally all the nouns used in feature descriptions should be defined in a glossary.

Qualifying Features The purpose of a feature can be made clearer by qualify the noun in the feature descriptions. One way to do this is by adding additional nouns (or noun phrases) that clarify the object of the verb. These additional nouns may be drawn from existing glossary definitions or, depending on how frequently they are used, they may require their own glossary entries.

Traditionally, nouns are qualified with adjectives (or adjective phrases) so it is quite natural to add adjectives to feature descriptions.

In a similar manner, verbs can be qualified with adverbs (or adverb phrases).

If required, features can be further qualified by adding conditions that trigger or constrain the feature.

Basing feature descriptions on the verb-noun template, combined with careful qualification of verbs and nouns, can remove a lot of ambiguity from descriptions of features.

User Stories Applying the verb-noun templates is a great way to initially identify features but Agile teams often want to describe features as User Stories.  Converting a feature described using the verb-noun template into a user story is quite easily. Just add the user of the feature and the benefit provided by the feature.  This is often summarised in the standard user story template.

As a {role} I want to be able to {goal} so that {reason or benefit}.

The features we have used as examples above can be re-written as user stories:

Notice how the Amend reservation feature is used by both the Call Centre Operator and the Front Desk Clerk but for different reasons.  Also notice how the benefits justify the feature and link the features to business needs (except of course in the case of the last feature).

Outcomes and Benefits Often identifying the reason or benefit that justifies a feature is the most difficult part of writing a user story. Once again the verb-noun template can help. Changing the verb to past tense and reversing the order of the verb and noun reveals the intended outcome that is associated with the feature.

Viewing features as outcomes often helps to identify the benefit or reason for the feature.  It can also help with defining acceptance tests by describing the expected outcome of a test case.

Capabilities When a group of related features are features are grouped according to a theme, it is often useful to use the verb manage” to describe the theme. 

For example:

Alternatively the group of features could be describes as a capability” by changing the verb into a noun form and moving it to the end of the feature description.

This concludes the discussion of ambiguity for now. Next up is the question Is there an alternative to the feature that will achieve the same goal?”.

The Feature Funnel: More On Ambiguity (aka Describing Software Features)

Courses Resources Blog Portfolio About Contact Search Feed
Lonsdale Systems