Value stream management#
A value stream represents the objects and activities that you employ to deliver customer value, from initial concept to final delivered project.
The value stream provides a strategic window into your project workflow and enables you to drill-down to individual objects. The objects, such as builds, pull requests, issues, and tests, come from tools that you integrate into the value stream. Individual objects are represented graphically by dots or particles. Particles frequently provide information from logically related tools, such as issues linked to source control commits. You filter the value stream by building queries with the DevOps query language.
About value streams#
Value streams are displayed on the Value stream page in individual cards that provide status information and links to the value streams. You can change the page to a table view and customize the rows with metric data taken from the value streams.
When you create a value stream, a minimal value stream is configured and displayed on the Value stream view. The highest level of a value stream is a phase. Phases represent important, organizational parts of the value stream, such as "Planning," or "Development." On the Value stream view, processing is done in left-right order. For example, your first phase might be for planning and contain items created in an issue tracking system. Your next phase, used for development, can track source control activity related to the issues, and any builds triggered by the activity. Your final phase, used for deployment, might track the related build artifacts as they move through your testing environments toward production.
Phases contain stages that define process flow within a phase. A development phase that integrates a source control tool might contain an In Progress stage followed by In Review and Merged stages. When you customize a value stream, you define the phases and stages and their order.
Stages are containers for particles. Particles represent units of work from UrbanCode™ Velocity or tools that are integrated into the value stream. Git commits or Jira issues, to take just two, are represented by individual particles. Work items, such as commits and builds, can be combined into individual particles. A particle's position in the value stream conveys important information about the object. Particles in a stage named Merged might represent items merged into Git repositories. An item's shape and color convey information about the item's type and status. A particle outlined in red, for example, might mean the item is past schedule. When particles change state, they move to new stages in near-real time. Finally, when you click on a particle, the displayed card provides information about the work items, including their history, and provides links to associated tools.
Customizing the value stream#
When you create a value stream, default stages and phases are configured, but until you integrate the tools that you use with UrbanCode Velocity , the stages will not contain items. You add your tools to a value stream by defining plug-in integrations for them. After you integrate a tool, its items, such as pull requests, can be displayed in the appropriate stages. UrbanCode Velocity provides plug-ins for an ever-growing number of 3rd-party tools and services that you can integrate into your value stream.
The JSON file associated with the value stream defines the phases and stages. The value stream default phases are Planning, Development, and Deployment. You can modify the JSON file to display the phases and stages that you normally use in your work.
The following figure shows a typical user-configured value stream. Notice that items are filtered by Type. For information about how to manage data displayed in the Value stream view, see Using value streams.
Integrating tools into the value stream#
You use the same JSON file to create integrations that you use to customize the value stream. After you define an integration, items associated with the integrated tool can appear in the stages on the Value stream view, and the integration is listed on the Integrations page in the web UI.
You can associate integrated tools by defining link rules for them. If you link an issue tracking tool with a source control management tool, for example, you can access information about the linked tools from affected particles.
For information about the value stream integrations, see About value stream integrations.
Querying the value stream#
To see objects from your integrated tools, add queries to the value stream. You use the Value Stream Query language to filter the information displayed on the value stream. You build simple queries by combining searchable items with operators and values. A searchable item is a query-able object, such as
issue.status. Queries can be scoped to the entire value stream or a stage. Each stage can have a query. You can create queries on the Value stream view, or define them in the value stream JSON file.
For information about the DevOps query language, see DevOps Query language.
When you create a value stream, a corresponding pipeline is configured. A pipeline is a sequence of stages that retrieve input and run applications and jobs. Pipelines accept input from source control management (SCM) repositories or other external applications, such as UrbanCode Deploy. You add applications to the pipeline from external tools that you integrate with UrbanCode Velocity, such as Jenkins, and UrbanCode Build. You can run applications, releases, and deployments with the Pipeline view.
For information about pipelines, see Pipelines.
- Creating value streams
Create a value stream and then customize it by defining phases and stages that reflect your typical workflow.
- Value stream metrics
Assess project quality, progress, and performance with the UrbanCode Velocity metric data tools.
- Using value streams
Manage a value stream's displayed data by applying filters and queries.
- DevOps Query language
Use the DevOps query language to filter the information displayed in your value stream.
Pipelines show how software code moves through different stages from lower to higher environments and allows you to deploy versions of your application to a given environment.