What is Dependency Poker?
Dependency Poker is a technique - a serious card game -that can help software development teams manage and minimize dependencies and mitigate risks associated with them. It involves a group discussion and clustering that helps the team identify, manage and solve dependencies between software components, features, and teams. To effectively carry out this process, teams need two kinds of cards: dependency cards and strategy cards. By analyzing the dependencies and selecting appropriate strategies to address them, organizations can optimize toward business agility, as they can more quickly and effectively respond to changes in the market and customer needs. This can lead to better outcomes, including increased customer satisfaction, reduced costs, and improved overall performance.
Dependencies are the silent killers of agility. Understanding dependencies is crucial for effective project planning and scheduling. Get your Business Agility back with Dependency Poker!
Dependency Poker Rules in a Nutshell
How to prepare Dependency Poker?
Create and sort your Product Backlog
Create or find the right set of Cards
Your team needs to find or create the right cards to represent the different types of dependencies that were discussed in the first step. These cards can be created by the team, or they can be obtained from an existing source.
The dependency cards are used in the first step of Dependency Poker to identify the different types of dependencies that exist between software components or features.
Backlog Refinement Cards
Backlog Refinement Cards can play a vital role in dealing with dependencies in the Dependency Poker process. They help to prioritize and clarify the tasks that need to be accomplished for a project or sprint, thereby allowing teams to gain a comprehensive understanding of the dependencies involved. By refining the backlog using these cards, teams can identify the work items with the highest dependencies, thus enabling focused efforts on these items first. Additionally, these cards facilitate a shared understanding among team members, promoting a consensus-based decision-making approach. As a result, these cards enable effective strategies to manage and mitigate dependencies, thereby contributing to the overall success of the software development project. The use of Backlog Refinement Cards is an integral part of the Dependency Poker process, ensuring clarity, focus, and effective management of dependencies.
The second set of cards needed for Dependency Poker are the strategy cards. These cards are used in the second step of the process to find strategies to deal with the identified dependency clusters. The strategy cards represent different strategies for managing dependencies and mitigating risks. Each team member takes a strategy card and explains the strategy it represents, providing an example to illustrate it. This step helps the team to find effective solutions for managing dependencies and reducing the potential risks associated with them.
Overall, the combination of dependency cards and strategy cards in Dependency Poker can help teams to effectively identify and manage dependencies, mitigate risks, and ensure the successful delivery of software development projects.
Best Practice Card Sets
The Dependency Breaker cards from Unfix are a popular and widely used set of dependency cards that represent the different types of dependencies that can exist between software components or features.
Strategic Domain-Driven Design
Strategic Domain-Driven Design (DDD) is a methodology that can help teams reduce and manage dependencies between different parts of a software system and between different teams by promoting collaboration and communication. By organizing code around well-defined business concepts, teams can ensure that each part of the system is responsible for a specific set of behaviors and interactions, which can reduce the risk of "spaghetti code" and minimize the need for teams to communicate and coordinate with each other. Additionally, Strategic DDD provides several domain-driven design strategies, such as Shared Kernel, Customer-Supplier, and Anticorruption Layer, that can help teams manage dependencies between different parts of the system and between different teams more effectively. Ultimately, Strategic DDD can lead to a more cohesive and effective software development process.
What are the "Steps" of Dependency Poker?
Explain the Cards to your Team
Before you can start with your first session with the team, you have to explain Dependency Poker dependency types cards to your team. This step is important because it helps the team to understand the different types of dependencies that can exist between features or components and the potential risks and challenges associated with them. In this step, each team member will grab a dependency-type card and explain it to the other team members, providing an example to illustrate it.
Place all cards on the Backlog Item with the highest order
Dependency Cards on an EPIC on a Miro Board
Cluster your Dependencies
Finding, defining and commiting on Strategies
After the Dependency Poker Session
Updating the Dependencies in a Dependency Board
After the Dependency Poker game has been played, and the team has identified and clustered dependencies and agreed on a strategy or set of strategies for handling them, the final step is to update the backlog items.