The Yin Yang of Projects: Managing Dependencies and sequencing the user stories

Postado por admin em 30/May/2019 - Sem Comentários

And we’re back with another article from the hybrid project management series. In this article I’ll talk about how to identify and manage the dependencies of the User Stories and sequencing them using a network diagram. You will learn how important this activity is in conjunction with the stories prioritization activity, so that no effort is wasted for the execution of the project. To read how to prioritize user stories click here.

As I have explained in previous articles on Chinese Taoist philosophy, Yin and Yang have dismembered characteristics that are interconnected to achieve the balance of life and the things that represent existence. These characteristics are interconnected like a network diagram, completing each other and representing their dependencies.

When people see things as beautiful, ugliness is created. When people see things as good, evil is created. Being and non-being produce each other. Difficult and easy complement each other. Long and short define each other. High and low oppose each other. Fore and aft follow each other. – Tao Te Ching

While managing hybrid projects we must always think about the dependencies that may exist between the user stories. At the same time that we perform the prioritization activity, we must be careful to identify which stories may be affected and which one need to be completed before others can be started. At the end of the day, it is no use putting a greater weight on a story and defining it as the highest priority, if it can only be executed after another predecessor tasks is completed first. Through this activity, we avoid wasting time and effort on wrong tasks and keep the project team always informed about the prerequisites to perform a given task. There are many techniques and tools to demonstrate how one task is dependent on another, but I will show you two ways that I use most of the time.

No alt text provided for this image

When I work with the Kanban board, my dependency tool is a simple RED STRING. I simply connect one post-it to the other and explain to my team that every post-it to the left of the frame is the predecessor of the post-it that was connected at the end of the red string to the right side. Check the image below as an example.

This is a technique widely used in the SAFe framework. Click hereto know more about this method.

The second way I work with dependencies is through TRELLO. I already talked about Trello in other articles and I consider it a robust tool to work with hybrid projects. Although Trello does not have a native function to create the dependencies between the cards, I have discovered a way to attach selected cards and create a dependency between them. Therefore, every I tell my project team that every predecessor card will be displayed as an attachment of the opened card. Check the example below.

No alt text provided for this image

After identifying the dependencies we are ready to create a sequence of events and stories using a tool that is called the Network Diagram. The benefits of this tool is that we can visualize the big picture of our project in a graphic similar to a honeycomb, and we are able to identify the bottlenecks of the project and while performing some techniques to try to anticipate our deliveries.

To create my Network Diagram I use a Tool called BIZAGI MODELER. It is a free tool to create workflows and other kind of diagrams. To know more about it click here. Now let´s check how the Network diagram would look like on the kitchen remodeling project below.

No alt text provided for this image

With this diagram we can better visualize the flow that the user stories will be executed, from start to finish. We have also been able to observe the predecessors of each story and how they corelate. In addition, it is possible to have a predictability of how many Sprints we need to run to complete the delivery of the project using 2 workers, one to take care of the hardware and the other to design and purchase equipment.

That being said, we can optimize the order of the stories and try to avoid wasting time to execute the tasks. The first action we need to do is to identify which stories can be run in parallel. Note that the “Appliances – Design” story does not have predecessors or prerequisites to start, after all you don´t need to wait for the wiring nor plumbing activities be completed, to design and buy the appliances for your kitchen. In this case, while a worker is performing the “Wiring” and “Plumbing” activities another person can complete the “Appliances – design and purchase” stories. To represent that I have created another lane on my Network diagram as displayed below.

No alt text provided for this image

Note that with this new configuration the number of Sprints needed to complete the project has reduced from 4 to 3, saving time and performing optimized deliveries, using the same planned resourcers. This technique to parallel activities is called Fast Tracking. If you still want to keep on optimizing your delivery time, you can do it by using another technique called Crashing. It consists on Adding additional resources to the critical path of the project. This option has various constraints such as the securing of the budget to add the resources, and the availability of the resources. If you can´t afford to include more resources to the project you won´t be able to use the Crashing technique. Let´s assume that we can add one more worker to the project, than the Network Diagram would look like this.

No alt text provided for this image

This way we can note that with one more worker in the project, we will be able to deliver the entire project in only 2 SPRINTS. It is worth remembering the customer that in this new scenario we will have a reduction on the delivery time but an increase on costs.

Building the network diagrams and identifying the dependencies of each story are extremely important activities in order to design a better schedule and the order in which the stories will be executed. Imagining the various scenarios in advance can help us avoid bottlenecks on the schedule and waste unnecessary time. I hope that with this article you can reflect on this when it comes to performing your Sprint planning and building your Product Backlogs.

Share your ideas and thoughts about this hybrid technique and leave your comments below.