it:ad:planguage:home

IT:AD:PLANGUAGE:

* (UP) * See also:

Summary

A notation for Requirements developed by Tob Gilb.

Planguage stands for “Plan Language”.

Tom Gilb had a strong distrust of the use of “Natural Language” for defining requirements due to flexibility – and therefore potential for ambiguity – within everyday English.
The PLanguage solution is to use a set of formal tags, listed below.

  • Tag:
    • The unque Identifier of the Requirement

    * Gist/Ambition:

    • The goal that is to be met

    * Scale:

    • The scale to use when measuring (see Meter)

    * Meter:

    • Describes precisely how to perform the measurement.

    * Must:

    • The minimum target value to meet.

    * Plan:

    • The desired normal wish.
  • Wish:
    • The desired optimal value.

* Advantages:

* Considerations:

  • It appears to be heavily influenced by an engineering environment.
  • It's formality appears to have had only a limited success at influencing the field of requirement development.
  • Is it Ambition or Aspiration – or Gist? They're all a bit unclear as to whether they are Obligations, Recommendations or Allowances.
  • Missing 'Context' and 'Exceptions' to 'Context'. Not all Requirements are applicable to all situations.
  • Missing a word to define or at least suggest the Test method.
  • Tag is unclear as to being a 'Action' to be undertaken, or simply a handle/tag (if so, where do we put the Action?).

* Disadvantages:

  • It's flexibility – the ability to define tags as needed – is also it's disadvantage. It's hard to find two companies using the exact same set of same tags.
  • There's an unproductive amount of duplication – therefore chance for errors – in between filling in Tag, Gist (basically the same thing in most cases), Ambition, Aspiration, and Requirement (all dealing with the same thing, but in long format).
  • Having multiple Targets ('Record', 'Must', 'Past', 'Wish', 'Stretch', 'Trend' make the requirements non atomic, adding ambiguity.
    • In such cases it would better to break the requirements into multiple requirements, each with a varying desirability (MUST be polite at greeting + SHOULD be polite during rest of meeting).

PLanguage has good intentions, but adds a lot of artificial friction in order to ensure thought has been put into the requirements. But it's still a lot of friction, that is not needed.

Consider instead using a Restrained Natural Language.