Activity: Develop Solution (for requirement) (within context)
Design, implement, test and integrate the solution for a requirement within a given context.
Extends: Develop Solution (for requirement) (within context)
DescriptionWork Breakdown StructureTeam AllocationWork Product Usage
Purpose
  • For developers: To create a solution for the requirement assigned to them
  • For project managers: To have a goal-based way of assigning work and tracking project status
Relationships
Parent Activities
Description

Introduction

Project managers use this Capability Pattern as a way to perform a goal-based planning and management. Work is assigned to developers and work progress is tracked based on the goals to be achieved using the designed, unit-tested, and integrated source code.

Context of what is being developed

A context can be specified when a requirement is assigned to be developed, thus specifying how broadly a requirement is to be developed in a iteration. Development may focus on a layer (such as the user interface, business logic, or database access), on a component, and so on.

Whether a context is specified or not, the developer's responsibility is to create a design and implementation for that requirement, then to write and run unit tests against the implementation to make sure the implementation works as designed, both as a unit and integrated into the code base.

Overview of workflow

To accommodate major changes or major functionality to be developed, architecture may have to be refined. Small changes and functionality may reflect changes on the design only, with no need to refine the architecture. For trivial changes and functionality to be developed, only the source code may be affected.

In any case, there is no strict sequence for how writing code and creating or running  developer tests should happen, because they can happen in parallel. You may choose to create and run developer tests before the actual code is created or the reverse sequence.

Properties
Event Driven
Multiple OccurrencesYes
Ongoing
Optional
PlannedYes
Repeatable
Usage
Usage Notes

This Capability Pattern occurs multiple times during each iteration. Usually, there is one instance for each requirement planned for that iteration. When instantiated in a project plan, the pattern becomes a development task to be assigned to a developer, and it should be renamed to include the actual requirement name. Optionally, the word Solution may be suppressed, then you can instantiate the pattern this way:

Develop requirement_name (within context_name context)

If a context is specified, there will be one instance of this pattern for each requirement for each context.

Example

  1. Develop scenario 1 (within user interface context)
  2. Develop scenario 1 (within business logic and DB access context)
  3. Develop scenario 2
  4. Develop supplemental requirement 1

Note that there are four instances of this pattern in the preceding example:

  • The first two are related to the same requirement (scenario 1) but within two different contexts
  • The last two are related to different requirements, with no context specified.