Concept: Capability Pattern
A Capability Pattern is a special Process that describes a reusable cluster of Activities in common process areas that produces a result of observable value.
Main Description

Capabilities Patterns express and communicate process knowledge for a key area of interest such as a Discipline or a practice and can be directly used by process practitioners to guide their work.  They are also used as building blocks to assemble Delivery Processes or larger Capability Patterns ensuring optimal reuse and application of the key practices they express.

Examples for Capability Pattern could be 'use case-based requirements management', 'use case analysis', or 'unit testing'. Typically but not necessarily, Capability Patterns have the scope of one Discipline providing a breakdown of reusable complex Activities, relationships to the Roles which perform Tasks within these Activities, as well as to the Work Products that are used and produced.  Generally, a Capability Pattern does not relate to any specific phase or iteration of a development lifecycle, and should not imply any.  In other words, a pattern should be designed in a way that it is applicable anywhere in a Delivery Process.  This enables its Activities to be flexibly assigned to whatever phases there are in the Delivery Process to which it is being applied.  An exception to this would be capability patterns that are intended to provide a template for quickly creating an iteration or portion of an iteration for a particular phase in a Delivery Process.

Key applications or areas of reuse for Capability Patterns are:

  • To serve as building blocks for assembling Delivery Processes or larger Capability Patterns.  Normally developing a Delivery Process is not done from scratch but by systematically applying and binding patterns.
  • To support direct execution in a development project that does not work following a well-defined process, but works based on loosely connected process fragments of practices in a flexible manner (for example, Agile Development).
  • To support process education by describing knowledge for a key area such as practices on how to perform the work for a Discipline (for example, Requirements Management), for a specific development technique (aspect-oriented development), or a specific technical area (for example, relational database design), which is used for education and teaching.

The workflow of a Capability Pattern is usually represented using the UML Activity Diagram notation. 

Sample activity diagram representing the workflow of a Capability Pattern

Sample activity diagram, from the requirements Discipline in RUP, showing workflow and transitions.