Showing posts with label book. Show all posts
Showing posts with label book. Show all posts

Software Development Workflow with Queues



Below is an updated representation for the software development workflow. Note that Queue (Q) stages have been added in between the action stages.
 
Software Development Workflow with Queues

The sample Software Development Workflow revisited

Below are two figures: the first is from the  previous section representing the software development workflow (without Queue) snapshot. The second carries on the same example snapshot, but with the addition of  Queue stages. 

Software Development Workflow sample snapshot without Queues

Software Development Workflow sample snapshot with Queues

Here is a description for what is happening in each workflow stage for the software development workflow example without queues: Two requirements are in analysis. Three requirements are in development while two are being validated. One requirement is ready to release.
 
For the workflow without Queues,  even with cards parked under each stage, it is not clear which ones are actively being worked on. For instance, if you only have two people in this team, it is unlikely they are working on all the cards. How can we tell which ones are being worked on?
 
This is not the case for the workflow with Queues Note the distinction from the cards that are being worked on in action stages to the ones in Queue stages. Both workflow examples (with and without Queue) have the same number of cards. The workflow example with Queues explicitly shows which cards are active.

These could be workflows for real software development scenarios. For instance, these could be two versions of a card wall for the same team at a given moment. Consider a small Agile team with one analyst and three programmers. The programmers are able to work on design, coding, validation and deployment activities. The workflow with queue stages depicts a more realistic scenario. It tells you what is really under work, and what is still waiting for action. The current status of each activity is more precise. This is only one of the benefits from using Queue stages. 






Action Stages and Waiting Stages

At this point you should be familiar with the idea and benefits of sharing the workflow activities as cards on the wall. Next is a common concept for a card wall: the distinction between action stages and waiting stages.

Once again, you can find below the representations for the workflow examples previously introduced.

SW Development example - Snapshot

Ordering coffee at Starbucks  - Snapshot

There is a very important difference between these two workflows. The sample Starbucks workflow has both waiting stages and action stages, while the sample SW development workflow has only action stages: Analyse, In Dev, Validate and Release.. In a waiting stage the status of the work item is not changing; it is waiting for some action, while in an action stage the item is being worked on.

The figure below depicts the same Starbucks workflow, but now highlighting the waiting and action stages with different background colors.


The Starbucks workflow was based on real-world experience ordering at Starbucks. In contrast, our SW development workflow, up to this point, only shows the traditional phases of SW development. These phases don’t represent everything that happens in the real world—this workflow can be improved.

 Most Agile card walls have action stages as well as waiting stages. The following are photos of several card walls.





One commonality between these card walls is the presence of stages named “Ready for Something”; in the photos above, you can see the following waiting stages: ready to play, ready for dev, ready for QA.

The nomenclature for these waiting stages might vary quite a bit, but they all carry the idea of a waiting state, a buffer prior to reaching the next downstream action stage. Some common names are: Queue, Buffer, Ready for, and Waiting for. For the remainder of this book, we will use the term Queue for referring to the waiting stages.