Software product developed by a large organisation have inter team dependencies.
These dependencies stall the flow of execution and paralyse the teams.
Following teams are the actors in a cross team collaborated product
- Team which develops application , focuses on functional aspects
- Infra team which provides infrastructure such as security , authentication , resilliency
- Devops team which provides access to resources such as kubernetes cluster , IDP's , active directory etc.
Application development team gets stuck because of dependencies on infra and devops team . During execution , stakeholders (such as program managers, engineering directors ) are looking for input on the epics and requirement which has higher dependency on other teams .
This is an attempt to look at calculating dependency score of a epic. This will help managers to focus on high dependency epics also compare one product increment to another product increment.
Current method of implementation is to use weighted score of following parameters to arrive at dependency score
- Requirement effort - 10% weightage
- Dependency effort - 10 % weightage
- Product priority - 50% weightage
- Sprint arrival - 30% weightage
All the input variables ( such as requirement effort) is scaled to value between 1 and 5 so as to have uniformity . Final dependency score would between less than 5 . Higher the score and higher the dependency of a requirement or epic on other teams
- Requirement effort
Effort in person days of the epic under question . It could be between 0 to 200 person days . Lower and upper bounds are configurable . This value is scaled down to be between 0 to 5. - Dependency effort
Effort in person days of dependency effort .For example if infra work needs to be done prior to complete functional work,then infra epic is a dependency . Value is scaled down to be between 0 to 5 - Product priority
Importance of epic from product management point of view . A value between 1 and 2 . Decimal values are allowed . Dependency score is reversely proportional to product priority in the way value is assigned . - sprint arrival
If dependency is coming late in the product increment , then dependency score would be higher
Clone the repo . Go to ui directory and run the ui_graph.py . It will start a web ui ( gradio based). UI will ask for 2 inputs
- Xls containing epics . This will be one of the xls from requirement folder
- number of top nodes as per dependency node . If you give value of 2 . It will highlight top 2 nodes ( based on decreasing value of dependency score) in orange color
- Tree based graph of epics showing dependency score
- Dataframe containing calculation on how the dependency score is arrived.
A deep dive into calculation of the score.
If you follow requirement_2.xlsx in requirement directory , first dependency is GDB-100.
Dependency score calculation will be as follows
variable name | value | normalised value | weight | score |
---|---|---|---|---|
requirement effort | 100 | 2.55 | 10 | 0.255 |
dependency effort | 20 | 0.59 | 10 | .059 |
product priority | 1.10 | 4.51 | 50 | 2.255 |
arrival sprint | 4 | 5 | 30 | 1.5 |
All the values are normalised to score between 0 to 5.
Dependency score for GDB-100 = 0.255 + .059 + 2.255 + 1.5 = 4.069 ~= 4.07