A requirement that has been designed and approved can be handed to the technical team for implementation. The requirement itself has no planning attributes, for example a link to an Iteration, and its lifecycle does not contain production stages such as development, testing, and so on. The requirement contains the project decision, while questions of implementation and schedule are carried by separate entities: Enhancement and Task.
An Enhancement is a large task devoted to implementing one or several requirements, a subtree of requirements, or a whole specification for a module (subsystem). The project team decides for itself how to "slice" requirements for implementation. The Enhancement lifecycle describes the engineering cycle of producing software or other outputs (diagrams, units, computations, and so on). An Enhancement can be decomposed into tasks devoted to different implementation stages, or involving several specialists at each stage. In this way, the technical team can choose a convenient process for implementing requirements, based on Scrum, Scrumban, Kanban, or its own variation of an iterative-incremental process. An example of using Enhancements can be found in the demo processes "Requirements-driven development" and "Systems engineering".
A Task in ALM is atomic, so planning the implementation of requirements with tasks can be costly, because for each requirement you need to create separate tasks for programming, testing, documentation, and so on. Tasks are useful when sections of the technical specification imply specific non-standard work. For example, an implementation project does not always require programming and testing, and may be limited to configuring the system being implemented. An example of using tasks can be found in the demo process "Technical specification execution".
You can create an Enhancement by selecting "Enhancement" in the + menu for a specific requirement:
By default, the system inserts the selected requirement into the Enhancement text using the "Insert artifact text" operation. Thus, if the requirement is changed, the Enhancement description automatically reflects those changes. You can also supplement the Enhancement description with text that clarifies the assignment.
If the requirement is composite, that is, it contains child requirements, the whole subtree of requirements is inserted into the Enhancement text. In this way, detail written as child requirements also ends up in the Enhancement text. You can create an Enhancement for an entire document or specification if the assignment needs to be made that way.
The Enhancement that is created is automatically linked to the selected requirement, so every team Participant can easily navigate to the original requirement.
Enhancements and tasks are then estimated, planned, assigned to Assignees, and carried out, which is described in detail in the "Managing teams and projects" section.
The requirement lifecycle can be configured so that Enhancements can be created only in certain requirement statuses, for example so that you plan implementation only for approved requirements. The setting is made on the form of a specific requirement status, in the "Artifacts" field.