Flow
This page is part of Product Principles
Flow
Flow, in the context of software development and operations, refers to the smooth and continuous movement of work through the value stream. When work flows smoothly, it means that there are minimal delays or impediments, leading to faster delivery times and improved efficiency. Continuous Delivery (CD) is a key enabler of flow, as it focuses on automating the software delivery process and establishing fast feedback loops, allowing teams to release software frequently and reliably.
Principles of Flow from “The DevOps Handbook”
If you’ve read either The Phoenix Project or The DevOps Handbook, you’ve been introduced to The Three Ways framework for DevOps:
- The First Way: Principles of Flow
- The Second Way: Principles of Feedback
- The Third Way: Principles of Continuous Learning
The key principles of the First Way are:
-
Making work “visible.” Unlike manufacturing processes, which are easily observable on a plant floor, the flow of software through its development lifecycle is not easily seen. Using methods such as Kanban boards can surface the activities going on behind the scenes, by showing the left-to-right movement of a user story through the development phases.
-
Limiting work-in-progress (WIP). Keeping work-in-progress to a minimum has also been shown to accelerate work flow, because it minimizes multi-tasking and context-switching.
-
Reducing batch sizes. “Chunking” work into smaller pieces like a two-week sprint can also help deliver features (albeit smaller ones) and bug fixes to the customer faster. Issues are often caught earlier when those updates and additions are released sooner.
-
Reducing hand-offs between teams. The risk of “dropping the baton” increases as the hand-offs do. Although hand-offs can’t be completely minimized, the key is to keep the teams in tight communication with one another so that the hand-off itself is almost a non-event rather than a large ordeal with the potential for communication missteps along the way.
-
Identifying and removing constraints and waste. Constraints might be bottlenecks in the process, such as environments, test setup, and overly tight architecture, while waste includes things like manual work, heroics, and context-switching.
Flow Engineering & Value Stream Mapping
Value Stream Mapping (VSM) is a lean management practice that helps visualize the entire flow of work, from idea to production, and identify bottlenecks and areas for improvement. By mapping out the value stream, organizations can gain a clear understanding of how work flows through their systems and identify areas where they can reduce waste, improve efficiency, and optimize for faster and more reliable software delivery.
The practice of visualizing flow through VSM brings the following benefits for organizational performance improvement:
- Facilitates conversations
- Identifies areas for improvement
- Promotes continuous improvement
- Supports data-driven decision making
- Documentation
Read more
- DORA guide to value stream mapping. A good article to start exploring VSM, Flow Engineering, and how two critical value streams (happy path and recovering) can be indicated with DORA metrics.
- Flow Engineering (Book)
- DORA Community Discussion - Value Stream Mapping (Video) - a discussion based on the article above
Value, but not really
Note that while Value Stream Mapping refers “Value”, it focuses on process optimization within a given workflow. VSM is tactical, often used to find inefficiencies in an existing process. Therefore, it does not cover strategic perspective (Product, Vision, Mission, Business Goals, Impact Mapping, etc. - see Focus).