DevOps with VSTS - The First Way: The Principles of Flow

Posted on Friday, January 20, 2017

This is part 1 of the DevOps with VSTS series

The Principles of Flow describes how value can be delivered to the customer, both internal as external, in the fastest and safest way.
This can be done by making sure all work is visible, by reducing batch sizes, limiting work in progress and automating manual steps.

Make work visible
By making all work easily visible for all stakeholders it is much easier to prioritize work based upon global goals.
Furthermore it can help identify bottlenecks by visualizing queue times between different work centers, eg. work being transferred from Development to Operations.
The four types of work that should be made visible are:

  • Business projects
  • IT projects
  • Changes
  • Unplanned work

Reduce Batch sizes
By reducing batch sizes, the size of the work package released to a downstream work center is limited. This ensures that handovers between work centers is more smoothly.
Any work that shows a failure in a donstream work center, has to be send back to the upstream work center. With small batch sizes, these failures will be identified more quickly and can fixed faster by the upstream work center. Because the differences between the previous and the new, failing, work package are small, the root cause of the failure can be identified more quickly.

Limiting WIP
By limiting the Work In Progress, there is less multitasking needed and therefore individuals can keep focus on their current work and don't have to spend time on re-establishing context.
With limited WIP, it is also easier to determine if individuals are waiting on each other. Instead of starting new work, it is better to determine why this delay occurs and together fix that problem so the global goals can be completed faster.

Reduce handoffs and eliminate bottlenecks
Reducing the number of handoffs between departments and work centers and eliminiating the bottlenecks in the Flow are the most important aspects of decreasing lead time, the time from picking up work until delivering it to the customer.
Often these handoffs and bottlenecks are steps in the Flow that can be automated, such as creating a release package, running tests and creating a new infrastructure environment.
A fully automated deployment pipeline, not only decreases the lead time but it also improves the overall quality of the solution.
For instance, by automating the infrastructure creation, it is now easier to create new environments, all environments are always configured in the same way and this makes it easier to test the solution and to find any bugs or failures in the solution.

VSTS gives us the ability to very easily use the principles of the First Way.
Let's first start with setting up the deployment pipeline in VSTS.
The next post Continuous Integration will show the first part of the pipeline.

Disclaimer: Any views or opinions expressed on this blog are my own personal ones and do not represent my employer in any way.